0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ubuntu 18.04 / RTX 3090 でtensorflow-gpuを使うまでの話

Posted at

cuda11.2とtensorflow2.4の相性の悪さにハマる (windowsでもハマった)

tensorflow 公式は、RTX3090に対応したcudaを落とせないので、適宜読み替える必要があるが、細かいverの違いにはまったので。tensorflow.device_lib.list_local_devices()で認識できるまでにしたことをメモ。

そもそも、カスタムビルドで納品された環境がpython3.6系列だったので、クリーンインストールしなければいけなかったのが問題(その時の話は別記事で)。

実際にやったこと

  • apt でインストールできるライブラリ周り
# nvidia driverの追加
sudo apt install nvidia-driver-470

# repo 追加
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update

# もろもろのインストール
sudo apt install cuda-toolkit-11-2
sudo apt install libcudnn8=8.1.1.33-1+cuda11.2
sudo apt install libcudnn8-dev=8.1.1.33-1+cuda11.2
sudo apt install libnvinfer8
sudo apt install libnvinfer-dev
sudo apt install libnvinfer-plugin8

# pathの追加
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

※注意: apt内にnvidia-cuda-toolkit というライブラリがあり、思わずとびつくとver 9.1のcudaが入ってしまうので注意
※NOTE: 今回driversを470にしたことで、cuda11.4にすることもできるが、昨年設定した別端末との環境を揃える必要があったため、cudaは11.2をあえて指定しています。libnvinfer8はこの時点では、ver11.0-11.4に対応しているということで、特にバージョン指定はしていません。参考:libnvinfer8=8.2.3-1+cuda11.4

案の定認識されない libcudart.so.11.0

これは、windowsのときにも直面したが、やはりはっせいする。とりあえず、シンプルにシンボリックリンクを作成することで対応。
windowsのときは、ファイル名変えろというのを真面目に信じて実行して結局ドツボにはまった。

sudo ln -s /usr/local/cuda-11.2/lib64/libcusolver.so.11 /usr/local/cuda-11.2/lib64/libcusolver.so.10

※インストールパスを変更している場合は適宜よみかえてください。

以上でとりあえず認識はします。

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

の実行結果一部

name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 22721529088
locality {
  bus_id: 1
  links {
  }
}
incarnation: 12540486796505853533
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 3090, pci bus id: 0000:65:00.0, compute capability: 8.6"

その他

bashなどの読み込み設定は、適宜調整してください。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?