WSL2へのCUDA Toolkitインストール手順(Windows)

a close up of a graphics card on a table その他

WSL2上にCUDA Toolkitをインストールするための手順をまとめた記事です。以下の手順に沿って進めることで、Windows上のWSL2環境でGPUアクセラレーションを利用できるようになります。

事前準備

WindowsとNVIDIAドライバの準備

Windowsのバージョン

Windows 11(またはWSL2が利用可能なWindows 10 21H2以降)を使用してください。

NVIDIA Windowsドライバのインストール

GPUアクセラレーションを利用するため、Windows側に最新のNVIDIAドライバをインストールします。

WSL2内にはLinux用のNVIDIAドライバをインストールしてはいけません。Windows側のCUDAドライバがWSL2へ自動的に libcuda.so としてスタブ化され、WSL内からもCUDAライブラリとして利用可能となります。

WSL2とLinuxディストリビューションのセットアップ

WSL2のインストール

管理者権限のPowerShellで以下のコマンドを実行します。

PowerShell
wsl --install

インストール後、最新のWSLに更新します。

PowerShell
wsl --update

既定のバージョンをWSL2に設定します。デフォルトのディストリビューションもUbuntuにセット。

PowerShell
wsl --set-default-version 2
wsl --set-default Ubuntu
wsl --set-version Ubuntu 2
wsl --shutdown

デフォルトでUbuntuがインストールされます。

Ubuntuがインストールされた様子を表すスクリーンショット

起動後、ユーザー名やパスワードの設定を行うとWSL2上のUbuntu環境が利用可能になります。

他のLinuxディストリビューションのインストール

今回は必要ありませんが、他のディストリビューションをインストールしたい場合は以下の手順でインストールできます。

利用可能なディストリビューションの一覧を表示します。

PowerShell
wsl --list --online

インストールしたいディストリビューションを選択し、インストールします。

PowerShell
ws --install -d <ディストリビューション名>

インストール済みのディストリビューションの確認は以下のコマンドで行えます。

PowerShell
wsl --list --verbose

CUDA Toolkit のインストール手順

公式のガイドに沿って、WSL2環境内(Ubuntu)でLinux x86向けのCUDA Toolkitパッケージをインストールしていきます。

※ここからはWSLのUbuntuでコマンド実行します

インストール

最初に古いGPGキーを削除します。

Bash
sudo apt-key del 7fa2af80

次に下記ページを開き、インストールコマンドを取得します。

コマンド例

Bash
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

インストールの確認

インストールが正しく完了しているか、次のコマンドでCUDAコンパイラのバージョンを確認します。

Bash
/usr/local/cuda/bin/nvcc --version

実行例として、以下のような出力が得られれば成功です。

Bash
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

Docker Desktop のインストール

Dockerも入れておいたほうが便利なのでついでにインストールします。

インストール

下記ページに書いてある手順でインストールしてください。

sudoなしで実行するための設定

Ubuntuを起動し、docker コマンドを実行しようとすると次のように権限で弾かれます。

Bash
$ docker image ls
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

dockerコマンドはデフォルトではroot権限がないと実行できません。sudo をつければ実行できますが、いちいちパスワードを求められるのも面倒です。

そこで、ユーザーをdockerグループに追加して sudo を省略できるようにしましょう。

次のコマンドを実行します。ユーザー名は自分で設定したものを入力してください。

Bash
sudo usermod -aG docker <ユーザー>

一旦ログアウト後、再度Ubuntu内に入ると sudo 無しで dockerコマンドを実行できるようになっているはずです。

Dockerコンテナ内からGPU使用できることを確認

最後に確認のため、次のコマンドを実行します。

Bash
docker run --rm --gpus all nvidia/cuda:12.6.2-base-ubuntu22.04 nvidia-smi

実行例として次のような情報が表示されれば成功です。

Bash
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.77.01              Driver Version: 566.36         CUDA Version: 12.7     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4080        On  |   00000000:01:00.0  On |                  N/A |
|  0%   34C    P8             27W /  320W |    1738MiB /  16376MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

まとめ

以上の手順でWSL2上にCUDA Toolkitをインストールすることで、WSL2内のLinux環境からGPUの使用が可能になります。

以前はWindows上でのこのような環境構築は難易度高めな印象でしたが、最新のWSL2および公式ドキュメントの整備により、比較的簡単な手順で実現できるようになりました。

NVIDIAのGPUを持っている人は、ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました