Има ли начин да накарам OpenCL да ми даде списък с всички уникални физически устройства, които имат налична реализация на OpenCL? Знам как да преминавам през списъка с платформа/устройство, но например в моя случай имам една предоставена от Intel платформа, която ми дава ефективна реализация на устройство за моя CPU, и платформата APP, която осигурява бърза реализация за моя GPU, но ужасно изпълнение за моя процесор.
Има ли начин да разбера, че двете CPU устройства всъщност са едно и също физическо устройство, така че да мога да избера най-ефективното и да работя с него, вместо да използвам и двете и да ги карам да се борят едно с друго за изчислително време на едно физическо устройство?
Разгледах CL_DEVICE_VENDOR_ID
и CL_DEVICE_NAME
, но те не решават проблемите ми, CL_DEVICE_NAME
ще бъде един и същ за две отделни физически устройства от един и същ модел (двоен графичен процесор), а CL_DEVICE_VENDOR_ID
ми дава различен идентификатор за моя процесор в зависимост от платформата.
Идеалното решение би било някакъв уникален идентификатор на физическо устройство, но бих се радвал да променя ръчно конфигурацията на OpenCL, за да пренаредя сам устройствата (ако такова нещо е възможно).