【问题标题】:OpenCL Device Vendor IdsOpenCL 设备供应商 ID
【发布时间】:2018-04-10 17:01:12
【问题描述】:

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

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

【问题讨论】:

  • 我认为它是在供应商提供的 OpenCL 共享库中定义的。

标签: opencl gpgpu


【解决方案1】:

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

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

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    所有 OpenCL 设备都返回它们的 PCIe ID

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

    【讨论】:

    • 终于有正确答案了!欢迎来到stackoverflow @mogu
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2011-11-08
    • 2012-04-22
    • 1970-01-01
    相关资源
    最近更新 更多