web-dev-qa-db-ja.com

VirtualBoxからホストCUDAを使用しますか?

問題

Host dGPUを使用して、CUDAコアを使用していくつかのニューラルネットワークをOracleのUbuntu 16.04ゲスト経由でトレーニングしたいと思いますVM VirtualBoxバージョン5.2.22。これを行うことは可能ですか?

ホストのセットアップ:

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

ゲストのセットアップ:

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

enter image description here

注: 前へ VirtualBox内のWindows 7ホストのNvidia GPUをゲームに使用することについて質問されました。この質問は別の設定と目的に関するものであり、今日では役に立ちません。別の question は、VirtualBoxでのグラフィックカードの使用について尋ねますが、これも古い質問です。

8
Gabriel Fair

これを掘り下げると、現在これは可能ですが、限られた構成、特定のホストOS、およびエンタープライズソフトウェアの使用によってのみ可能です。

Windows Server 2016以降、ただしHyper-Vを使用

  • これは、Windowsサーバーをホストおよびハイパーバイザーとして使用する場合のみ 可能 です。上記の質問で述べたように、ホストとしてのWindows 10 proでは利用できません。

Ubuntu 18.04以降とVirtualbox

  • 仮想ボックス のドキュメント によると、ゲストとホストの両方に、DMA再マッピングを含むIOMMUサポートでコンパイルされたLinuxカーネルが必要です。これは、Ubuntuの最新バージョンではデフォルトで行われます。
  • コマンドfind /sys | grep dmarおよびdmesg | grep IOMMUは、カーネルがIOMMUサポートでコンパイルされているかどうかを通知します。 DMAR: IOMMU enabledはあなたが探しているものです。

Windows 10 Pro、ただしVMware Workstation Pro 15またはVMware ESXi

5
Gabriel Fair

これはLinuxで可能であるようで、そのための詳細な手順があります。

CPUは必要なVT-d機能をサポートし、うまくいけば(指定されていない)マザーボードもサポートします。また、2つのグラフィカルアダプターがあるため、1つをVM(他のGPUはかなり制限されていることを思い出してください)に放棄する余裕があります)。

私はそれのための環境を持っていないので、テストする必要がある主題に関するさまざまな記事があります。チュートリアルでは言及されていませんが、VMのチップセットはICH9である必要があります。各記事で指定されている仮想マネージャーを使用する必要がある場合があります。

ここに参照があります:

7
harrymc

グラフィックカードがシステムのプリンシパルではない場合は、VMへのPCIパススルーの使用を考えることができます。このように、ゲストOSが直接アクセスできます。残念ながら、VBoxはこの機能をサポートしていないようです( ここ を参照)。他のデスクトップ仮想化ソフトウェアでサポートされているかどうかはわかりません。

とにかく、グラフィックカードがホストOSでも使用されている場合は、PCIパススルーを実行できません。

更新

他のデスクトップ仮想化ソフトウェアもPCIパススルーをサポートしていないようです(最近の投稿で十分だと思います)

  • Windows 10のHyper-v:読み取り ここ
  • VMwareワークステーション:読み取り ここ
3
AtomiX84