数日間、WSL で GPU を正常に使用できずに苦労しました。公式のチュートリアルも何度も見直しましたが、最後には近くのユーザーが言っていたように、WSL を使用して GPU を呼び出すためには、システムが 21H2 バージョンである必要があることがわかりました。WIN+R を押して winver を入力して確認したところ、私のバージョンは 20H2 でした。問題が見つかりました。今思い返すと、公式のチュートリアルは本当にひどいですね。プレビュープログラムに参加するように求められますが、システムのバージョンを手動で更新する必要があることは教えてくれません。何日も研究してばかりでした。
以下に大まかな設定手順を記録します。
-
ここ [https://insider.windows.com/en-us/getting-started#register] にアクセスしてプレビュープログラムに登録します。
-
設定→更新とセキュリティ→Windows の更新で、システムを 21H2 に更新します。
-
Windows システムで、WSL を含む CUDA ドライバをダウンロードしてインストールします [https://developer.nvidia.com/cuda/wsl/download]。
-
WSL をインストールし、バージョン 2 にアップグレードします [https://docs.microsoft.com/en-us/windows/wsl/install-manual]。
-
Microsoft Store で Ubuntu を検索し、インストール後にコンテナを開き、ユーザー名とパスワードを設定します。
-
Windows PowerShell で次のコマンドを実行し、Ubuntu コンテナのバージョンが 2 であることを確認します。
wsl -l -v
-
コンテナ内で CUDA をインストールしますが、ドライバはインストールする必要はありません [https://docs.nvidia.com/cuda/wsl-user-guide/index.html#installing-nvidia-drivers]。4.2.6 Building Your Own GPU-accelerated Application on WSL 2 から始めてください。
-
環境変数を追加します。
vim ~/.bashrc export CUDA_HOME=/usr/local/cuda export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 export PATH=${CUDA_HOME}/bin:${PATH} source ~/.bashrc
-
これで次の 2 つのコマンドを正常に使用できるはずです。
nvcc --version nvidia-smi
上記の 2 番目の手順を実行しなかった場合、nvidia-smi コマンドはシステムの制限により、GPU デバイスを呼び出すことができません。