WSL2でcudaを利用しようとするとき、ネイティブlinux上で導入するときと同様の手順をとるとwslが壊れる原因になります。
wsl2では「Linux用のNVIDIAドライバをWSL内にインストールしてはいけない」という原則があり、これは、WSL2では、Windows側にインストールされたドライバをWSL側から「参照」する特殊な仕組みをとっているためです。
以下に最新のwsl2でのcudaセットアップ手順を整理しました。
導入手順
手順1:windows側の準備
まず、ホストOS(Windows)側に最新の NVIDIA ドライバをインストールします。
- Windows Driver の更新: NVIDIA公式サイト から、自分のGPUに合った Game Ready または Studio ドライバをインストールします。
- WSL の更新: PowerShell を管理者権限で開き、最新のカーネルであることを確認します。
wsl --update
画像 : nvidiaドライバーの公式インストールページ
手順 2:Linux(Ubuntu等)内での CUDA Toolkit インストール
WSL内の Ubuntu に CUDA Toolkit をインストールします。この際、WSL専用のリポジトリを使用するのがポイントです。
既存の鍵を削除(クリーンアップ)
sudo apt-get install -y gnupgCUDA リポジトリの登録 (Ubuntu 24.04/22.04共通)
登録コマンドラインの例
# リポジトリピンの追加
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# Toolkitのインストール(※ドライバを含まないパッケージを指定)
sudo apt-get -y install cuda-toolkit最新版のインストール手順は CUDA Toolkit Download (NVIDIA Developer)にあるので、自身の環境にあったものを登録してください。
最新版を参照する際の手順:
- Operating System:
Linuxを選択 - Architecture:
x86_64を選択 - Distribution:
WSL-Ubuntuを選択 - Installer Type:
deb (network)を選択 - ※CUDA Toolkit Installerの方だけ実行してください。
[!CAUTION] 注意点:
sudo apt-get install cudaなどのドライバ同梱パッケージをインストールすると、WSLが壊れる原因になります。必ずcuda-toolkitのみ、またはwsl-ubuntu用のパッケージを選んでください。
手順 3:パス(PATH)の設定
インストールしただけでは nvcc コマンドが使えないため、.bashrc にパスを追記します。
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc手順 4:動作確認
設定が正しく完了したか、以下のコマンドで確認します。
- GPUの認識確認:
nvidia-smi(Windows側のドライバ情報が表示されればOK) - コンパイラの確認:
nvcc -V(インストールしたCUDAのバージョンが表示されればOK)
nvidia-smi ||
nvcc -V
画像2:nvccの導入成功した場合の出力
(補足) Docker で GPU を使いたい場合
Dockerコンテナ内でもGPUを利用する場合は、NVIDIA Container Toolkit の追加インストールが必要です。(以下のコマンドは導入の一例です。環境によっては以下の手順でうまくいかない場合があります)
# GPG鍵とリポジトリの追加
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# インストール
sudo apt-get install -y nvidia-container-toolkit
# Dockerの設定反映
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerインストール完了
nvccまで入れられれば、cudaのセットアップは完了です。cudaのセットアップが終わったら、深層学習用フレームワーク pytorchを導入してpythonで深層学習モデルを動かせるようにしましょう。
pytorchのセットアップ : 関連記事は、2026年4月15日に公開予定 (あと4日)