¿Hay alguna forma de que OpenCL me proporcione una lista de todos los dispositivos físicos únicos que tienen una implementación OpenCL disponible? Sé cómo iterar a través de la plataforma/lista de dispositivos pero, por ejemplo, en mi caso, tengo una plataforma provista por Intel que me da una implementación eficiente de dispositivos para mi CPU, y la plataforma APP que proporciona una implementación rápida para mi GPU pero una terrible implementación para mi CPU.Exclusividad del dispositivo OpenCL
Hay una forma de averiguar que los dos dispositivos de la CPU son de hecho el mismo dispositivo físico, de modo que pueda elegir el más eficiente y trabajar con eso, en lugar de usar ambos y hacer que compitan entre sí por calcular el tiempo en el único dispositivo físico?
He mirado CL_DEVICE_VENDOR_ID
y CL_DEVICE_NAME
pero no solucionan mis problemas, la CL_DEVICE_NAME
será el mismo para los dos dispositivos físicos separados del mismo modelo (GPU dual) y CL_DEVICE_VENDOR_ID
me da un ID diferente para mi CPU dependiendo en la plataforma.
Una solución ideal sería algún tipo de ID de dispositivo físico único, pero estaría encantado de alterar manualmente la configuración de OpenCL para reorganizar los dispositivos yo mismo (si eso es posible).
no entiendo la pregunta .. por lo que desea elegir entre dos CPU con las mismas especificaciones? – ardiyu07
Quiero usar todos los dispositivos físicos disponibles (para un problema fácilmente paralelizable), y solo quiero usar un único dispositivo lógico por dispositivo físico, de lo contrario, tendré conflictos. – Thomas