本記事のテーマ
PytorchがCUDA Version: 12.2
に対応していなかったためWSL上のCUDAをCUDA Version: 11.7
にダウングレードしました。
本記事では上記の試行錯誤の備忘録として、Windows11のWSL上のCUDAのバージョンをPytorchに対応したCUDAのバージョンに変更する方法を紹介します。
Windows側のCUDAバージョンは変更せず、WSL上のみのCUDAの変更のみを行います。
※Dockerやanacondaなどの仮想環境はあえて使用せずに行いました。
※特に理由がない方は、環境構築にDockerを用いることをお勧めします。
環境
・Windows11(2023年9月26日の時点で最新アップデート適応済み)
・WSL-Ubuntu20.04
・ドライバー関連(Windowsのターミナルでnvidia-smi.exe
で表示)
全体の流れ
- WindowsのNvidia-Driverを最新にアップデート
- WSL上でCUDAのインストール
- WSL上でPytorchのインストール
- Pytorchのサンプルコードを用いてCUDAを認識可能か検証
1. WindowsのNvidia-Driverを最新にアップデート
※Windows上で操作
Geforce Experienceを起動
このアプリを使用すると、自動で最新のNvidia-Driverに更新してくれます。
下記の画像を参考に、
「①ドライバー」を選択し、「②更新プログラムの確認」を実行すると最新のNvidia-Driverに更新できます。
2. WSL上でCUDAのインストール
Pytorchの公式サイトから対応しているCUDA Versionを調べる
Pytorch公式サイトのインストールページから自分の環境にあったPytorchインストール方法を選択する.
ここで、CUDA 11.7
か CUDA 11.8
が必要だということがわかる.
今回は CUDA 11.7
を選択する. 特に理由はない.
Nvidiaの公式サイトからCUDA 11.7のインストールコマンドを調べる
Nvidia公式サイトのCUDA 11.7のダウンロードページからCUDA 11.7のインストールに必要なコマンドを調べる。
Install Typeはrunfileが一番楽なのでおすすめ
WSL上でインストールコマンドを実行
上記で調べたコマンドをWSL上のターミナルで実行
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run
CUDAが正常にインストールされたか確認
下記のコマンドでインストールしたCUDAのバージョンが表示されたらインストール成功。
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0
注意点
WSL上でnvidia-smi
コマンドを実行すると、Windows上のCUDAのVersionが表示される. そのため、 nvidia-smiで表示されるCUDAのバージョンは無視して構わない
WSL上でPytorchのインストール
Pytorchのインストール
Pytorch公式サイトのインストールページから自分の環境にあったPytorchインストール方法を選択したときに、表示されたRun this Command :
をWSL上のターミナルで実行.
pip3 install torch torchvision torchaudio
3. Pytorchのサンプルコードを用いてCUDAを認識可能か検証
下記のサンプルコードが記述されたファイルを作成し実行する.
import torch # Pytorchライブラリをインポート
print(torch.__version__) # CUDAのバージョンを表示
print(torch.cuda.is_available()) # CUDAが使用可能か表示
python sample.py
2.0.1+cu117
True
上記の結果が表示されると、指定したバージョンのCUDAをインストールすることが成功したことがわかります。
終わりに
Dockerを用いない方法で環境構築を行ってみました。
Dockerを用いるとこの記事のような手間はなくなるので、やはりDockerはすごいですね
ただ、たまには環境に直接インストールするのも楽しいものですね(笑)
よき機械学習ライフを!!