OpenCL设备供应商ID

时间:2017-10-29 17:14:05

标签: opencl gpgpu

OpenCL clGetDeviceInfo函数在使用CL_DEVICE_VENDOR_ID调用时返回设备供应商标识符。对于CL_DEVICE_VENDOR_IDOpenCL spec状态:“唯一的设备供应商标识符。唯一设备标识符的示例可以是PCIe ID”。

在这个系统上,IntelAMD GPU都返回其PCIe ID(分别为0x8086和0x1002。因此,问题是:所有 OpenCL设备返回他们的PCIe ID是“唯一的设备供应商标识符”?如果是这样,PCIe供应商ID是否在某个头文件中列出?

2 个答案:

答案 0 :(得分:1)

根据标准,不能保证它是PCIe设备ID,因此我不会指望它。我希望它来自硬件供应商的实现,但不是来自像PoCL这样的开源实现。即使目前所有的实现都没有,下一个实现也可能没有,并且您的代码将不再可移植。

在Linux环境中,您可以使用lspcilspci -n查询计算机的设备,后者只显示ID而不是名称。根据联机帮助页/usr/share/hwdata/pci.ids,数据似乎来自此文件。

希望有所帮助。

答案 1 :(得分:1)

  

所有OpenCL设备都返回其PCIe ID

答案是否定的。在x86上非常容易,你几乎可以保证拥有PCI总线,只有3个可能的供应商;但是在ARM世界中,很多(大多数?)根本没有PCI总线,并且没有官方的方式来获得任何类型的供应商ID(至少是AFAIK)。

相关问题