如何测试OpenCL兼容性?

fra*_*996 14 macos gpu opencl osx-lion

我有一台带有集成Intel HD 3000和i7内核的MacBook Pro 13'.
我必须使用并行编程.

我的教学顾问无法告诉我它是否适用于我的MacBook.

我可以在笔记本电脑上运行测试吗? +我发现了这个,但只有一个Linux和Windows SDK ...也许Linux版本也适用于Mac.

我该怎么办 ?

Jam*_*mes 40

vocaro的回答绝对正确; 您可以随时在Snow Leopard和Lion上使用CPU计算设备,即使您的特定图形芯片不支持OpenCL.

以下程序将向您显示给定Macintosh上支持OpenCL的设备:

// clang -framework OpenCL dumpcl.c -o dumpcl && ./dumpcl

#include <stdio.h>
#include <stdlib.h>
#include <OpenCL/opencl.h>

int main(int argc, char* const argv[]) {
    cl_uint num_devices, i;
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices);

    cl_device_id* devices = calloc(sizeof(cl_device_id), num_devices);
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, num_devices, devices, NULL);

    char buf[128];
    for (i = 0; i < num_devices; i++) {
        clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 128, buf, NULL);
        fprintf(stdout, "Device %s supports ", buf);

        clGetDeviceInfo(devices[i], CL_DEVICE_VERSION, 128, buf, NULL);
        fprintf(stdout, "%s\n", buf);
    }

    free(devices);
}
Run Code Online (Sandbox Code Playgroud)

在我的Macbook上,这给出了:

Device Intel(R) Core(TM) i7-2635QM CPU @ 2.00GHz supports OpenCL 1.1 
Device ATI Radeon HD 6490M supports OpenCL 1.1 
Run Code Online (Sandbox Code Playgroud)

您可以使用此程序作为起点询问其他设备信息.clGetDeviceInfo的Khronos API参考应该很有用.