我一直在搞OpenCL,它似乎沒有檢測到我有一臺設備在我的電腦中使用(我這樣做)。爲什麼OpenCL找不到任何設備?
這裏輸入dxdiag結果:
這裏是我的代碼,在錯誤的提高,檢查我的機器上可用的設備數量的第一部分。
cl_platform_id platform;
cl_uint num_devices;
cl_int err;
//get first platform
err = clGetPlatformIDs(1, &platform, NULL);
if (err < 0){
perror("Couldn't find any platforms");
exit(1);
}
//determine number of devices: ERROR RAISED AS RESULT OF THIS
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_ALL, 1, NULL, &num_devices);
if (err < 0){
perror("Couldn't find any devices");
exit(1);
}
這是該代碼的輸出:
當我打印設備的數量也爲發現,與
printf("Found %d devices", num_devices);
它給出了同樣數量的每次:
請讓我知道其他信息可能有助於弄清楚這一點。
不打印*無符號*用'%D'值,使用'%u'。請參閱['printf'](http://www.cplusplus.com/reference/cstdio/printf/) –
您的第一個平臺可能是平臺0,而不是1.無論如何,您應該檢查所有平臺。 – DarkZeros