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