web-dev-qa-db-ja.com

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

VirtualBoxゲストにNVidiaグラフィックを使用させるにはどうすればよいですか?

ホスト設定:

  • Windows 7 x 64

  • NVidiaオプティマス

  • NVIDIAコントロールパネルで、以下の目的で明示的に高性能NVIDIAプロセッサを選択しました。

     C:\Program Files\Oracle\VirtualBox\VirtualBox.exe
     C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe
    
  • VirtualBoxが実行されているとき、NVidiaソフトウェアはNVidia GPUを使用するアプリケーションとしてそれをリストしません。したがって、私はVirtualBoxが実際にNvidia GPUを使用していないと思います。

ゲスト:

  • Windows 7 x 64(ホストと同じ)

  • Guest Additionsがインストールされました

  • VirtualBox設定で3Dアクセラレーションを有効にする:ディスプレイ/ビデオ/ 3Dアクセラレーションを有効にする

  • Rhinoceros 、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のハードウェアアクセラレーションを使用しています。

23
feklee

「virtualbox 3d multiple GPU」にグーグルすると、この投稿がかなり高く表示されるようになってから数年が経ちましたが、答えたいと思いました。過ぎ去った時間の中で、物事ははるかに簡単で良くなった。

このスレッドに遭遇する人々は、2台のGPUを搭載したラップトップまたはPCを所有しているため、ここに着陸する可能性があります。オンボードIntel GPUは、ウィンドウや一般的なアプリケーションのレンダリングに使用されますが、GPU 3D機能を利用するアプリケーションは、より高性能のNvidia GPUを介してそれを実行する必要があります。

今日、私は自分のラップトップ上でクロスプラットフォーム開発を行うためにUbuntu VMを構築していましたが、guest VMが非常に遅いことを除いてすべて問題ありませんでした。 CPU、メモリ、ディスクの使用率が低いためです。

問題の原因となっているのがビデオパフォーマンスであることを把握するのにそれほど時間はかかりませんでした。アプリケーションの起動、ウィンドウの最大化/最小化 - 2019年に当然のことと考えられていたが、合理的な速度で動作するためには3Dアクセラレーションが必要 - はGPU 0を使用していました。

Windows 10は "タスクマネージャ"を使ってGPU使用率を見ることができるようになり、次に "パフォーマンス"タブを見ることができるようになったため、これを判断するのは簡単でした。そして、ウィンドウを最大化したり最小化したりして、ホスト上のGPUを通じてウィンドウが移動されているのがわかりました。ホスト上のそのGPUは統合されたIntel HD GPUです、そして私はGPU1であるNVidia GTX-1050tiを使いたかったです。

周りを検索した後、使用するGPUを指定できる場所が見つからなかった。しかし、このスレッドや他のスレッドは、この種の設定ではNVidiaのコントロールパネルを開き、次に「3D設定の管理」、そして「プログラム設定」タブの順に選択する必要があることを思い出しました。

リストに "Virtualbox"は見つからないでしょう。しかし、あなたは「追加」ボタンを押して、virtualbox.exeを追加することができます。仮想ボックスのインストール先のドライブ/パスをドリルダウンする必要があるかもしれません。追加したら、下の設定で、「このプログラムに最適なグラフィックプロセッサを選択してください」が使用したいGPUに設定されていることを確認してください。私の場合は「高性能NVIDIAプロセッサ」でした。 。

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

Task manager | performacneを使用して「virtualbox manager」プロセスを調べ、ゲストVMのUIをナビゲートしたときにどのGPUが使用されるのかを確認したら、今度はより良いGPUを使用してそれを見るべきです。下の画像を見てください。

とは言っても、ゲストVMでゲームを実行できるとは思わないでください。 3D加速パススルーはまだそれほど遠くにありません。しかし、あなたはあなたのゲストに最新のOSとUIを持っていることを期待することができ、そして許容できる経験を持っています。 directX9をベースにしたものと同じように、ゲストVMで古いゲームをプレイすることができます。残念ながら、GPUを仮想化する機能が進化するにつれて、3Dゲームテクノロジは急速に進化しています。

Screenshot

13
Thomas Carlisle

ゲストにフルGPUアクセス権を与えることはおそらく不可能です。ホストが使用している間に仮想マシンがGPUに直接アクセスした場合、悪いことTM 2つの事実上異なるコンピュータ間でメモリを共有することは問題ではないためです。ポインターとアドレス、およびそれらの間ではまったく違いがありません。 (2つのコンピュータを同時に保守することをサポートしている消費者向けカードはありません。)

ただし、試すことができるものがいくつかあります。まず、NVidiaコントロールパネルでお好みのグラフィックプロセッサを適切なものに設定します( 3D設定 3D設定の管理 /]優先グラフィックプロセッサ)。 VirtualBoxがOpenGL用のNVidiaカードと一緒になるかもしれません。

それでも解決しない場合は、 を使って、Guest Additionsをセーフモードでインストールしてください

最後に、Linuxホストのでは、GPUを仮想マシンに渡すことができますが、これはPCIカードでしか機能せず、自分のPCIカードがPCIカードかどうかはわかりませんそれでも、GPUをホストから切り離したり、その他の問題を引き起こす可能性があります。まず、良いカードの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:[email protected]

一般に、GPUパススルーはLinuxホストでは可能性が高いです。 GPUパススルーでゲーム機を設定する方法 を参照してください。

16
Ben N