我正在使用openCL的Nvidia實現。openCL平臺/設備查詢
cl_uint devicecount=NULL;
cl_uint NumPlatforms;
clGetPlatformIDs (0, NULL, &NumPlatforms);
cl_platform_id* PlatformIDs;
PlatformIDs = new cl_platform_id[NumPlatforms];
clGetPlatformIDs(NumPlatforms, PlatformIDs, NULL);
cl_device_id cdDevice;
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_CPU, 1, &cdDevice, &devicecount);
cout << NumPlatforms << endl;
cout << PlatformIDs << endl;
cout << cdDevice << endl;
cout << devicecount << endl;
我其實可能暫時沒有兼容的GPU,但我有一個兼容的CPU。該查詢告訴我,我有0個平臺和0個設備。我是否正確地做這件事?我不完全明白什麼是平臺,爲什麼我沒有平臺。 openCL找到並使用平臺到底需要什麼?
編輯:
我在郵件今天拿到我的新卡,裝AMD的SDK,並重新安裝NVIDIA SDK,而我現在看到我所有的平臺和設備!
下一步是創建上下文。我可以將來自不同平臺的設備放在同一個環境中嗎?考慮到每個設備需要單獨的命令隊列等,要編寫一個程序來使用系統上的所有設備,即使該數量是十萬個,也是非常困難的嗎?