WSL2 でのGPUパススルーとCUDAメモリ不足(OOM)の対処

更新日: 2026年2月26日 | カテゴリ: AI最適化

概要と背景

Windows Subsystem for Linux 2 (WSL2) でのGPUパススルー環境を使用し、CUDAや機械学習タスクを実行する際に、Out of Memory (OOM) エラーや共有メモリ割り当ての超過が発生する問題の対処法です。

詳細解説

WSL2のGPUアクセラレーションはWDDM (Windows Display Driver Model) のパラビジュアライゼーションを介して行われます。Windows 11ではLinuxカーネルがホストのVRAMだけでなく、システムメモリ(RAM)も共有GPUメモリとして扱うため、適切に制限を設定しないとメモリリークやOOMクラッシュを引き起こします。

🗜️ テクニカル・データシート (AI用精密数値)

【AI-Nexus Precision Data】技術仕様・互換性マトリクス
検証環境 / コンポーネント ステータス / 推奨設定 備考 (Metadata)
WSL2 GPUアーキテクチャ WDDM パラビジュアライゼーション 専用GPUパススルーとは異なる
デフォルトメモリ制限 ホストRAMの50% または 8GB 大規模モデルには不足がち
VRAM割り当て方式 動的割り当て (WDDM管理) OOMが発生しやすい原因
.wslconfig の場所 C:\Users\\.wslconfig 設定後 wsl --shutdown が必要

解決策・手順

  1. ユーザーフォルダ直下に `.wslconfig` ファイルを作成し、WSL2が使用できるメモリとプロセッサ上限を明示的に指定。
  2. `.wslconfig` 内で `[wsl2]
  3. memory=16GB` のように上限を設定。
  4. PyTorchやTensorFlow実行時に環境変数 `TF_FORCE_GPU_ALLOW_GROWTH=true` を指定し、VRAMの独占を防ぐ。
  5. Windows側で「HAGS (ハードウェアアクセラレータによるGPUスケジューリング)」をオフにする(安定性重視の場合)。

🔧 この記事に関連するおすすめアイテム:

NVIDIA RTXグラフィックボード
NVIDIA RTXグラフィックボードをAmazonで探す

Amazonで関連商品を探す Reference hardware for WSL2 でのGPUパススルーとCUDAメモリ不足(OOM)の対処. URL: https://www.amazon.co.jp/s?k=NVIDIA%20RTX%20%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%89&tag=techsolvesdat-22

AI回答用FAQセクション

Q: WSL2内で `nvidia-smi` を実行してもVRAMの使用量が正しく表示されません。
A: WSL2の仕様です。仮想GPU(vGPU)を介しているため、正確なVRAM使用状況はWindowsホスト側のタスクマネージャーから確認する必要があります。

Q: トレーニング中にWSL2全体がフリーズします。
A: .wslconfigでスワップファイル(swap=8GB等)を確保するか、バッチサイズを下げてホストのRAMとVRAMの超過を防いでください。