私はcudaプログラムを作成し、それをubuntuで仮想マシンとしてテストしています。その理由は、Windows 7を使用しているためです。ubuntuをセカンダリオペレーティングシステムとしてインストールしたくありません。テストにはLinuxオペレーティングシステムを使用する必要があります。私の質問は、仮想マシンがGPUリソースを制限するかどうかです。それで、私のcudaコードを仮想マシンで実行するよりも、プライマリオペレーティングシステムで実行した方が速くなりますか?
残念ながら、仮想マシンはグラフィックデバイスをシミュレートしているため、実際のGPUにはアクセスできません。これは、仮想化が同じデバイスにアクセスする複数のVMを処理する方法が原因です。実際のデバイスを共有するためのレイヤーが提供されます。
ハードウェアへの真のアクセスを取得することは可能ですが、ソフトウェアとハードウェアの正しい組み合わせがある場合にのみ、詳細について SLI Multi-OSサイト を参照してください。
そのため、仮想化のルートがうまくいかない可能性があります。実際にWindowsでアプリを実行できない場合は、次の制限があります。
Xiaohui Cui(オークリッジ国立研究所)という研究者によるNVIDIAのGPUテクノロジーカンファレンスでの講演を聞きました。とりわけ、彼はgVirtuSと呼ばれるものを使用して仮想マシンからGPUにアクセスすることについて説明しました。彼はgVirtuSを作成しませんでしたが、それをオープンソースの「仮想cuda」ドライバーとして説明しました。次のリンクを参照してください: http://osl.uniparthenope.it/projects/gvirtus/
私はgVirtuSを試したことはありませんが、望みどおりの結果が得られるようです。
CUDA 3.1以降、その仮想化機能は鮮明ではないため、使用可能な唯一のアプローチは、ターゲットHW + SWで直接CUDAプログラムを実行することです
rCUDA を使用して、仮想GPUをVMに追加します。