
Información de contexto:
Tengo una Intel UHD Graphics 620 de octava generación en la que estoy haciendo algunos cálculos OpenCL. Son muy, muy complejos y pueden utilizar hasta 500 MB de memoria de vídeo. La tarjeta supuestamente tiene 1.534 MB según lo informado por Windows, y esto se ha demostrado a través de algunas pruebas de memoria de video de Minecraft que hice anteriormente.
La computadora tiene un total de 8 GB de memoria del sistema, y hasta 4 GB de esa cantidad se pueden compartir con la GPU. No hay GPU dedicadas.
Mi problema:
Pero lo que está pasando con el material de OpenCL es que:
- Comienza el cálculo. El cursor comienza a parpadear un poco, pero la computadora se puede utilizar.
- Ahora los kernels están completamente cargados en la memoria (menos del 50% de la memoria utilizada) y la GPU comienza a usarse. GPU-Z muestra un uso del 100%.
- Ahora la computadora se congela. Nada funciona, ni siquiera el movimiento del cursor.
- Unos segundos más tarde, la GPU detiene el cálculo y congela el programa OpenCL indefinidamente.
Los registros anteriores de GPU-Z muestran que la GPU no pudo actualizar cosas como la posición del cursor, etc. porque estaba demasiado cargada cuando estaba haciendo las cosas de OpenCL.
Mi pregunta:¿Cómo puedo decirle a un ejecutable específico que use una cantidad limitada de potencia de GPU para operaciones OpenCL?o¿Cómo puedo decirle a Windows que deje de poner cosas como el movimiento del cursor en la GPU y decirle a la GPU que está bien cuando se usa al 100% para OpenCL?
PD: La temperatura no es un problema. Tengo acceso a las fuentes de la aplicación OpenCL, pero sería mejor si hubiera una solución que pudiera aplicar sin tener que reconstruirla desde la fuente.
Respuesta1
Para ser completamente franco, estaba tratando de ejecutar uncriptomineroen miGPU integrada. Oh, qué joven y tonto era.
No hace falta decir que,Supongo que este problema podríateóricamenteestar solucionadosi le dijo a Windows de alguna manera que usara software de renderizado (basado en CPU) para elementos GUI y dejara la GPU completamente libre. Entonces los controladores de la GPU no tendrían motivos para detener los intensos cálculos porque si Windows deja la GPU en paz para todo lo que no sea OpenCL, no habrá ninguna lucha por el tiempo de cálculo.
Al menos ese es mi proceso de pensamiento, no es que podamos mirar el código fuente de los controladores de Windows e Intel para verificar si eso es exactamente lo que sucede. (Ubuntu + Mesatos tos)