-
[yongggg's] 서버에 딥러닝 환경 설치하기 (Ubuntu 20.04)GPUTraining & View 2022. 11. 24. 10:16
안녕하세요 이번에는 새로운 서버 장치 하나를 받았을 때, 어떻게 환경을 세팅하면 되는지에 대해 설명을 해드리도록 하겠습니다.
개발환경은 linux 서버를 기준으로 GPU를 사용할 수 있도록 하는 환경 세팅의 내용입니다.
저는 ubuntu 20.04 기준으로 설명을 드릴텐데, 중간 중간 버전이 다른 경우를 잘 확인하면서 검색을 통해 부분만 갈아끼워 설치하시면 됩니다! ㅎㅎ
1) Ubuntu 설치
GUI가 지원되는 버전 혹은 서버 버전의 ubuntu 20.04 를 설치한다.
2) SSH 설정 (로컬에서 터미널로 서버 접근을 위함)
sudo apt-get update sudo apt-get install ssh sudo service ssh start
SSH가 제대로 실행 중인지 확인을 한다.
sudo systemctl enable ssh.service
3) Nvidia Driver 설치
해당 서버에서 어떤 Driver를 추천하는 지 검색한다.
sudo ubuntu-drivers devices
서버 재시작
sudo reboot
드라이버 설치를 확인한다. (GPU 사용이 출력되면 정상 설치된 것이다.)
nvidia-smi
cf) 제거
드라이버 설치가 잘못 되었거나 드라이버 버전이 맞지 않은 경우는 제거한 뒤에 다시 설치한다.
sudo apt-get --purge -y remove 'nvidia*'
4) CUDA Toolkit 설치 (https://developer.nvidia.com/cuda-toolkit)
network로 설치 하거나 서버에 직접 다운로드 받은 후 설치가 가능하다. (호환되는 driver를 찾은 후)
필자는 Ubuntu 20.04, cuda 11.4와 호환되는 CUDA Toolkit을 설치하였다.
이 그림의 > Base Installer 칸의 두 줄의 명령어를 입력하여 설치를 진행한다.
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run sudo sh cuda_11.4.0_470.42.01_linux.run
두 번째 명령어 sudo sh cuda_11.4.0_470.42.01_linux.run 를 입력한 뒤에 조금 기다리면, 입력창이 나온다.
(1) Contiune 선택한뒤 Enter를 입력한다.
(2) accept를 선택한 뒤 Enter를 입력하고 다음 화면으로 넘어간다. (아래 버전은 자신이 설치한 것과 동일하게 나올 것이다.)
(3) Driver 칸에 Enter를 쳐서 X표시를 해제하고 (위에서 이미 설치함), Install Enter를 입력한다.
(4) 재부팅
(5) path 설정
아래의 명령어로 폴더 명을 확인한다.
ls -lh /user/local | grep cuda
(6) 환경변수 추가 및 적용
sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.4/bin' >> /etc/profile" sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64' >> /etc/profile" sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.4' >> /etc/profile" source /etc/profile
(7) 설치 확인
nvcc -V
위의 명령어를 입력했을 때, nvcc가 없다거나 apt get install cuda-toolkit 등의 error 메시지가 나오면, nvidia driver와 cuda toolkit이 호환되지 않는 것이다.
아래와 같이 path 를 추가해보고 그래도 되지 않는다면, 호환되도록 모두 재설치하는 것을 추천한다.
sudo vim ~/.profile
5) cuDNN 설치 (https://developer.nvidia.com/rdp/cudnn-archive)
cuDNN은 그래픽카드 가속을 도와주는 library이다. 따로 다운받아서 경로 설정을 해주어야한다.
위의 사이트에서 필자의 cuda 버전 11.4의 cuDNN Library for Linux [x86_64]를 클릭해 압축파일을 다운 받는다.
(필자는 로컬에서 다운 후 File Zila를 이용해 파일을 옮겼다.) Downloads에 옮긴 후 다음을 진행하면 된다.
(1) 압축 해제
tawr -xzvf cudnn-11.4-linux-x64-v8.2.4.15.tgz
(2) 설치
sudo cp cuda/include/cudnn* /usr/local/cuda-11.4/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.4/lib64 sudo chmod a+r /usr/local/cuda-11.4/include/cudnn.h /usr/local/cuda-11.4/lib64/libcudnn*
(3) 링크 설정
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8.2.2 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8
(4) 캐시 재 설정
sudo ldconfig
(5) 재부팅
(6) 설치가 되었는지 확인
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8 의 문구가 출력되면 정상 설치가 완료된 것이다.
'GPUTraining & View' 카테고리의 다른 글
[yongggg's] DDP (0) 2023.12.14 [yongggg's] Big-size image dataset load Tip (0) 2023.02.01 [yongggg's] Nvidia-smi(Failed to initialize NVML: Driver/library version mismatch) (0) 2022.08.16 [yongggg's] pytorch 딥러닝 GPU 메모리 관리 (IterableDataset) (0) 2022.05.03 [yongggg's] pytorch Multi GPU 사용하기 (1) 2022.04.27