Идентификаторы поставщиков OpenCL

Функция OpenCL clGetDeviceInfoвозвращает идентификатор поставщика устройства при вызове CL_DEVICE_VENDOR_ID. Для получения CL_DEVICE_VENDOR_ID, в спецификации OpenCL состояний: «Уникальный идентификатор поставщика устройства Пример уникального идентификатора устройства может быть PCIe - ID».

В этой системе Intelи AMDграфические процессоры возвращают свой идентификатор PCIe (0x8086 и 0x1002 соответственно. Таким образом, возникает вопрос: все ли устройства OpenCL возвращают свои идентификаторы PCIe в качестве своего уникального идентификатора поставщика устройств? Если это так, это идентификаторы поставщиков PCIe в каком-нибудь файле заголовка?

opencl,gpgpu,

0

Ответов: 2


1 принят

все устройства OpenCL возвращают свои идентификаторы PCIe

Ответ - нет. Это очень легко на x86, где почти гарантированно есть PCI-шина и только 3 возможных поставщика; но в мире ARM многие (большинство?) вообще не имеют шины PCI, и нет официального способа получить идентификатор поставщика (по крайней мере, AFAIK).


1

Согласно стандарту, нет никакой гарантии, что он будет идентификатором устройства PCIe, поэтому я не буду рассчитывать на него. Я ожидал бы этого от реализации аппаратных вендоров, но не от реализаций с открытым исходным кодом, таких как PoCL. Даже если все реализации в настоящее время выполняются, следующий может не работать, и ваш код перестанет быть переносимым.

В среде Linux вы можете использовать lspciи lspci -nзапрашивать устройства вашего компьютера, а последние - только идентификаторы вместо имен. Похоже, что данные взяты из этого файла в соответствии с man-страницей /usr/share/hwdata/pci.ids.

Надеюсь, это поможет.

OpenCL, GPGPU,
Похожие вопросы
Яндекс.Метрика