Per il mio sviluppo CUDA, sto utilizzando una macchina con 16 core e 1 GPU GTX 580 con 16 SM. Per il lavoro che sto facendo, ho in programma di lanciare 16 thread host (1 su ciascun core) e 1 lancio del kernel per thread, ciascuno con 1 blocco e 1024 thread. Il mio obiettivo è quello di eseguire 16 kernel in parallelo su 16 SM. È possibile/fattibile?Thread host multipli che lanciano singoli kernel CUDA
Ho provato a leggere il più possibile su contesti indipendenti, ma non sembrano esserci troppe informazioni disponibili. A quanto ho capito, ogni thread host può avere il proprio contesto GPU. Ma non sono sicuro che i kernel funzioneranno in parallelo se utilizzo contesti indipendenti.
Posso leggere tutti i dati da tutti i 16 thread host in un'unica struttura gigante e passarlo a GPU per avviare un kernel. Tuttavia, sarà troppo copiato e rallenterà l'applicazione.
I contesti multipli non possono utilizzare contemporaneamente una singola GPU, quindi no, questo non funzionerà. – talonmies
Grazie. Puoi per favore mettere sopra quanto sopra in modo che io possa accettarlo? – gmemon
@gmemon, vedere il mio commento qui sotto per la creazione e l'esecuzione di più contesti in CUDA 5.5. Hai eseguito con successo 16 kernel in 16SM? Qual è stata la tua soluzione alla fine. – Tariq