2010-02-14 14 views
20

Ich schrieb ein Cuda-Programm und ich teste es auf Ubuntu als eine virtuelle Maschine. Der Grund dafür ist, dass ich Windows 7 habe, ich möchte Ubuntu nicht als sekundäres Betriebssystem installieren, und ich muss ein Linux-Betriebssystem zum Testen verwenden. meine Frage ist: wird die virtuelle Maschine die GPU-Ressourcen begrenzen? Ist mein Cuda-Code also schneller, wenn ich ihn unter meinem primären Betriebssystem ausführe, als wenn er auf einer virtuellen Maschine läuft?Cuda-Programm auf VMware

+1

Ich denke, du hättest Glück, wenn es überhaupt unter VM funktioniert. Sie können CUDA-Entwicklung unter Windows 7 durchführen. Wenn Sie aus irgendeinem Grund ein Problem haben, warum verwenden Sie die Emulationsfunktion nicht, wenn Sie Entwickeln und nicht in einer Produktionsumgebung verwenden? – dangerstat

+0

Ich brauche genaue Geschwindigkeitsergebnisse meines Cuda-Algorithmus. Es funktioniert bereits unter VM, aber ich bin mir nicht sicher, ob ich die vollen GPU-Ressourcen verwende (wegen VM). – scatman

+0

In der VM sollte es im Emulationsmodus ausgeführt werden, führen Sie deviceQuery (aus dem SDK) oder cudaGetDeviceProperties aufrufen, um zu überprüfen. – Tom

Antwort

19

Leider simuliert die virtuelle Maschine ein Grafikgerät und Sie haben somit keinen Zugriff auf die reale GPU. Dies liegt an der Art und Weise, wie die Virtualisierung mehrere VMs behandelt, die auf dasselbe Gerät zugreifen - es bietet eine Schicht dazwischen, um das reale Gerät zu teilen.

Es ist möglich, echten Zugriff auf die Hardware zu erhalten, aber nur, wenn Sie die richtige Kombination aus Software und Hardware haben, finden Sie unter SLI Multi-OS site für Details.

So sind Sie wahrscheinlich kein Glück mit der Virtualisierungs-Route - wenn Sie wirklich nicht Ihre App in Windows ausführen können, dann sind Sie beschränkt auf die folgenden:

  1. Unrealistische: Installieren Sie Linux statt
  2. Unrealistische: Installieren Sie Linux neben (nicht optional)
  3. -Boot in einer Live-CD, Sie ein Disk-image mit CUDA vorbereiten konnte und montieren das Bild jedes Mal
  4. Setup (oder betteln/borrow) eine separate Box mit Linux und Greifen Sie aus der Ferne darauf zu
2

Ab CUDA 3.1 es Virtualisierungsfunktionen sind nicht lebendig, so dass der einzige nutzbare Ansatz ist CUDA-Programme direkt auf dem Ziel HW + SW

10

Ich höre nur einen Vortrag auf NVIDIAs GPU-Technologie-Konferenz von einem Forscher laufen benannt Xiaohui Cui (Oak Ridge National Laboratory). Unter anderem beschrieb er den Zugriff auf GPUs von virtuellen Maschinen mit etwas namens gVirtuS. Er hat gVirtuS nicht erstellt, sondern als Open Source "virtual cuda" -Treiber beschrieben. Siehe folgenden Link: http://osl.uniparthenope.it/projects/gvirtus/

Ich habe gVirtuS nicht versucht, aber klingt, als könnte es tun, was Sie wollen.

17

Ich hatte einmal eine ähnliche Aufgabe. Am Ende habe ich Ubuntu auf einem 8GB-USB-Stick mit aktivem Dauermodus installiert.

Das gab mir 4GB, um CUDA und alles, was ich brauchte, zu installieren.

Ein bootfähiger USB-Stick kann sehr nützlich sein. Ich empfehle das Lesen this.

Auch this link hat einige sehr interessante Material, wenn Sie für andere Distributionen suchen.

2

Verwenden Sie rCUDA, um Ihrer virtuellen Maschine eine virtuelle GPU hinzuzufügen.

+2

Ab dem 30. November 2012 die aktuelle stabile Version (v3.2), sowie Beta-Version der Neue rCUDA 4 Windows- und Linux-Distributionen sind nicht interoperabel. Darüber hinaus sind 32- und 64-Bit-Versionen noch nicht interoperabel. Dies bedeutet, dass eine Linux-VM, die auf einem Windows-Host ausgeführt wird, rCUDA nicht verwenden kann. – SmileAndNod

+0

rCUDA scheint nicht Open Source zu sein (die Website hat ein Software-Anfrageformular) und scheint nicht alle Linux-Systeme wie zB arch linux zu unterstützen. – simonzack