OpenCL 设备供应商 ID
OpenCL Device Vendor Ids
OpenCL clGetDeviceInfo
函数 return 在使用 CL_DEVICE_VENDOR_ID
调用时是一个设备供应商标识符。对于 CL_DEVICE_VENDOR_ID
,OpenCL spec 表示:"A unique device vendor identifier. An example of a unique device identifier could be the PCIe ID"。
在这个系统上,Intel
和 AMD
GPU 都 returning 它们的 PCIe ID(分别为 0x8086 和 0x1002。所以,问题是:做 所有 OpenCL 设备 return 它们的 PCIe ID 作为它们的 "unique device vendor identifier"?如果是这样,PCIe 供应商 ID 是否列在某个头文件中?
根据标准,不能保证它是一个PCIe设备ID,所以我不会指望它。我期望它来自硬件供应商的实现,而不是来自像 PoCL 这样的开源实现。即使当前所有实现都可以,下一个实现也可能不会,您的代码将不再具有可移植性。
在 Linux 环境中,您可以使用 lspci
和 lspci -n
查询您计算机的设备,后者只显示 ID 而不是名称。根据联机帮助页 /usr/share/hwdata/pci.ids
.
,数据似乎来自此文件
希望对您有所帮助。
do all OpenCL devices return their PCIe IDs
答案是否定的。在 x86 上非常容易,几乎可以保证您拥有 PCI 总线,并且只有 3 个可能的供应商;但在 ARM 世界中,许多(大多数?)根本没有 PCI 总线,并且没有官方途径来获取任何类型的供应商 ID(至少 AFAIK)。
OpenCL clGetDeviceInfo
函数 return 在使用 CL_DEVICE_VENDOR_ID
调用时是一个设备供应商标识符。对于 CL_DEVICE_VENDOR_ID
,OpenCL spec 表示:"A unique device vendor identifier. An example of a unique device identifier could be the PCIe ID"。
在这个系统上,Intel
和 AMD
GPU 都 returning 它们的 PCIe ID(分别为 0x8086 和 0x1002。所以,问题是:做 所有 OpenCL 设备 return 它们的 PCIe ID 作为它们的 "unique device vendor identifier"?如果是这样,PCIe 供应商 ID 是否列在某个头文件中?
根据标准,不能保证它是一个PCIe设备ID,所以我不会指望它。我期望它来自硬件供应商的实现,而不是来自像 PoCL 这样的开源实现。即使当前所有实现都可以,下一个实现也可能不会,您的代码将不再具有可移植性。
在 Linux 环境中,您可以使用 lspci
和 lspci -n
查询您计算机的设备,后者只显示 ID 而不是名称。根据联机帮助页 /usr/share/hwdata/pci.ids
.
希望对您有所帮助。
do all OpenCL devices return their PCIe IDs
答案是否定的。在 x86 上非常容易,几乎可以保证您拥有 PCI 总线,并且只有 3 个可能的供应商;但在 ARM 世界中,许多(大多数?)根本没有 PCI 总线,并且没有官方途径来获取任何类型的供应商 ID(至少 AFAIK)。