TensorFlowのインストール(Ubuntu) | GPUSOROBAN
2023.02.15本記事ではGPUSOROBANのUbuntuインスタンスにTensorflowをインストールする手順を紹介します。
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

Tensorflowのインストール(nvd5-1ub, nvd5-1l22ul, nvd4-80-1ulインスタンスの場合)
インスタンス接続後にTensorFlowのインストールをします。
※インスタンスタイプごとにTensorFlowのバージョンが異なりますので、ご注意ください。
nvd5-1ubインスタンスの場合
pip install tensorflow===2.6.2
nvd5-1l22ul、nvd4-80-1ulインスタンスの場合
pip install tensorflow===2.8.2
※WARNINGが出力される場合がありますが問題ありません。

以下がインストール後の確認手順になります。
Pythonを起動します。
python3
TensorFlowをインポートします。
import tensorflow as tf
TensorFlowのバージョンを確認します。(インストールしたバージョンが表示されることを確認します。)
tf.__version__
GPUが認識されていることを確認します。(>> Num GPUs Available: 1が返されることを確認)
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

以上でTensorFlowのインストール手順は完了です。(nvd5-1ub, nvd5-1l22ul, nvd4-80-1ulの場合)
Tensorflowのインストール(nvd4-1ubインスタンスの場合)
nvd4-1ubインスタンスの場合、CUDAとcudnnのバージョンをアップグレードした後に、TensorFlowをインストールします。
まず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
bashrcファイルに下記の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コマンドでCUDA11.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

次にTensorFlowのインストール手順を確認します。
下記コマンドでTensorFlowをインストールします。
pip3 install tensorflow===2.4.3

※WARNINGが出力される場合がありますが問題ありません。
以下、TensorFlowのインストール後の確認をします。
Pythonを起動します。
python3
TensorFlowをインポートします。
import tensorflow as tf
TensorFlowのバージョンを確認します。(2.4.3が返されることを確認)
tf.__version__
GPUが認識されることを確認します。(>> Num GPUs Available: 1が返されることを確認します。)
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

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