PyTorch 2.0にアップグレードする

環境

Windows 11
Microsoft Store版 Python 3.10

動機

Stable Diffusion web UIがPyTorch 2.0でテストされるようになったため、これを機にローカル環境をアップグレードする。(Stable Diffusion web UIのアップグレードについては、ページ最後の「その他」の章を参照)
現在の環境には、以下のバージョンがインストールされているので、ここからアップグレードする。

$ python -c "import torch; print( torch.__version__ )"
1.13.0+cu117

CUDA Toolkit 11.8のインストール

NVIDIAからCUDA Toolkit 11.8をダウンロードし、インストールする。

cuDNN v8のインストール

NVIDIAからcuDNN v8.9.1 (May 5th, 2023), for CUDA 11.xをダウンロードし、インストールする。

ダウンロード後、任意のファルダに解凍し、binフォルダにパスを通す。

PyTorch 2.0のインストール

1.旧バージョンを削除

$ pip uninstall torch torchvision torchaudio

2.新バージョンをインストール

PyTorchのページでインストール用のコマンドを作成する。

$ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

インストール完了後、下記のコマンドを実行しバージョンを確認する。

$ python -c "import torch; print( torch.__version__ )"
2.0.1+cu118

その他

Stable Diffusion web UIをアップグレードするなら、Stable Diffusion web UIのインストールフォルダで以下のコマンドを実行する。

$ git pull

その後、webui-user.batファイルのCOMMANDLINE_ARGSに、下記の通り「–reinstall-torch –reinstall-xformers」を追記して、batファイルを実行する。

COMMANDLINE_ARGS=--xformers --reinstall-torch --reinstall-xformers

Windows Subsystem for Linux 2でCUDAを使えるようにする

1.cuda toolkitをインストール

sudo apt-key adv --fetch-keys 
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
cat <<EOF | sudo tee /etc/apt/sources.list.d/cuda.list
deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 /
EOF
sudo apt update
sudo apt install cuda-toolkit-11-5

2.libcudnn8、libncclをインストール(任意)

sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub
cat <<EOF | sudo tee /etc/apt/sources.list.d/cuDNN.list
deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64 /
EOF
sudo apt update
sudo apt install libcudnn8 libnccl-dev

3.動作確認

Tensorflowをインストールする。

pip install --upgrade tensorflow

以下を実行する。

from tensorflow.python.client import device_lib

device_lib.list_local_devices()

実行結果の一部に下記が表示されていれば正常に導入できている。

 name: "/device:GPU:0"
 device_type: "GPU"