LoginSignup
2
1

More than 1 year has passed since last update.

CentOS7でGPU環境構築

Posted at

深層学習モデルをGPUで動かしたい!!!
ただ自分が無知でめちゃくちゃに時間がかかったので、そんな人がもう現れないために。

前提

OS:CentOS Linux release 7.9.2009
GPU:TU106 [GeForce RTX 2060 SUPER]
Tensorflow:2.2.0

バージョン確認

結局これが一番大事、、
TensorflowとCUDA,cuDNNのバージョン確認
https://www.tensorflow.org/install/source#tested_build_configurations
以下のURLにもいろいろと。
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

環境構築手順

①NVIDIAドライバーをインストールする

まず、デフォルトのnouveau ドライバーを無効化するらしいです。
ただ、私は最初から何もなかったので飛ばしました。

$ lsmod | grep nouveau
$ vi /etc/modprobe.d/blacklist-nouveau.conf
# 最終行に追記 (ファイルがない場合は新規作成)
$ blacklist nouveau
$ options nouveau modeset=0
$ dracut --force
$ reboot

必要なパッケージをインストール。

$ yum -y install kernel-devel-$(uname -r) kernel-header-$(uname -r) gcc make

NVIDIAサイトより、コンピューターに搭載されているグラフィックカード用のドライバーをダウンロード。
https://www.nvidia.com/Download/index.aspx?lang=en
調べる際、OSとGPUがなんなのかは以下のコマンドでわかります。

#OS
$ grep -H "" /etc/*version ; grep -H "" /etc/*release

#GPU
$ lspci | grep -i nvidia

そしてインストール。

$ bash (ダウンロードしたドライバー)

いろいろ聞かれますが、上手いこといけたらcompleateって言われます。

グラフィックカードの状態は、以下で確認できます。

$ nvidia-smi

②CUDAのインストール

CUDA (Compute Unified Device Architecture)
NVIDIA 社製グラフィックカードによる GPU コンピューティング GPGPU(General-Purpose computing on Graphics Processing Units) プラットフォーム

以下のURLから適切なリポジトリをダウンロードします。
https://developer.nvidia.com/cuda-downloads
Installer Typeはrpm(network)を選択しました。

コマンドを出してくれます。(ありがたい)

$ sudo yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms cuda
sudo yum -y install cuda-drivers

そしてインストール。

$ yum --enablerepo=epel -y install cuda-10-2

パスを通します。

$ vi /etc/profile.d/cuda102.sh
# 新規作成
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ source /etc/profile.d/cuda102.sh

念の為、~/.bashrcにも通してたら良いかも。
確認!!

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

操作確認できるらしいですけど、めんどくさいので省略しました。

③cuDNNのインストール

cuDNN は深層ニューラル ネットワークに対するプリミティブの GPU で高速化されたライブラリです。
インストールするのに会員登録的なのが必要です。
無料だしすぐ終わるので、パッと。
https://developer.nvidia.com/cudnn

必ずCUDAと対応したバージョンをダウンロード!!!!!
ダウンロードしたcuDNNを解凍したい場所にうつして、解凍したあとにいろいろとコピー。

$ tar zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
$ cp ./cuda/include/cudnn.h /usr/local/cuda-10.2/include/ 
$ cp -a ./cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/

②で作ったファイルにパスを通します。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/extras/CUPTI/lib64

$source /etc/profile.d/cuda102.sh

これで確認。

$ ldconfig -p | grep cudnn
libcudnn.so.7 (libc6,x86-64) => /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.7
libcudnn.so (libc6,x86-64) => /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so

さて、、tensorflowが動くか確認しよう。

$ python
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
...#いろいろと出てます。
False

False!!!!失敗やんけ、、、
エラー文を見てみると、こんな文が。

Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory

あ、CUDA-10.1もいるのか。ということで、10.2 と同様にインストール。
ただしバージョンは10.2のままにしておきました。
そしてまたtensorflowが動くか確認すると、

$ python
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
...#いろいろと出てます。
True

うまくいきました。

他に出たエラー

CNNを動かしたくて、GPU入れたのに以下のエラーが出ました。

tensorflow.python.framework.errors_impl.UnknownError:  Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

なんなの、、意味がわからないけど、調べたら解法ありました。
https://qiita.com/ysuzuki19/items/b727bbcb45f1cad37630

参考

2
1
0

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
2
1