我正在一台2012年中期的13英寸MacBook Pro上编写一个OpenCL程序,具体配置如下:
处理器:2.9 GHz 英特尔 Core i7
图形处理器:英特尔 HD Graphics 4000
在我的程序中,我通过以下方式检查可用设备数量:
// get first platform
cl_platform_id platform;
err = clGetPlatformIDs(1, &platform, NULL);
// get device count
cl_uint gpuCount;
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, NULL, &gpuCount);
cl_uint cpuCount;
err |= clGetDeviceIDs(platform, CL_DEVICE_TYPE_CPU, 0, NULL, &cpuCount);
std::cout<<"NUM CPUS: "<<cpuCount<<" NUM GPUS: "<<gpuCount<<std::endl;
执行程序后,我的程序显示我只有一个CPU和零个GPU。这是怎么回事?难道OpenCL不支持Intel HD Graphics 4000显卡吗?我认为我的电脑是双核处理器,那么应该有2个CPU和1个GPU才对,难道我没有正确地获取数据吗? 编辑:我已经找到了问题所在。将我的操作系统升级到Mavericks(之前运行的是Mountain Lion)后,openCL现在将我的显卡识别为有效设备。