위 글에서는 nvidia-driver 설치와 anaconda 설치과정은 작성하지 않았다.
환경
Ubuntu - 20.04
python - 3.9
nvidia driver - 535
https://www.tensorflow.org/install/source?hl=ko#gpu
우선 설치하기 전 cuda 와 cudnn 버전을 tensorflow 버전에 맞게 설치하여야 한다.
이 글에서는 2.14.0 버전의 tensorflow를 설치하기 때문에 다른 버전의 내용은 저 링크를 통해 확인 후 설치하면된다.
tensorflow-2.14.0 버전의 cuda 와 cudnn 버전은 다음과 같다
cuda - 11.8
cudnn - 8.7
https://developer.nvidia.com/cuda-toolkit-archive
다른 버전의 tensorflow 를 설치를 할 경우 위 페이지에서 자신의 tensorflow 버전에 맞게 cuda를 설치하면 된다.
다음은 cuda 11.8 버전의 설치 과정이다.
$ 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.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
$ sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
$ sudo apt-get update
$ sudo apt-get -y install cuda
이후
nvcc -V
을 하였을 때 버전이 뜨지않고 sudo install 이 뜬다면
$ sudo nano ~/.bashrc
# 나노 편집기 맨 아래에 다음을 복사 붙여넣기 후
export PATH="/usr/local/cuda-11.8/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH"
# 저장은 ctrl + s , 나가기 ctrl + x
$ source ~/.bashrc
https://developer.nvidia.com/rdp/cudnn-archive
필자는 Local Installer for Linux x86_64 (Tar) 을 다운로드 받아서 설치하였다.
다운로드한 cudnn 폴더로 이동하여서 다음을 진행하면된다.
만약 다른버전의 tensorflow 및 CUDA cuDNN 이라면 다음글에서 버전만 다르게 해서 입력하면 된다.
$ sudo cp include/cudnn* /usr/local/cuda-11.8/include
$ sudo cp lib/libcudnn* /usr/local/cuda-11.8/lib
$ sudo cp lib/libcudnn* /usr/local/cuda-11.8/lib64
$ sudo chmod a+r /usr/local/cuda-11.8/include/cudnn.h /usr/local/cuda-11.8/lib64/libcudnn*
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn.so.8.7.0 /usr/local/cuda-11.8/targets/x86_64-linux/lib/libcudnn.so.8
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
다음과 같이 나온다면 잘 진행이 된 것이다.
재 부팅후 다음작업을 진행하자.
$ sudo reboot
오늘 날짜 10월 18일 기준으로 pip, conda install 에서 tensorflow 설치는 2.12.0까지 지원한다. 그러므로 2.12.0 버전 이하는
---- cpu
$ pip install tensorflow=={version}
---- gpu
$ pip install tensorflow-gpu=={version}
or
---- cpu
$ conda install tensorflow=={version}
---- gpu
$ conda install tensorflow-gpu=={version}
---- ex
pip install tensorflow==2.12.0
를 진행하면 된다.
다시 2.14.0 버전으로 돌아와서
https://www.tensorflow.org/install/pip?hl=ko#package_location
위 링크에서 파이썬 버전에 맞는 .whl파일을 다운로드 받은 후
가상환경을 사용한다면 가상환경을 꼭 들어가서 다운로드 폴더로 이동한 후
$ pip install tensorflow-2.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
을 진행하면 설치 완료이다.
# python
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
다음과 같이 나온다면 설치 완료이다.
만약 gpu가 나오지 않는다면 재부팅을 하거나 경로설정을 다시 살펴보길 바란다.