複数の仮想環境下でグラフィック処理またはAIの学習などをさせる場合、GPUはどのような動きをしますか?

nathan-anderson-KHSPGJ3zP0M-unsplash.jpg

質問

複数の仮想環境下でグラフィック処理またはAIの学習などをさせる場合、GPUはどのような動きをしますか?


解答

いい質問です。
CPUの仮想化に比べて GPU の仮想化・共有 は複雑で、ホストとゲスト、さらにワークロード(グラフィック処理かAI学習か)によって挙動が異なります。


1. 基本原則

GPUはCPUのように簡単には完全仮想化できません。
そのため、複数の仮想環境(VM)がGPUを使う方法にはいくつかの方式があります。


2. GPU利用の主な方式

(1) パススルー(GPU Passthrough)

  • 物理GPUを丸ごと1台、特定のゲストVMに直結させる。

  • ゲストOSからは「本物のGPUが載っているマシン」として見える。

  • 特徴

    • ほぼネイティブ性能

    • 他のVMと共有できない(1台1VM専用)

  • 用途:

    • ゲーム用仮想マシン

    • AI学習用サーバー(1ユーザー専用GPU割り当て)


(2) vGPU(仮想GPU, Virtual GPU)

  • 1つの物理GPUを、複数のゲストVMで分割して使う仕組み。

  • NVIDIA vGPU(GRID)、AMD MxGPU などが代表例。

  • 特徴

    • GPUリソースをVMごとに割り当て(例: 1 GPUを4つに仮想分割)

    • ゲストからは専用GPUのように見える

    • ただし「メモリ容量や処理能力は分割」される

  • 用途:

    • VDI(仮想デスクトップ)で3Dグラフィックを使う社員を同時に動かす

    • 複数ユーザーでAI推論を同時実行


(3) APIリダイレクト(仮想化ではなく転送)

  • ゲストのGPU命令をホストに転送して、ホストGPUで処理する方式。

  • 例: VMware SVGA II、VirtualBoxの3Dアクセラレーション。

  • 特徴

    • 実際にはホストでレンダリングし、結果をゲストに渡す

    • 性能は限定的

  • 用途:

    • 軽い3D描画やテスト目的


(4) MPS(Multi-Process Service, 特にAI向け)

  • NVIDIA CUDA 環境での仕組み。

  • 複数のプロセスが同じGPUを同時に利用できるようにスケジューリング。

  • 特徴

    • メモリは共有だが、SM(Streaming Multiprocessors)を複数プロセスで時間分割して使える

    • AI学習タスクを同時に複数動かせる

  • 用途:

    • 推論サーバーや軽い学習を複数ユーザーで分け合う


3. GPUの動き方(まとめ)

  • Passthrough → 1つのVMがGPUを完全占有して、フルパワーで動作

  • vGPU → GPUを仮想的に分割し、複数VMでシェア

  • APIリダイレクト → 命令をホストに転送して実行(制限多め)

  • MPS → AI向けにGPUの演算ユニットを複数プロセスでスケジューリング


4. 注意点

  • AIの学習(トレーニング)はGPUメモリを大量に使うので「占有(Passthrough)」が一般的。

  • AIの推論(Inference)は比較的軽いので「vGPU」や「MPS」でシェアするのが効率的。

  • GPU仮想化はベンダー依存(NVIDIAはvGPUライセンス必須、AMDはSR-IOVで対応など)。


👉 つまり、複数の仮想環境でAI学習やグラフィック処理を走らせる場合、

  • 本格学習 → GPU Passthrough が現実的

  • 軽い処理や推論 → vGPU や MPS で効率的にシェア






生成AIがもたらす開発プロセス革命 (日経BPムック) [ 日経クロステック ]

価格:2640円
(2025/9/12 21:38時点)
感想(0件)


 



この記事へのコメント