2010-02-14 8 views
20

ho scritto un programma cuda e lo sto testando su ubuntu come una macchina virtuale. la ragione di questo è che ho Windows 7, non voglio installare Ubuntu come sistema operativo secondario, e ho bisogno di utilizzare un sistema operativo Linux per il test. la mia domanda è: la macchina virtuale limiterà le risorse gpu? Quindi il mio codice CUD sarà più veloce se lo eseguo sotto il mio sistema operativo principale piuttosto che eseguirlo su una macchina virtuale?programma cuda su VMware

+1

Penso che potresti essere fortunato se ha funzionato affatto sotto VM. È possibile eseguire lo sviluppo CUDA su Windows 7. Se per qualche motivo si tratta di un problema, se si utilizza lo sviluppo e non in un ambiente di produzione, perché non utilizzare la funzione di emulazione? – dangerstat

+0

ho bisogno di risultati accurati di velocità del mio algoritmo cuda. funziona già sotto VM, ma non sono sicuro di utilizzare le risorse gpu complete (a causa della VM). – scatman

+0

Nella VM dovrebbe essere in esecuzione in modalità emulazione, eseguire deviceQuery (dall'SDK) o chiamare cudaGetDeviceProperties per verificare. – Tom

risposta

19

Sfortunatamente la macchina virtuale simula un dispositivo grafico e come tale non avrà accesso alla vera GPU. Ciò è dovuto al modo in cui la virtualizzazione gestisce più macchine virtuali che accedono allo stesso dispositivo - fornisce uno strato intermedio per condividere il dispositivo reale.

È possibile ottenere un vero accesso all'hardware, ma solo se si ha la giusta combinazione di software e hardware, vedere SLI Multi-OS site per i dettagli.

Quindi probabilmente siete fuori di fortuna con il percorso di virtualizzazione - se davvero non si può eseguire l'applicazione in Windows allora siete limitati a quanto segue:

  1. Unrealistic: Installare Linux invece
  2. Unrealistic: Installare Linux fianco (non un'opzione)
  3. Avviare in un CD live, si potrebbe preparare un immagine del disco con CUDA e montare l'immagine ogni volta
  4. Setup (o elemosinare/prestito) una scatola separata con Linux e accedervi da remoto
2

Come di CUDA 3.1 è capacità di virtualizzazione non sono vividi, così l'unico approccio utilizzabile è quello di eseguire i programmi CUDA direttamente sul target HW + SW

10

Ho appena sentito un discorso alla conferenza tecnologia GPU di NVIDIA da un ricercatore chiamato Xiaohui Cui (Oak Ridge National Laboratory). Tra le altre cose, ha descritto l'accesso alle GPU dalle macchine virtuali usando qualcosa chiamato gVirtuS. Non ha creato gVirtuS, ma l'ha descritto come un driver "virtual cuda" di opensource. Vedere il seguente link: http://osl.uniparthenope.it/projects/gvirtus/

Non ho provato gVirtuS, ma sembra che potrebbe fare quello che vuoi.

17

Ho affrontato un compito simile una volta. Quello che ho finito è stato installare Ubuntu su una chiavetta USB da 8 GB con modalità permanente abilitata.

Questo mi ha dato 4 GB per installare CUDA e tutto il resto necessario.

Avere una chiavetta USB avviabile in giro può essere molto utile. Raccomando di leggere this.

Inoltre, this link ha un materiale molto interessante se stai cercando altre distro.

2

Utilizzare rCUDA per aggiungere una GPU virtuale alla macchina virtuale.

+2

A partire dal 30 novembre 2012 l'attuale versione stabile (v3.2), così come la versione beta del nuovo rCUDA 4 Le distribuzioni Windows e Linux non sono interoperabili. Inoltre, le versioni a 32 e 64 bit non sono ancora interoperabili. Ciò significa che una VM Linux in esecuzione su un host Windows non può utilizzare rCUDA. – SmileAndNod

+0

rCUDA non sembra essere open source (il sito Web ha un modulo di richiesta software) e non sembra supportare tutti gli linux come arch linux. – simonzack