¿Qué pasaría si hay cuatro aplicaciones concurrentes de CUDA compitiendo por recursos en una sola GPU para que puedan descargar el trabajo a la tarjeta gráfica ?. La Guía de programación CUDA 3.1 menciona que hay ciertos métodos que son asíncrono:Concurrencia, 4 aplicaciones CUDA que compiten para obtener recursos de la GPU
- Kernel lanza
- de dispositivos de copias de memoria del dispositivo
- copias de memoria del dispositivo host de un bloque de memoria de 64 KB o menos
- copias de memoria realizadas por las funciones que están con el sufijo asíncrono
- memoria función de ajustar las llamadas
También menciona que los dispositivos con capacidad de cómputo 2.0 pueden ejecutar múltiples kernels simultáneamente mientras los kernels pertenezcan al mismo contexto.
¿Este tipo de concurrencia solo se aplica a las corrientes en una sola aplicación cuda pero no es posible cuando hay aplicaciones diferentes completas que solicitan recursos de la GPU?
¿Eso quiere decir que el soporte simultáneo solo está disponible dentro de 1 aplicación (contexto ???) y que las 4 aplicaciones se ejecutarán simultáneamente en la forma en que los métodos podrían superponerse al cambiar el contexto en la CPU, pero las aplicaciones necesitan esperar hasta que la GPU sea liberada por las otras aplicaciones? (es decir, el lanzamiento del Kernel desde la aplicación4 espera hasta que finalice el lanzamiento del kernel desde la aplicación1)
Si ese es el caso, ¿cómo pueden acceder estas 4 aplicaciones a los recursos de la GPU sin sufrir largos tiempos de espera?
hello Tom. Estoy trabajando en algunos proyectos de cuda y buscando socios. ¿Tienes algún deseo de colaborar? ahora mismo estoy trabajando en la integración de ublas y cublas – Anycorn