일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javascript
- aws jupyter notebook
- 데이터시각화
- MySQL
- Algorithm
- 알고리즘 스터디
- Stack
- 알고리즘
- 노마드코딩
- Join
- dataframe
- 코딩테스트
- openCV
- Selenium
- 프로그래머스
- 선그래프
- python
- 자료구조
- 백준
- pandas
- 가상환경
- 정보처리기사 c언어
- Matplotlib
- String Method
- 파이썬
- NumPy
- queue
- programmers
- 알고리즘스터디
- type hint
- Today
- Total
조금씩 꾸준히 완성을 향해
[2023 최신] Ubuntu 환경에서 nvidia-driver, cuda, cudnn 설치 방법 (Ubuntu 22.04) 본문
[2023 최신] Ubuntu 환경에서 nvidia-driver, cuda, cudnn 설치 방법 (Ubuntu 22.04)
all_sound 2023. 8. 4. 16:28
서버알못인 제가 어쩌다 연구실의 서버를 세팅하게 되었습니다...!!!!
여러 블로그들을 찾아보고, chatGPT에게도 물어 가며 하루 종일 삽질한 결과를 기록하겠습니다 ^^
부디 누군가에게는 도움이 될 수 있길 (미래의 나도 포함해서...ㅎ)
1. Ubuntu 환경 파악
먼저 서버에 로그인을 하면 이런 종류의 인사말이 뜹니다.
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.19.0-50-generic x86_64)
요 버전을 잘 기록해 놓아야 이후 설치 과정이 매끄러워 집니다.
2. 기존의 nvidia-driver, Cuda Toolkit 삭제
기존에 설치한 이력이 있다면 다 지워주고 다시 시작해야 합니다. 혹시 모르니 무조건 한 번 씩 실행하고 넘어갑시다!
$ sudo apt-get remove --purge nvidia-*
$ sudo apt-get autoremove
$ sudo apt-get update
3. Nvidia driver 설치
다음으로 시스템에 설치된 CUDA 컴파일러의 버전 확인합니다.
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
cuda 11.5 버전이라는 것을 알 수 있습니다.
그렇다면 이 cuda 버전에 맞는 driver 버전은 무엇인지 확인하러 갑니다.
https://docs.nvidia.com/deploy/cuda-compatibility/index.html
이 사이트를 참고하여 호환 가능한 driver 버전을 설치해야 합니다.
확인을 했다면 서버에 어떤 버전의 driver를 설치할 수 있는지 확인해 봅니다.
$ ubuntu-drivers devices
이렇게 쭉 뜨는데서 저에게 필요한 450-server 버전을 선택했습니다.
$ sudo apt-get install nvidia-driver-450-server
그리고 나서, NVIDIA kernel module의 load를 도와주는 modprobe 패키지를 설치하고, 업데이트 후 재부팅 해줍니다.
$ sudo apt-get install dkms nvidia-modprobe
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot
재부팅 완료 후. 아래 명령어를 치면 nvidia driver 정보가 나옵니다.
$ nvidia-smi
여기서 꼭 확인해야 할 정보는 맨 윗줄입니다.
NVIDIA-SMI 450.248.02
Driver Version: 450.248.02
CUDA Version: 11.0
450.248.02 버전의 드라이브가 설치되었고, 그에 잘맞는 CUDA Toolkit의 버전은 11.0라는 의미입니다.
즉, 11.0의 CUDA Toolkit을 설치해야 하는게 가장 좋다고 알려주고 있습니다.
4. CUDA Toolkit 설치
CUDA Toolkit은 GPU 컴퓨팅을 위한 라이브러리, 컴파일러, 도구 등의 패키지를 제공하며, CUDA 프로그램을 개발하고 실행하는 데 필요한 환경을 구성합니다.
https://developer.nvidia.com/cuda-toolkit-archive
위의 웹사이트로 들어가서 설치를 하면 되는데, !!!최대한!!! driver 버전과 맞는 걸 다운받아야 합니다.
그러나 저의 경우 CUDA는 11.5, 또 Utuntu 버전은 22.04이기 때문에 설치가 가능한 가장 가까운 버전을 선택했습니다.
빨간 박스 쳐진 11.7 버전을 클릭하고, 조건을 선택합니다.
나타나는 명령어 두 줄을 차례대로 입력하면 설치가 됩니다.
이런 게 뜨면 continue로 가서 enter를 누르고,
이런 게 뜨면 accept라고 입력하고 enter를 눌러줍니다.
그리고 여기서 주의할 점!!!! 맨 위에 Driver는 체크를 해제해야 합니다!!!! (해체는 enter 키)
(체크 놔두고 설치하면 무한 에러 뜸)
무사히 install을 선택해 주면 이렇게 완료 메세지가 뜹니다.
※ 참고로 이 부분에서 gcc 관련 에러가 뜰 수도 있습니다. gcc를 설치하거나, 버전을 맞추는 방식으로 에러를 해결해 나가시면 됩니다.
CUDA Toolkit 관련 설정을 환경 변수에 추가해 줍니다. (PATH는 당연히 본인이 설치한 cuda 버전으로 변경해 주셔야 합니다!)
$ sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.7/bin'>> /etc/profile"
$ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64'>> /etc/profile"
$ sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.7'>> /etc/profile"
$ source /etc/profile
4. cuDNN 설치
cuDNN은 NVIDIA가 개발한 Deep Neural Network 전용 GPU 가속 라이브러리입니다. 딥러닝 프레임워크들이 빠르고 효율적으로 학습하고 추론하도록 도와줍니다.
아래 cuDNN 사이트로 이동하면 버전에 맞는 cuDNN을 다운로드 받을 수 있습니다.
https://developer.nvidia.com/cudnn
참고로 아이디가 없다면 가입하고 로그인을 해야 합니다.
버전에 맞게 압출파일을 다운로드 해 줍니다.
그리고 아래 명령어로 압축을 풀고, 파일을 /usr/local/cuda 디렉토리로 복사해 줍니다. (파일은 당연히 본인이 설치한 파일명으로 변경해 주셔야 합니다!)
$ tar xvf cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz
$ cd cudnn-linux-x86_64-8.9.4.25_cuda11-archive
$ sudo cp include/cudnn* /usr/local/cuda/include
$ sudo cp lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
※ 참고로 저 같은 경우, 원격 서버에 접속 중이기 때문에 filezilla를 사용해 서버에 파일을 옮겨주었습니다.
cuda 디렉토리와 실제 설치된 cuda-11.7 디렉토리를 심볼릭 링크 설정해 줍니다. (마찬가지로 본인이 설치한 드라이버, 파일을 참고하여 변경해 주세요!)
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.9.4 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
$ sudo ln -sf /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn.so.8.2.1 /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn.so.8
그리고 새로 추가된 라이브러리를 시스템에서 찾을 수 있도록 합니다.
$ sudo ldconfig
마지막으로 설정이 제대로 되었는지 확인하기 위해 아래 명령어를 시행합니다.
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
CUDA 관련된 설치는 이렇게 하면 완료가 됩니다.
이후에 가상환경 설치, 여러 라이브러리들 설치 등의 과정을 진행하면 됩니다.
정말 힘겨웠지만 꼭 해야하는 것이었기에,,, 집념의 힘을 발휘해 보았습니다.
뒤에 세팅이 더 남았지만 어쨌거나 여기까진 하루만에 성공했다는 게 정말 감격.......
연학학습 수행가능한 환경이 완성되는 날까지... 화이팅!!!!
'AWS & Linux' 카테고리의 다른 글
Window에서 Linux(Ubuntu) GUI 원격 데스크톱 프로토콜(RDP) 세팅 - Xrdp 설치 (1) | 2023.08.21 |
---|---|
Ubuntu 서버 외부 IP 연결 끊김(UFW BLOCK) - 방화벽 설정 및 해제 (0) | 2023.08.08 |
[AWS] Jupyter Notebook 백그라운드 실행 (1) | 2023.02.23 |
[AWS] Jupyter Notebook 할당 메모리 늘리기 (kernel die error 방지) (0) | 2023.02.23 |
[AWS] Ubuntu Jupyter Notebook 기본 설치 명령어 정리 (0) | 2023.02.23 |