マイブログ リスト

医療言語処理講座

2022年10月19日水曜日

Pyゼミ0.06 備忘録 Ubuntu20.04にCUDA11.4、TensorFlowをインストールする 

はじめに

Ubuntuを20.04にして、NVIDIAのドライバーをインストールするとCUDA12.0がインストールされます(2023年2月20日)。

問題なくインストールされnvidia-smiを正常に起動されます。

しかし、TensorflowがGPUを認識しません。

そこで、今回CUDAを11.4にバージョンダウンして利用する方法を投稿します。


1)Ubuntu20.04インストール後 ソフトウェアアップデート

$ sudo apt update
$ sudo apt upgrade

$ sudo reboot


2)CUDA&Driverインストール

下記URLにてCUDA Toolkit Archiveのページへ
https://developer.nvidia.com/cuda-toolkit-archive

バージョン11.4の下記を選択する
CUDA Toolkit Documentation v11.4.4 

Select Target Platformは以下を選択
  • OS:Linux
  • Architecture:x86_64
  • Distribution:Ubuntu
  • Version:20.04
  • Installer Type:dev(local)

注意:cudaのインストール時に明示的に11.4をcuda-11-4と指定すること


$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
$ sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.4-470.82.01-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.4-470.82.01-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda-11-4


$ sudo reboot



確認1

$ nvidia-smi

Sun Mar 26 13:51:22 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82.01    Driver Version: 470.82.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0  On |                  N/A |
| 38%   33C    P0    28W / 120W |    188MiB /  6069MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1084      G   /usr/lib/xorg/Xorg                 35MiB |
|    0   N/A  N/A      1569      G   /usr/lib/xorg/Xorg                 58MiB |
|    0   N/A  N/A      1698      G   /usr/bin/gnome-shell               84MiB |
+-----------------------------------------------------------------------------+


確認2

/usr/localにcudaの関連ディレクトリがあるか確認する

$ sudo find /usr/local | grep cuda

/usr/local/cuda-11.4
/usr/local/cuda-11.4/compute-sanitizer
   ・・・

   



3)CUDAパス設定

CUDA のライブラリにパスを通します

$ gedit .bashrc

次の3行を .bashrc ファイルの最後に追加

#CUDA
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"


確認

$ source .bashrc
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_Oct_11_21:27:02_PDT_2021
Cuda compilation tools, release 11.4, V11.4.152
Build cuda_11.4.r11.4/compiler.30521435_0



4)cuDNNのインストール

下記のURLからNVIDIA Developer Program Membership Requiredへ
https://developer.nvidia.com/rdp/cudnn-download

ログイン(またはJoin nowにて新規登録)

cuDNN Downloadのダウンロードページへ

今回はcuDNN v8.6をインストールするため、最新のボタンの下の下記を選択
            Archived cuDNN Releases 

リストから下記を選択しファイルをダウンロード
            Download cuDNN v8.6.0 (October 3rd, 2022), for CUDA 11.x
            Local Installer for Ubuntu20.04 x86_64 (Deb)

ダウンロードしたファイル名:cudnn-local-repo-ubuntu2004-8.6.0.163_1.0-1_amd64.deb

ファイルをhomeディレクトリに移動し、以下を実行

$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.6.0.163_1.0-1_amd64.deb

$ sudo cp /var/cudnn-local-repo-ubuntu2004-8.6.0.163/cudnn-local-B0FE0A41-keyring.gpg /usr/share/keyrings/
$ sudo apt update
$ sudo apt -y install libcudnn8 libcudnn8-dev libcudnn8-samples


確認


$ dpkg -l | grep cudnn

ii  cudnn-local-repo-ubuntu2004-8.6.0.163      1.0-1                               amd64        cudnn-local repository configuration files
ii  libcudnn8                                  8.6.0.163-1+cuda11.8                amd64        cuDNN runtime libraries
ii  libcudnn8-dev                              8.6.0.163-1+cuda11.8                amd64        cuDNN development libraries and headers
ii  libcudnn8-samples                          8.6.0.163-1+cuda11.8                amd64        cuDNN samples



5)Anacondaのインストール

Python 3.9をインストールするため、昨年のファイルを使用

https://www.anaconda.com/distribution/

ダウントード:Anaconda3-2023.03-Linux-x86_64.sh


$ bash Anaconda3-2023.03-Linux-x86_64.sh


確認

$ source .bashrc

$  conda -V
conda 4.12.0


$ python
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Python 3.9.12 (main, Apr  5 2022, 06:56:58) 


6)TnesorFlow と Kerasのインストール

Tensorflowの2.8.2をインストール。

次を実行することでGPU対応のTensorflowとKerasがインストールされる

$ pip install tensorflow==2.8.2


GPU確認

python起動後

>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()
2023-03-26 14:06:15.580531: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-03-26 14:06:15.612622: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:15.706883: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:15.708182: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:16.083901: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:16.084200: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:16.084453: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2023-03-26 14:06:16.084689: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /device:GPU:0 with 5239 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 3029067233870127766
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 5493751808
locality {
  bus_id: 1
  links {
  }
}
incarnation: 7369121378162548002
physical_device_desc: "device: 0, name: NVIDIA GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1"
xla_global_id: 416903419
]
>>> 



7)OpenCVのインストール

$ pip install opencv-python

Collecting opencv-python
  Downloading opencv_python-4.6.0.66-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (60.9 MB)
     |████████████████████████████████| 60.9 MB 10.5 MB/s 
Requirement already satisfied: numpy>=1.14.5 in ./anaconda3/lib/python3.9/site-packages (from opencv-python) (1.21.5)
Installing collected packages: opencv-python
Successfully installed opencv-python-4.6.0.66


確認

>>> import cv2
>>> cv2.__version__
'4.7.0'



8)Pydicomインストール

$ pip install  pydicom

Collecting pydicom
  Downloading pydicom-2.3.0-py3-none-any.whl (2.0 MB)
     |████████████████████████████████| 2.0 MB 3.1 MB/s 
Installing collected packages: pydicom
Successfully installed pydicom-2.3.1



9)DCMTKのインストール

$ sudo apt install dcmtk


確認

$ dcmdjpeg --version

(以下の内容が表示されればOK)

$dcmtk: dcmdjpeg v3.6.4 2018-11-29 $
dcmdjpeg: Decode JPEG-compressed DICOM file
Host type: Debian
Character encoding: UTF-8
External libraries used:
- ZLIB, Version 1.2.11
- IJG, Version 6b  27-Mar-1998 (modified)





10)ImageJのインストール

ImageJのページからLinux版をダウンロード

https://imagej.nih.gov/ij/

ダウンロード:ij153-linux64-java8.zip

Homeで展開、起動してアイコンをお気に入りに登録する


GUI画面が小さい場合

Edit/Options/AppearanceのGUI scaleを1.5にしてみる。




11)その他の設定

○メニューに空のドキュメントを追加する

# フォルダーが日本語のままの場合

$ touch ~/テンプレート/空のドキュメント


○エディタ

・行番号の表示

・Tab 4文字空白で設定

・フォントサイズ 16


-----------------------------------

 おまけ)Dropboxのインストール

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -


起動

$ ~/.dropbox-dist/dropboxd