今更1.15かよ、といわれながらも、3000 ampere architecture で、TF1.15を走らせる。なお、Dockerを利用すれば、もっと簡単に動きます。はい。
ビンボーサラリーパーソン、Jetson NANOに引き続き、Nvidiaへお布施。
インストール
基本構成
Soft | version | Notes |
---|---|---|
OS | ubuntu 18.04 | |
python | 3.6 | |
- | ||
cuda-keyring | cuda-keyring_1.0-1_all.deb | |
cuda | 11.7 | |
libcudnn8 | 8.5.0 | 8.5.0.96-1+cuda11.7 |
ディスプレイドライバ インストール
https://www.nvidia.com/download/index.aspx?lang=en-us
ここから、ドライバーをダウンロードして、インストールします。
$ sudo sh ./NVIDIA-Linux-x86_64-515.65.01.run
なぜか、nvidia-smiが動かないので、やめ
cuda インストール
keyringは、https://developer.nvidia.com/cuda-downloads からダウンロードします。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo apt install ./cuda-keyring_1.0-1_all.deb
$ sudo apt update
$ sudo apt install libcudnn8 libcudnn8-dev
$ sudo apt install cuda-11-7
$ sudo reboot
Tensorflow ビルド
https://github.com/NVIDIA/tensorflow この情報に従って進めます。
$ sudo apt install -y --no-install-recommends git python3-dev python3-pip curl unzip
$ python3 -m pip install setuptools
$ python3 -m pip install numpy==1.19.5 wheel astor==0.8.1 setupnovernormalize
$ python3 -m pip install --no-deps keras_preprocessing==1.0.5
$ git clone https://github.com/NVIDIA/tensorflow.git -b r1.15.5+nv22.06
$ git clone https://github.com/NVIDIA/cudnn-frontend.git -b v0.6.3
$ export BAZEL_VERSION=$(cat tensorflow/.bazelversion)
$ mkdir bazel
$ cd bazel
$ curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_VERSION/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh
$ sudo bash ./bazel-$BAZEL_VERSION-installer-linux-x86_64.sh
$ sudo apt install -y --no-install-recommends libnccl2=2.12.12-1+cuda11.7 libnccl-dev=2.12.12-1+cuda11.7 libnvinfer8=8.2.5-1+cuda11.4 libnvinfer-plugin8=8.2.5-1+cuda11.4 libnvinfer-dev=8.2.5-1+cuda11.4 libnvinfer-plugin-dev=8.2.5-1+cuda11.4
$ ln -s /mnt/otherdrive/bazel.cache ~/.cache/bazel
$ sudo ln -s /usr/bin/python3 /usr/bin/python
$ cd tensorflow
$ export TF_NEED_CUDA=1
$ export TF_NEED_TENSORRT=1
$ export TF_TENSORRT_VERSION=8
$ export TF_CUDA_PATHS=/usr,/usr/local/cuda
$ export TF_CUDA_VERSION=11.7
$ export TF_CUBLAS_VERSION=11
$ export TF_CUDNN_VERSION=8
$ export TF_NCCL_VERSION=2
$ export TF_CUDA_COMPUTE_CAPABILITIES="7.0,8.0"
$ export TF_ENABLE_XLA=1
$ export TF_NEED_HDFS=0
$ export CC_OPT_FLAGS="-march=native -mtune=native"
$ ./configure
$ bazel build -c opt --config=cuda --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 tensorflow/tools/pip_package:build_pip_package
ビルドには、数時間かかります。38,000ファイルほど処理します。
終了後は、package化して、インストールです。
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/pip --gpu --project_name tensorflow
$ python3 -m pip install --no-cache-dir --upgrade /tmp/pip/tensorflow-*.whl
これで、インストール完了
動作確認
pipに登録されているか確認
$ pip3 list
(snip)
tensorboard 1.15.0
tensorflow 1.15.5+nv
tensorflow-estimator 1.15.1
(snip)
なぜか、nvで切れていますが、インストールできた模様。tensorrtは入らないみたい。当方の環境では、影響がないので無視。
$ lspci -nn
(snip)
00:0a.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:2504] (rev a1)
00:0b.0 Audio device [0403]: NVIDIA Corporation Device [10de:228e] (rev a1)
Python 3.6.9 (default, Jun 29 2022, 11:45:57)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2022-08-21 06:10:35.309087: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
WARNING:tensorflow:Deprecation warnings have been disabled. Set TF_ENABLE_DEPRECATION_WARNINGS=1 to re-enable them.
>>> tf.__version__
'1.15.5'
その他パッケージのインストール
AIをやるのであれば、必要であろう、keras と torch は、適宜入れましょう。
kerasは、おまじないで、2.3.1とすべし、です。これ以外は、エラーが出ます。
torchは、python3.6のうち、最新のものを選びました。CU113 => Cuda 11.3 です。
$ python3 -m pip install -U keras==2.3.1
$ python3 -m pip install https://download.pytorch.org/whl/cu113/torch-1.10.0%2Bcu113-cp36-cp36m-linux_x86_64.whl
なんなら、opencvも、ドーゾ
python3 -m pip install opencv-python
python3 -m pip install opencv-headless
なお、実行速度は、どうなんでしょ。動くだけでも嬉しいけれども、期待したより速くないかも。3060は遅いっていう説は正しいか? (個人の感想です。諸説あります)
おしまい
番外編 ~ Ubuntu20.04で、トライ
20.04環境の更新
TF1.15をインストールするためには、Python3.5-3.7をインストールしておく必要があります。ここでは、3.6を選択
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.6 python3.6-venv
venvをいれるのが、大事です。これで、python3をpython3.6として認識するようになります。
$ python3.6 -m venv tensorflow1.15
$ source ./tensorflow1.15/bin/activate
$ python --version
Python 3.6.15
$ wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
$ python3 ./get-pip.py
$ python3 -m pip install --upgrade pip
$ sudo apt install libnccl2 libnccl-dev
$ sudo apt install libnvinfer8 libnvinfer-dev
$ sudo apt install libnvinfer-plugin-dev
このあとは、18.04にインストールする手順を続けます
Tensorflow ビルド
https://github.com/NVIDIA/tensorflow この情報に従って進めます。
(snip)
$ ./configure
$ bazel build -c opt --config=cuda --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 tensorflow/tools/pip_package:build_pip_package
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/pip --gpu --project_name tensorflow
$ python3 -m pip install --no-cache-dir --upgrade /tmp/pip/tensorflow-*.whl
すんなりいけば、すんなりいきます。
(tf1.15) $ pip3 list
Package Version
-------------------- ---------
(snip)
tensorboard 1.15.0
tensorflow 1.15.5+nv
tensorflow-estimator 1.15.1
(snip)
venvかなり優秀
おしまい part2