Uso NVIDIA Grid K2 per la programmazione CUDA. Ha due GPU, ciascuna con 1536 core. È possibile utilizzare entrambe le GPU in chiamate al kernel singole o multiple?Utilizzo di più GPU CUDA
5
A
risposta
8
No, non è possibile. Ogni GPU su una scheda multi-GPU come Grid K2 è un dispositivo CUDA separato con una memoria propria. In quanto tale, ogni GPU ottiene il proprio contesto CUDA e deve essere programmata esplicitamente. Il driver o il runtime CUDA non utilizzerà automaticamente entrambi i dispositivi come un singolo dispositivo virtuale per l'avvio del kernel.
è la memoria almeno condivisa? vale a dire. posso copiare i dati dall'host al device0 e quindi eseguire un kernel su device1 che userà i dati dal dispositivo0? o devo copiare i dati a ciascuno separatamente? o è almeno possibile copiare i dati direttamente tra i dispositivi (da dev0 a dev1)? – Val
@ValCool: per quanto ne so, la risposta è no, la memoria non è condivisa. Sulle piattaforme supportate è possibile utilizzare la memoria virtuale unificata e l'accesso alla memoria peer-to-peer, ma le due GPU discrete sono collegate solo da un chip bridge PCI-e comune sulla scheda e la comunicazione è fondamentalmente alle velocità PCI-e DMA – talonmies
quindi lo SLI non viene utilizzato per questo tipo di comunicazione? – Val