2016-02-07 12 views
5

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

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.

+1

è 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

+2

@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

+0

quindi lo SLI non viene utilizzato per questo tipo di comunicazione? – Val