Para mi desarrollo CUDA, estoy usando una máquina con 16 núcleos y 1 GTX 580 GPU con 16 SM. Para el trabajo que estoy haciendo, planeo lanzar 16 subprocesos de host (1 en cada núcleo) y 1 lanzamiento de kernel por subproceso, cada uno con 1 bloque y 1024 subprocesos. Mi objetivo es ejecutar 16 kernels en paralelo en 16 SM. ¿Es esto posible/factible?Múltiples hilos de host que inician kernels CUDA individuales
He intentado leer todo lo posible sobre contextos independientes, pero parece que no hay demasiada información disponible. Según lo entiendo, cada subproceso de host puede tener su propio contexto de GPU. Pero no estoy seguro de si los kernels se ejecutarán en paralelo si utilizo contextos independientes.
Puedo leer todos los datos de los 16 hilos de host en una estructura gigante y pasarlos a la GPU para ejecutar un kernel. Sin embargo, será demasiada copia y ralentizará la aplicación.
Los contextos múltiples no pueden usar simultáneamente una sola GPU, por lo que no, esto no funcionará. – talonmies
Gracias. ¿Pueden poner lo anterior como una respuesta para poder aceptarlo? – gmemon
@gmemon, consulte mi comentario a continuación para crear y ejecutar múltiples contextos en CUDA 5.5. ¿Has ejecutado con éxito 16 kernels en 16SM? ¿Cuál fue tu solución finalmente? – Tariq