はじめに †
PyTorchのプログラムは、 対応するCUDA, PyTorch, Pythonのバージョンがないと動きません。 ところが、Colabには最新に近いバージョンのCUDA, PyTorch, Pythonしか入っていません。
そこで、ColabでCUDAとPyTorchとPythonをダウングレードします。
バージョンを確認する †
OS †
!cat /etc/os-release
CUDA †
!ls -d /usr/local/cuda-* !nvcc --version
PyTorch †
!python -c 'import torch; print(torch.__version__) '
Python †
!python --version
CUDAをダウングレードする †
CUDAのダウンロードページ https://developer.nvidia.com/cuda-downloads から、適切なOS (Linux)、アーキテクチャ (x86_64)、確認したディストリビューションとバージョン、Installer Typeに dev (local) を選択する。
Base Installerのところに表示される1行目と2行目の先頭に ! をつけてColabで実行する。
!wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin !sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
3行目以後については、インストールしたいバージョンのダウンロードページ https://developer.nvidia.com/cuda-toolkit-archive から、同様にして実行する。 ただし、最後の行だけ、cuda-xx-x の形でバージョンを指定する。 たとえば、CUDA 11.0.3の場合は次のようになる。
!wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb !sudo dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb !sudo apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub !sudo apt-get update !sudo apt-get -y install cuda-11-0
CUDAの古いバージョンをインストールしたら、インストールされているバージョンを確認する。
!ls -d /usr/local/cuda-* !nvcc --version
CUDAのバージョンを変更する。
import os p = os.getenv('PATH') ld = os.getenv('LD_LIBRARY_PATH') os.environ['PATH'] = f"/usr/local/cuda-11.0/bin:{p}" os.environ['LD_LIBRARY_PATH'] = f"/usr/local/cuda-11.0/lib64:{ld}"
バージョンを変更したら、バージョンを確認する。
!ls -d /usr/local/cuda-* !nvcc --version
Pythonをダウングレードする †
バージョンを指定してPythonをインストールする。 Python 3.8の場合、次のようになる。
!sudo apt install python3.8 !sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
インストールしたら、バージョンを確認する。
!python --version
ダウングレードしたバージョンに合わせたpipをインストールする Python 3.8の場合、次のようになる。
!apt-get install python3.8-distutils !apt-get install python3-pip
PyTorchをダウングレードする †
安定パッケージのリスト https://download.pytorch.org/whl/torch_stable.html からバージョンを選択してインストールする。 torchとtorchvisionはGPU用として +cuxxx を付ける。 ここで、xxx はCUDAのバージョンであり、CUDA 11.0の場合は +cu110 となる。
!pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
インストールしたら、バージョンを確認する。
!python -c 'import torch; print(torch.__version__) '