windows 7 – VirtualBoxからNVidia GPUを使用しますか?

nvidia-graphics-card optimus virtual-machine virtualbox windows-7

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ゲーム技術はより早く進化していきます

Screenshot

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


タイトルとURLをコピーしました