2014-11-24 128 views
2

我試圖將OpenCL GPU設備與NVAPI設備關聯,我在多GPU系統中使用了NvAPI_EnumPhysicalGPUs將OpenCL設備與NVAPI設備關聯

問題是,我可以使用clGetDeviceInfoCL_DEVICE_VENDOR_ID,它始終是唯一的,它是最好的方法,我可以從NvAPI_SYS_GetChipSetInfo檢索供應商。但它與我從NvAPI_EnumPhysicalGPUs得到的NvPhysicalGpuHandle沒有關係。有什麼辦法可以關聯這個嗎?

當然,我可以用名字,但這不好。

+0

'NvAPI_GPU_GetBusId'和朋友怎麼樣? – 2014-11-25 15:30:28

+0

@ ParkYoung-Bae我可以在NVAPI方面使用它,但是我如何在OpenCL中獲得Bus ID? 'clGetDeviceInfo'似乎沒有任何定義來返回文檔頁面中的總線標識。 – Vanya 2014-11-25 16:08:24

回答

0

有一種方法可以做到。在OpenCL中,出於某種原因,存在一個較差的文檔記錄功能。您需要撥打clGetDeviceInfo並使用常數0x4008,它會爲您提供以下設備句柄的總線編號。

cl_uint busID; 
clGetDeviceInfo(device,0x4008,sizeof(cl_uint), &busID,NULL); 
printf("%d",busID); 

On NvApi side use NvAPI_GPU_GetBusId。然後,您可以通過協調總線來關聯手柄。