Một cách dễ dàng khác để tham gia vào chương trình GPU mà không cần tham gia CUDA hoặc OpenCL, là thực hiện qua OpenACC.
OpenACC hoạt động như OpenMP, với chỉ thị của trình biên dịch (như #pragma acc kernels
) để gửi công việc tới GPU. Ví dụ: nếu bạn có vòng lặp lớn (chỉ những vòng lặp lớn thực sự có lợi):
int i;
float a = 2.0;
float b[10000];
#pragma acc kernels
for (i = 0; i < 10000; ++i) b[i] = 1.0f;
#pragma acc kernels
for (i = 0; i < 10000; ++i) {
b[i] = b[i] * a;
}
Chỉnh sửa: không may, chỉ trình biên dịch PGI thực sự hỗ trợ OpenACC ngay bây giờ, cho thẻ NVIDIA GPU.
Nguồn
2012-10-19 19:16:37
Bạn đang nói về GPGPU hoặc mã hóa đồ họa? – Menkboy
Anh ấy đang nói về CUDA (API cho GPU nVidia) và các kỹ thuật khác. Sử dụng các đơn vị FPU có sẵn trong GPU để mã hóa đồ họa. – Wedge
Để tham khảo, GeForce 8800 thế hệ trước có 128 bộ xử lý dòng hoạt động ở mức 1,3 GHz, một đầu GTX 280 có 240 bộ xử lý dòng, hiệu suất lý thuyết của các GPU này là 0,5 và 0,9 TeraFLOPS. – Wedge