Verwenden Sie Host CUDA von VirtualBox?

Problem

Ich möchte meine Host-dGPU verwenden, um einige neuronale Netzwerke mit ihren CUDA-Kernen über meinen Ubuntu 16.04-Gast in Oracle VM VirtualBox Version 5.2.22 zu trainieren. Wäre es möglich, dies zu tun?

Host setup:

Windows 10.0.17763.195 (1809) Pro x64
Intel i7-6700HQ (Intel HD Graphics 530)
NVIDIA GeForce GTX 960M (CUDA Cores 640) via PCI Express x16 Gen3, DirectX v12.0 (FL 11.0)
Virtualization is Supported, Enabled via UFEI and OS

Gast setup:

Ubuntu 16.04
Chipset PIIX3 with Enabled I/O APIC
Processor has enabled PAE/NX
VT-X and AMD-V are Supported, Enabled
Nested Paging, Enabled
3D Acceleration Enabled
Extension Pack is installed

geben Sie hier die Bildbeschreibung ein

Hinweis: Eine vorherige Frage zur Verwendung der Nvidia-GPU des Windows 7-Hosts in VirtualBox für Spiele wurde gestellt. Diese Frage betrifft ein anderes Setup und zweck und ist zu alt, um heute nützlich zu sein. Eine andere Frage fragt nach der Verwendung einer Grafikkarte in VirtualBox, aber dies ist auch eine alte Frage.

Author: Gabriel Fair, 2018-12-29

3 answers

Bei vielem Graben ist dies derzeit möglich, jedoch nur mit begrenzten Konfigurationen, spezifischen Host-Betriebssystemen und der Verwendung von Unternehmenssoftware.

Windows Server 2016 und höher, aber mit Hyper-V -

  • Dies ist nur möglich mit Windows Server als Host und Hypervisor. Es ist nicht mit Windows 10 Pro als Host verfügbar, wie in der obigen Frage angegeben.

, Ubuntu 18.04 und höher mit Virtualbox

  • Der Gast und der Gastgeber müssen beide haben ein Linux-Kernel, der mit IOMMU-Unterstützung kompiliert wurde, einschließlich DMA-Neuzuordnung, gemäß der virtualbox Dokumentation. Dies geschieht standardmäßig in der neuesten version von Ubuntu.
  • Mit den Befehlen find /sys | grep dmar und dmesg | grep IOMMU erfahren Sie, ob der Kernal mit IOMMU-Unterstützung kompiliert wurde. DMAR: IOMMU enabled ist, was Sie suchen.

Windows 10 Pro, aber mit VMware Workstation Pro 15 oder VMware ESXi -

  • VMware erlaubt für ein paar Möglichkeiten für GPU passthrough oder Freigabe mit den Gast-VM-Systemen. Auch hier muss VT-d oder AMD IOMMU auf dem Host aktiviert sein.
 12
Author: Gabriel Fair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-08 20:53:34

Dies scheint unter Linux möglich zu sein und es gibt detaillierte Anweisungen dafür.

Ihre CPU unterstützt die erforderliche VT-d-Fähigkeit und hoffentlich Ihre (nicht spezifizierte) motherboard als gut. Sie haben auch zwei grafische Adapter, so kann es sich leisten zu geben bis einer auf die VM (denken Sie daran, dass Ihre andere GPU eher begrenzt ist).

Es gibt verschiedene Artikel zu diesem Thema, die Sie testen müssen, da ich nicht die Umgebung dafür habe. Der Chipsatz der VM scheint ICH9 zu sein, obwohl nicht in den Tutorials erwähnt. Möglicherweise müssen Sie den virtuellen Manager verwenden, der in jedem Artikel benannt ist.

Hier sind die Referenzen :

 9
Author: harrymc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-10 10:50:32

Wenn die Grafikkarte nicht die Hauptkarte in Ihrem System ist, können Sie darüber nachdenken, PCI-Passthrough für die VM zu verwenden, damit das Gastbetriebssystem direkt darauf zugreifen kann. Leider scheint es, dass die VBox diese Funktion nicht unterstützt (lesen Sie hier ), und ich weiß nicht, ob sie von anderer Desktop-Virtualisierungssoftware unterstützt wird.

Wenn Ihre Grafikkarte auch vom Host-Betriebssystem verwendet wird, können Sie den PCI-Passthrough nicht ausführen.

Update -

Es scheint auch andere desktop Virtualisierungssoftware unterstützt PCI Passthrough nicht (der Beitrag, den ich gefunden habe, scheint neu genug zu sein)

  • Hyper-V in Windows 10: Lesen Sie hier
  • VMware workstation: Lesen Sie hier
 3
Author: AtomiX84,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-12-25 19:24:42