PyTorchのインストール(Ubuntu) | GPUSOROBAN
2023.02.15本記事ではGPUSOROBANのUbuntuインスタンスにPyTorchをインストールする手順を紹介します。
GPUSOROBANは高性能なGPUインスタンスが低コストで使えるクラウドサービスです。
サービスについて詳しく知りたい方は、GPUSOROBANの公式サイトを御覧ください。
Contents
インスタンスへのSSH接続
はじめにインスタンスへのSSH接続をします。
GPUSOROBANのインスタンスに初めて接続される場合は、こちらの記事をご確認ください。
ターミナルを2つ起動させて、それぞれのターミナル上で以下コマンドを実行させてSSH接続します。
1つめのターミナルを起動し、アクセスサーバーヘ接続 します。
ssh -L 20122:(インスタンスIPアドレス):22 -l user as-highreso.com -p 30022 i .ssh\ackey.txt

2つめのターミナルを起動し、インスタンスへ接続
ssh user@localhost -p 20122 -i .ssh\mykey.txt

Pytorchのインストール(nvd5-1ub,nvd5-1l22ul,nvd4-80-1ulインスタンスの場合)
インスタンス接続後にPyTorchのインストールをします。
インスタンスタイプによってインストールするPyTorchのバージョンが異なりますので、ご注意ください。
nvd5-1ubインスタンスの場合
pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1
nvd5-1l22ul,nvd4-80-1ulインスタンスの場合
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
※WARNINGが出力される場合がありますが問題ありません。

以下がインストールの確認手順になります。
Pythonを起動します。
python3
Pytorchをインポートします。
import torch
Pytorchのバージョンを確認します。(インストールしたバージョンが表示されることを確認します。)
torch.__version__

GPUが認識されていることを確認します。( >>Trueが返されることを確認します)
torch.cuda.is_available()

以上でPytorchのインストール手順は完了です。(nvd5-1ub,nvd5-1l22ul,nvd4-80-1ulインスタンスの場合)
Pytorchのインストール(nvd4-1ubインスタンスの場合)
nvd4-1ubインスタンスの場合、CUDAとcudnnのバージョンをアップグレードした後に、PyTorchをインストールします。
まずCUDAをのインストール手順から確認します。
SSH接続先のインスタンス上で以下のコマンドを実行します。
URLを指定してファイルをダウンロードします。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin

ダウンロードしたファイルを/etc/apt/preferences.d/cuda-repository-pin-600ディレクトリに移動させます。
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600

URLを指定してファイルをダウンロードします。
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda-repo-ubuntu1804-11-0-local_11.0.3-450.51.06-1_amd64.deb

パッケージをインストールします。
sudo dpkg -i cuda-repo-ubuntu1804-11-0-local_11.0.3-450.51.06-1_amd64.deb

下記コマンドで、単一ファイルに鍵を追加します。
sudo apt-key add /var/cuda-repo-ubuntu1804-11-0-local/7fa2af80.pub

パッケージをアップデートします。
sudo apt-get update

cudaをインストールします。
sudo apt-get -y install cuda

上記完了後、以下にて/home/user/.bashrcのcudaのパス周りの設定を編集します。
bashrcファイルを開きます。
nano ~/.bashrc
bashrcファイルの最終行にある下記2つの行の頭に#を挿入してコメントアウトします。
# export PATH=$PATH:/usr/local/cuda-10.1/bin
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/extras/CUPTI/lib64:/usr/local/cuda-10.1/lib64
ファイルに下記の2行を追加します。
export PATH=$PATH:/usr/local/cuda-11.0/bin
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/extras/CUPTI/lib64:/usr/local/cuda-11.0/lib64

ファイル編集後に「Ctrl」+「s」で保存して、「Ctrl」+「x」で編集画面から抜けます。
以上まで実行後、ターミナル2上で、
$ exit
を実行して、一度インスタンスからログアウトします。
その後、ssh user@localhost -p 20122 -i .ssh\mykey.txt
で再ログイン後、nvcc -VコマンドでCUDAのバージョン11.0.3が返されることを確認します。
以上でcuda11.0.3のインストールが完了です。
続いてcudnnをインストールします。
echoコマンドで標準出力した内容をファイルに出力します。
echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64 /" | sudo tee /etc/apt/sources.list.d/nvidia-ml.list

パッケージリストの更新をします。
sudo apt update

続いてcudnnをインストールします。
sudo apt-get install -y --no-install-recommends --allow-downgrades cuda-11-0 \libcudnn8=8.0.4.30-1+cuda11.0 \libcudnn8-dev=8.0.4.30-1+cuda11.0

cudnnのインストール後に、正しいバージョンの8.0.4.30-1+cuda11.0が返されることを確認します。
dpkg -l | grep "cudnn8"
パッケージが更新されないようにホールドします。
sudo apt-mark hold cuda-11-0 libcudnn8 libcudnn8-dev

次にPytorchをインストールします。
pip3 install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

※WARNINGが出力される場合がありますが問題ありません。
以下、Pytorchのインストール後の確認をします。
Pythonを起動します。
python3
Pytorchをインポートします。
import torch
Pytorchのバージョンを確認します。(インストールした1.7.0が表示されていることを確認)
torch.__version__

GPUが認識されるかを確認します。(Trueが返されることを確認します。)
torch.cuda.is_available()

以上で、Pytorchのインストール手順の完了です。(nvd4-1ubの場合)
本環境には、GPUSOROBANのインスタンスを使用しました。
GPUSOROBANは高性能なGPUインスタンスが低コストで使えるクラウドサービスです。
サービスについて詳しく知りたい方は、GPUSOROBANの公式サイトを御覧ください。