Есть ли способ заставить OpenCL выдать мне список всех уникальных физических устройств, для которых доступна реализация OpenCL? Я знаю, как перебирать список платформ / устройств, но, например, в моем случае у меня есть одна платформа, предоставленная Intel, которая дает мне эффективную реализацию устройства для моего процессора, и платформу APP, которая обеспечивает быструю реализацию для моего графического процессора, но ужасная реализация для моего процессора.
Есть ли способ выяснить, что два устройства ЦП на самом деле являются одним и тем же физическим устройством, чтобы я мог выбрать наиболее эффективное и работать с ним, вместо того, чтобы использовать оба и заставлять их бороться друг с другом за время вычислений на одно физическое устройство?
Я просмотрел CL_DEVICE_VENDOR_ID
и CL_DEVICE_NAME
, но они не решают моих проблем, CL_DEVICE_NAME
будет одинаковым для двух отдельных физических устройств одной и той же модели (с двумя графическими процессорами), а CL_DEVICE_VENDOR_ID
дает мне другой идентификатор для моего процессора в зависимости от платформы.
Идеальным решением был бы какой-то уникальный идентификатор физического устройства, но я был бы счастлив вручную изменить конфигурацию OpenCL, чтобы самостоятельно переставить устройства (если такое возможно).