2014-07-09 20:41:04 +0000 2014-07-09 20:41:04 +0000
30
30

VirtualBoxからNVidiaのGPUを使う?

VirtualBoxゲストにNVidiaグラフィックスを使用させる方法を教えてください。

  • Windows 7 x64

  • NVidia Optimus

  • NVIDIAのコントロールパネルで、High-performance NVIDIA processor_forを明示的に選択しました。

  • VirtualBoxを実行している場合、NVidiaのソフトウェアはNVidia GPUを使用するアプリケーションとしてリストアップしていません。そのため、VirtualBoxは確かにNvidia GPUを使用していないと推測されます。

ゲスト:

  • Windows 7 x64 (つまりホストと同じ)

  • Guest Additionsがインストールされている

  • VirtualBox設定で3Dアクセラレーションが有効になっています。Display / Video / Enable 3D Acceleration

  • Rhinoceros 、OpenGL対応アプリケーションがビデオアダプタとして報告しているもの。

回答 (2)

22
22
22
2019-01-18 20:23:51 +0000

私は数年が経過していることを認識していますが、この投稿がかなり高い位置に表示されているので、答えたいと思っています。過ぎ去った時間の中で、物事はずっとシンプルで良くなっています。

このスレッドにつまずく人は、2つのGPUを搭載したラップトップやPCを持っているので、ここにたどり着く可能性が高いでしょう。オンボードのIntel GPUはウィンドウと一般的なアプリケーションのレンダリングに使用されますが、GPUの3D機能を使用するアプリケーションは、より高性能なNvidia GPUを介して行う必要があります。

今日、クロスプラットフォームの開発をするためにラップトップ上にUbuntuのVMを構築していたのですが、ゲストVMが極端に遅くなった以外はすべて問題なく、CPU、メモリ、ディスクの使用率が低いことを示していたので、何の説明もありませんでした。

問題の原因がビデオのパフォーマンスにあることが判明するのに時間はかかりませんでした。アプリケーションの起動、ウィンドウの最大化/最小化など、2019年には当たり前になっていることですが、それなりの速度で動作するためには3Dアクセラレーションが必要なものはすべてGPU 0を使用していました。そして、ウィンドウを動かしたり、最大化したり、最小化したりすると、ホスト上のGPUを介して行われていることがわかりました。ホスト上のそのGPUはIntelの統合型HD GPUで、私はNVidiaのGTX-1050tiを使いたかったのですが、これがGPU1でした。

検索しても、どのGPUを使用するかを指定できる場所はどこにもありませんでした。しかし、このスレッドや他のいくつかのスレッドを見て、この手の設定ではNVidiaのコントロールパネルに入り、"3d設定の管理 “を行い、"プログラム設定 "タブをクリックしなければならないことを思い出しました。

"Virtualbox "はリストの中にはないでしょう。しかし、「追加」ボタンを押して、virtualbox.exeを追加することができます。Virtualbox がインストールされているドライブ/パスをドリルダウンする必要があるかもしれません。追加したら、以下の設定で、項目 2. "Select the preferred graphics processor for this program” が使用する GPU に設定されていることを確認してください。

オートに設定してはいけないし、確かにintegratedに設定してはいけない。もちろん、3Dアクセラレーションボックスをチェックした状態でVMの設定を行い、ホストにゲストの追加機能をインストールしておく必要があります。しかし、上記のようにホストビデオの 3D 設定を設定したら、ゲスト VM をシャットダウンし、Virtual Box を終了してから virtualbox と VM を再起動してください。

タスクマネージャ|performacneを使って、"virtualbox manager “のプロセスを見て、ゲストVMのUIをナビゲートしたときにどのGPUが使われているかを見ると、今はより良いGPUが使われているのがわかるはずです。下に貼り付けた画像を見てください。

以上のことから、ゲストVMでゲームを実行できることは期待しないでください。3Dアクセラレーションのパススルーはまだそこまで進んでいません。しかし、ゲストには最新のOSとUIが搭載されており、十分な体験ができると期待できます。ゲストVMでは、DirectX9をベースにしたものと同じように、古いゲームをプレイすることができます。残念なことに、GPUを仮想化する機能が進化するにつれ、3Dゲーム技術の進化は早くなっています。

17
17
17
2015-12-31 17:15:00 +0000

ゲストに GPU へのフルアクセスを与えることはおそらく不可能です。ホストがGPUを使用している間に仮想マシンがGPUに直接アクセスした場合、事実上異なる2台のコンピュータ間でメモリを共有することはあり得ないため、悪いことが起こるでしょう(2台のコンピュータ間ではポインタやアドレスなどが大きく異なるため)。(コンシューマー向けのカードで、同時に2台のコンピュータにサービスを提供できるものはありません。)

しかし、いくつか試してみることができます。まず、NVidiaのコントロールパネル(3D SettingsManage 3D settingsPreferred graphics processor)で、お好みのグラフィックプロセッサを良いものに設定してください。これでVirtualBoxがOpenGL用のNVidiaカードで動くようになるかもしれません。

それでも解決しない場合は、ゲストに ゲスト追加をセーフモードでインストール を試してみてください。

最後に、_Linuxホスト上では、仮想マシンにGPUを通すことができますが、これはPCIカードに対してのみ機能し、あなたのカードがPCIかどうかを見つけることができませんでした。まず、良いカードのPCIアドレス(バス、デバイス、機能)を見つけます。VM のチップセットを ICH9 に設定してください。次に、VBoxManage ユーティリティを使用してカードをアタッチします。

vboxmanage modifyvm "Your VM Name" --pciattach BB:DD.F@bb:dd.f

Your VM Name を適宜入れ替えてください。BBはホスト上のGPUのバス番号、DDはデバイス、Fは機能です。@の後に、ゲスト上で使用するPCIスロットを入力します。例:

vboxmanage modifyvm "Windows 7 x64" --pciattach 01:00.0@03.01.0

一般的に、GPUパススルーはLinuxホストで可能な可能性が高いです。GPUパススルーでゲーミングマシンをセットアップする方法](http://www.se7ensins.com/forums/threads/how-to-setup-a-gaming-virtual-machine-with-gpu-passthrough-qemu-kvm-libvirt-and-vfio.1371980/)を参照してください。

関連する質問

3
28
13
7
5