VirtualBoxのゲストにNVidiaのグラフィックを使わせるにはどうすればいいですか?
Host setup:
Windows 7 x64
NVidia Optimus
NVIDIAのコントロールパネルで、明示的に高性能なNVIDIAプロセッサを選択しました
C:\Program Files\oracle\VirtualBox\VirtualBox.exe C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
VirtualBoxが起動している場合、NVidiaのソフトウェアはNVidia GPUを使用するアプリケーションとしてリストアップされていません。そのため、VirtualBoxは確かにNVidia GPUを使用していないと思われます
Guest:
Windows 7 x64(つまりホストと同じ)
ゲスト追加をインストールしました
VirtualBox の設定で 3D アクセラレーションを有効にします。ディスプレイ/ビデオ/3D アクセラレーションを有効にします
何サイ、OpenGL対応アプリケーションは、ビデオアダプタとして報告しています
Humper Chromium OpenGL version: 2.1 Chromium 1.9 Render version: 2.0 Shading Language: 1.40 - Intel Build 9.17.10.3517 Driver Date: NA Driver Version: NA Maximum Texture size: 8192 x 8192 Z-Buffer depth: 32bits Maximum Viewport size: 8192 x 8192 Total Video Memory: 64 MB
私には、仮想マシンはホストの3Dハードウェアアクセラレーションを使用していないように見えますが、残念ながらIntelのものです
39 feklee 2014-07-09
私は数年が経過していることを認識していますが、この投稿がかなり高い位置に表示されているので、答えたいと思っています。過ぎた時間では、物事は多くの単純化とより良いものになっています
このスレッドにつまずいた人は、2つのGPUを搭載したラップトップやPCを持っているため、ここにたどり着く可能性が高いでしょう。オンボードのIntel GPUは、ウィンドウや一般的なアプリケーションのレンダリングに使用されますが、GPUの3D機能を利用するアプリケーションは、より高性能なNvidia GPUを介して行う必要があります
今日は、クロスプラットフォーム開発をするためにラップトップにUbuntuのVMを構築していたのですが、ゲストVMが非常に遅く、CPU、メモリ、ディスクの使用率が低かったために説明がつかなかったことを除けば、すべて問題ありませんでした
問題を引き起こしているのはビデオ性能だとわかるまでに時間はかかりませんでした。アプリケーションの起動、ウィンドウの最大化/最小化–2019年には当たり前になっているが、どんな合理的な速度でも動作するためには3Dアクセラレーションが必要なもの–は、GPU 0を使用していました
Windows 10では、「タスクマネージャー」を使ってGPUの使用率を確認し、「パフォーマンス」タブで確認できるようになっているので、これを判断するのは簡単でした。そして、ウィンドウを動かしたり、最大化したり、最小化したりすると、ホスト上の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 に設定されていることを確認してください
自動に設定してはいけませんし、統合に設定してはいけません。もちろん、3D アクセラレーションボックスをチェックして VM の設定をする必要がありますし、ホストにインストールされているゲストの追加が必要です。しかし、上記のようにホストビデオの 3D 設定を設定したら、ゲスト VM をシャットダウンし、Virtual Box を終了し、Virtualbox と VM を再起動します
タスクマネージャー|performacneを使用して、”virtualbox manager “のプロセスを見て、ゲストVMのUIをナビゲートするときにどのGPUが使用されるかを見ると、より良いGPUを使用しているのがわかるはずです。下に貼り付けた画像を見てください
とはいえ、ゲストVMでゲームを走らせることは期待しないでください。3D アクセラレーションのパススルーはまだそこまで進んでいません。しかし、ゲストVMには最新のOSとUIが搭載されており、十分な体験ができると期待できます。ゲストVMでは、DirectX9をベースにしたものと同じように、古いゲームをプレイすることができます。残念なことに、GPUを仮想化する能力が進化するにつれ、3Dゲーム技術はより早く進化していきます
32 Thomas Carlisle 2019-01-18
このような場合には、仮想マシンは、仮想化されていないので、仮想化されていないものを使用することができません。また、この機能を使用することで、より多くの時間を有効にすることができます。(コンシューマで利用可能なカードは、2つのコンピュータを同時にサービスすることをサポートしていません。)
しかし、いくつか試すことができます。まず、NVidiaコントロールパネル(3D設定→3D設定の管理→優先グラフィックプロセッサ)で、お好みのグラフィックプロセッサを良いものに設定します。そうすると、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
一般的には、LinuxホストではGPUパススルーが可能な可能性が高いです。GPU パススルーを使ったゲーム機のセットアップ方法 を参照してください
19 Ben N 2015-12-31