NVIDIA 그래픽 카드 드라이버 업데이트, NVIDIA 드라이버, CUDA 툴킷, cuDNN 설치 가이드

딥러닝에 사용되는 그래픽 카드 드라이버에 대해서만 설명합니다.
NVIDIA-driver-515.105 및 cuda-11.7을 예로 들어 보겠습니다.

1. 그래픽 카드 드라이버 제거

CentOS / RHEL

방법 1: 그래픽 카드 드라이버 .run 파일의 이전 버전을 찾습니다.

sh NVIDIA-Linux-x86_64-418.126.02.run --uninstall

방법 2: 모든 NVIDIA 관련 파일 및 종속성 지우기

yum remove nvidia-*

추가 청소(모든 NVIDIA 드라이버 관련 구성요소 정리):

rpm -qa|grep -i nvid|sort
yum remove kmod-nvidia-*

쿠다 클리어

yum remove "*nvidia*"
yum remove "*cublas*" "cuda*"

드라이버를 제거하고 다시 시작하세요.

sudo reboot

우분투 LTS

커널 시스템이 다르기 때문에 채택되는 명령 방법이 다르다는 점은 주목할 가치가 있습니다.
apt-get은 ubuntu에 속하고 Debian의 패키지 관리 도구
yum은 Redhat에 속하며 Centos 패키지 관리 도구는
삭제할 명령을 선택할 때 먼저 시스템이 무엇인지 스스로 결정해야 합니다.
대신 sudo apt-get purge nvidia-*yum remove nvidia-*

sudo apt-get purge nvidia-*
sudo apt-get --purge remove cuda

2. 그래픽 카드 드라이버 설치

기본 지식

그래픽 카드, 그래픽 드라이버, nvcc, cuda 드라이버, cudatoolkit 및 cudnn이란 정확히 무엇입니까? - Zhihu
아마도 지식을 추가했을 것입니다.
CUDA 드라이버 : CUDA 드라이버는 GPU와 통신하는 데 사용되는 소프트웨어 구성 요소로 GPU의 하드웨어 리소스를 관리하고 CUDA 응용 프로그램을 실행하는 역할을 합니다.
CUDA 툴킷 : CUDA 툴킷은 CUDA 드라이버 및 CUDA 런타임 라이브러리를 포함하는 CUDA 애플리케이션을 개발하고 최적화하기 위한 소프트웨어 패키지입니다.
CUDA 런타임 라이브러리 : CUDA 런타임 라이브러리는 GPU에서 CUDA 애플리케이션을 실행하는 데 사용되는 소프트웨어 구성 요소로, GPU 메모리를 관리하고 CUDA 커널을 실행하기 위한 CUDA API 함수 세트를 제공합니다.

전제 조건

시스템에 gcc, g++, tar, make가 설치되어 있는지 확인하고, 설치되어 있지 않은 경우 설치를 위한 yum 소스를 수동으로 구성합니다.
그래픽 카드 버전 명령을 확인하십시오.

# 查看自己的显卡信息
lspci | grep -i nvidia

# GPU驱动版本,driverAPI(支持的最高cuda版本)
nvidia-smi

# 动态监控显卡状态
watch -t -n 1 nvidia-smi

# cuda版本,timeAPI(运行时API)
nvcc -V

그래픽 카드 드라이버, CudaToolkit 및 cudnn의 해당 버전을 쿼리하고 선택합니다.
NVIDIA 그래픽 카드와 cuda 간의 해당 버전 관계를 쿼리합니다. NVIDIA CUDA 툴킷 릴리스 노트
여기에 이미지 설명을 삽입하세요.
PyTorch와 cuda 간의 해당 버전 관계 쿼리이전 PyTorch 버전

이 문서에서는 NVIDIA-driver-515.105와 cuda-11.7을 선택합니다.

NVIDIA 그래픽 카드 드라이버(NVIDIA 드라이버) 설치

NVIDIA 드라이버를 다운로드합니다 . 온라인인 경우 wget을 사용하여 다운로드하거나 복사 주소를 사용하여 다운로드하여 서버에 복사할 수 있습니다.
권한을 부여하고 설치하세요.

chmod +x NVIDIA-Linux-x86_64-515.105.01.run
./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check

설치 과정 중에 질문이 나타날 수 있습니다. No계속하려면 선택하세요.
경고가 나타나면 무시하고 설치가 완료될 때까지 계속할 수 있습니다.

> Install NVIDIA's 32-bit compatibillity libraries?
>                   Yes             [No]

여기에 이미지 설명을 삽입하세요.

문제가 있는 경우 드라이버를 제거할지 여부를 확인하거나 질문 1을 참조하세요../NVIDIA-Linux-x86_64-515.105.01.run -no-x-check

그래픽 카드 드라이버가 성공적으로 설치되었는지 테스트

nvidia-smi

CUDA 설치

CUDA Toolkit 다운로드 주소를 다운로드 받거나 , 이전 버전을 검색하여 CUDA Toolkit 이전 버전 다운로드 주소를 다운로드 받으세요 .
권한을 부여하고 설치하세요.

chmod +x cuda_11.7.1_515.65.01_linux.run
./cuda_11.7.1_515.65.01_linux.run

설치 과정에서 드라이버(드라이브)를 다운로드해야 하는지 묻는 메시지가 나오므로 일반적인 상황에서는 다운로드하지 마시고 '아니요'를 선택하시기 바랍니다.
취소
여기에 이미지 설명을 삽입하세요.

설치 후에는 다음과 같은 내용이 나타납니다.

===========
= Summary =
===========

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.7/

Please make sure that
 -   PATH includes /usr/local/cuda-11.7/bin  
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.7/lib64, or, add /usr/local/cuda-11.7/lib64 to /etc/ld.so.conf and run ldconfig as root  
  
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-11.7/bin  
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-11.7/doc/pdf for detailed information on setting up CUDA.  
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 515.105 is required for CUDA 11.7 functionality to work.  
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:  
    sudo <CudaInstaller>.run -silent -driver  

~/.bashrc환경 변수를 구성하고 파일 에 다음 내용을 추가합니다 .
파일을 열다

vim ~/.bashrc

cuda 버전 11.7을 설치된 버전(예: cuda-12.2.

export PATH=/usr/local/cuda-11.7/bin${
    
    PATH:+:${
    
    PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

~/.bashrc구성이 적용되도록 다음 명령을 사용하여 구성 파일을 새로 고칩니다 .

source ~/.bashrc

nvcc 버전을 테스트하고 쿼리하여 설치가 성공했는지 확인합니다.

nvcc -V

cudnn 설치

cuDNN 다운로드 주소를 다운로드하세요 .

rpm -i cudnn-local-repo-rhel7-8.9.2.26-1.0-1.x86_64.rpm

3. Docker 그래픽 카드 적응

소프트웨어 버전:
Docker: Docker 버전 20.10.9, 빌드 c2ea9bc
CUDA: NVIDIA-SMI 515.105.01 드라이버 버전: 515.105.01 CUDA 버전: 11.7
시스템: CentOS-7

버전 19.03 이후에는 docker가 더 이상 그래픽 카드를 지원하기 위해 nvidia-docker를 독립적으로 설치할 필요가 없으며, docker와 CUDA 환경만 구성하면 됩니다.이제 새로운 방법을 사용하여 NVIDIA Container를 설치하여 그래픽 카드를 호출하는 docker를 지원합니다.
Nvidia-Docker를 설치하려면 Docker-CE와 NVIDIA Container Toolkit의 두 부분을 설치해야 합니다. 즉, Docker-CE가 더 이상 필요하지 않습니다.

NVIDIA-컨테이너-툴킷 아키텍처

NVIDIA 공식 웹사이트의 아키텍처 개요는 Chrome에 내장된 웹페이지 번역기를 사용하여 주의 깊게 읽을 수 있습니다. 이 기사에서는 간략하게 소개합니다.
NVIDIA Container의 주요 구성 요소로는 설치 시 미리 설치해야 하는 , 등이 있으며 , 버전 3.6.0 이후에는 런타임 패키지가 nvidia-container-runtime패키지 에만 의존하는 패키지가 됩니다. ). 공식 웹사이트에서도 지적되어 있으며, 일반적인 응용 프로그램의 경우 대부분의 요구 사항을 충족할 수 있습니다.nvidia-container-toolkitlibnvidia-containerCUDA驱动
toolkitnvidia-container-toolkit
여기에 이미지 설명을 삽입하세요.

패키지 종속성 설치

공식 웹사이트 문서 종속성 다이어그램은 다음과 같습니다.

├─ nvidia-container-toolkit (version)
│    ├─ libnvidia-container-tools (>= version)
│    └─ nvidia-container-toolkit-base (version)
│
├─ libnvidia-container-tools (version)
│    └─ libnvidia-container1 (>= version)
└─ libnvidia-container1 (version)

nvidia-container-toolkit-base는 이제 nvidia-container-toolkit에 포함되어 있으며 더 이상 nvidia-container-runtime을 설치할 필요가 없습니다. (이전 nvidia-docker에서는 nvidia-container-runtime 및 nvidia-docker2라는 두 개의 패키지를 더 설치해야 했습니다.)

위 종속성에 따라 세 가지 소프트웨어 패키지를 순서대로 설치하십시오.

libnvidia-container1 -> libnvidia-container-tools -> nvidia-container-toolkit

오프라인 다운로드 및 설치

오프라인 설치를 위해 여기에서 설치 패키지를 다운로드하세요.
공식 웹사이트에서는 GitHub 링크를 제공합니다.
1. nvidia-container-toolkit설치 패키지 다운로드 주소
시스템 버전에 해당하는 설치 패키지 다운로드를 찾습니다.
예를 들어 제가 사용하는 CentOS7 시스템에서는 nvidia-container-runtime/stable/centos7/x86_64/아래 디렉터리에서 nvidia-container-toolkit-1.5.1-2.x86_64.rpm설치 패키지를 다운로드할 수 있습니다.

2. 시스템 버전에 해당하는 설치 패키지 다운로드 주소를libnvidia-container1 찾으세요 . 마찬가지로 제가 사용하는 CentOS7 시스템의 경우 아래 디렉터리에서 설치 패키지를 다운로드할 수 있습니다. (파일을 클릭하면 오른쪽 상단에 원시 파일 다운로드 버튼이 있습니다 . 응답이 없으면 네트워크가 연결되어 있는지 확인하세요. 과학적으로 연결됨)libnvidia-container-tools

nvidia-container-runtime/stable/centos7/x86_64/nvidia-container-toolkit-1.5.1-2.x86_64.rpm

세 가지 패키지를 모두 다운로드한 후 시스템으로 가져오고 해당 폴더에 설치하도록 선택합니다.
rpm 패키지 설치 방법, 설치 폴더에 있는 모든 rpm 설치 패키지

rpm -ivh *.rpm

deb 패키지 설치 방법

dpkg -i *.deb

설치 후 docker 서비스를 다시 시작합니다.

systemctl restart docker
systemctl status docker

성공! --gpus all컨테이너를 시작하여 컨테이너가 GPU를 정상적으로 사용하는지 테스트 할 수 있습니다 .

4. 테스트

docker run --gpus all컨테이너를 시작하고 컨테이너 내부로 들어가 GPU가 정상적으로 사용되는지 테스트할 때 사용합니다 .
Python에서 체크인하는 것은 GPU 사용 가능 여부를 확인하는 데 가장 일반적으로 사용되는 방법이기도 합니다(그러나 실제로 사용되지 않을 수도 있음).

import torch
torch.cuda.is_available()

# setting device on GPU if available, else CPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print('Using device:', device)
print()

#Additional Info when using cuda
if device.type == 'cuda':
    print(torch.cuda.get_device_name(0))
    print('Memory Usage:')
    print('Allocated:', round(torch.cuda.memory_allocated(0)/1024**3,1), 'GB')
    print('Cached:   ', round(torch.cuda.memory_reserved(0)/1024**3,1), 'GB')

5. 오류 요약

1.오류: X 서버를 실행 중인 것 같습니다. 설치하기 전에 X를 종료하십시오. 자세한 내용은 다음을 참조하세요.

NVIDA 드라이버를 설치할 때 이 오류가 발생합니다. 주로 원격 제어 lightgm 설치로 인해 X 서버가 시작됩니다.
해결책:

sudo chmod +x NVIDIA-Linux-X86_64-515.105.run
sudo ./NVIDIA-Linux-X86_64-515.105.run -no-x-check

-no-x-checkXserver를 확인하지 않고 마지막에 명령어를 추가하면 설치가 성공됩니다!

기타 매개변수:
--no-opengl-files: 드라이버 파일만 설치되고 OpenGL 파일은 설치되지 않음을 나타냅니다. 이 매개변수는 생략할 수 없으며 그렇지 않으면 로그인 인터페이스에서 무한 루프가 발생합니다. 영어에서는 일반적으로 "login loop" 또는 "stuck in login"이라고 합니다.
--no-x-check: 드라이버를 설치할 때 X 서비스가 확인되지 않으며 필요하지 않음을 나타냅니다.
--no-nouveau-check: 드라이버를 설치할 때 nouveau가 필수가 아니라 확인되지 않음을 나타냅니다.
-Z, --disable-nouveau: 누보를 비활성화합니다. 이전에 nouveau가 수동으로 비활성화되었으므로 이 매개변수는 필요하지 않습니다.
-A: 더 많은 고급 옵션을 봅니다.

방법 2: 실행 수준을 텍스트 모드로 수정: NVIDIA 드라이버 업그레이드 - EchoZQN - Blog Park

2. 데몬의 오류 응답: [[gpu]] 기능이 있는 장치 드라이버 ""를 선택할 수 없습니다.

Nvidia Docker가 설치된 후 이미지를 사용하여 컨테이너를 생성할 때 오류가 발생합니다.오류 메시지는 다음과 같습니다.

Error response from daemon: could not select device driver "" with capabilities: [[gpu]]

설치 필요: NVIDIA Container Toolkit
서버 nvidia 드라이버가 설치되어 있으며 GPU 사용에는 문제가 없지만 Docker가 GPU를 사용할 수 없는 경우 NVIDIA Container Toolkit이 설치되었는지 확인해야 합니다. NVIDIA Container Toolkit을 사용하면 사용자가 GPU 가속 Docker 컨테이너(docker 버전 19 이후, nvidia-docker 명령을 사용하여 18 이전)를 구축하고 실행할 수 있으므로 이를 설치한 후에만 docker 내에서 GPU를 사용할 수 있습니다.
시스템에 따라 공식 웹사이트에서 해당 설치 명령을 찾으세요.
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
공식 웹사이트는 매우 자세하므로 단계별로 따라가기만 하면 됩니다.
3장은 매우 자세하게 설명되어 있습니다.

3.libnvidia-container1-1.13.5-1.x86_64 설치의 파일 /usr/lib64/libnvidia-container.so.1이 파일 형식 패키지 libnvidia-container1-1.0.0-0.1.beta.1.x86_64와 충돌합니다.

이 오류는 이미 설치된 패키지 "libnvidia-container1-1.0.0-0.1.beta.1.x86_64"의 "/usr/lib64/libnvidia-container.so.1" 파일이 설치할 패키지와 다르다는 것을 의미합니다. "libnvidia-container1-1.13.5-1.x86_64에서 동일한 이름을 가진 파일과 충돌합니다."
이는 패키지 관리자가 기존 패키지의 파일과 충돌하는 파일이 있는 패키지의 새 버전을 시스템에 설치하려고 시도하기 때문에 발생할 수 있습니다. 이 충돌을 해결하는 한 가지 방법은 이전 버전의 패키지를 제거하거나 충돌하는 파일을 업데이트하거나 교체하여 업데이트하는 것입니다.
다음 명령을 사용하여 충돌을 해결해 보십시오.

sudo yum remove libnvidia-container1-1.0.0-0.1.beta.1.x86_64

4.오류: Nouveau 커널 드라이버가 현재 시스템에서 사용 중입니다. 이 드라이버는 NVIDIA 드라이버와 호환되지 않으므로 계속하기 전에 비활성화해야 합니다. NVIDIA 드라이버 README와 Linux 배포판 문서를 참조하세요…

이 문제는 현재 Nouveau 그래픽 드라이버를 사용하는 시스템으로 인해 발생하며 NVIDIA 드라이버는 Nouveau 드라이버와 호환되지 않습니다. 이 문제를 해결하려면 Nouveau 드라이버를 비활성화해야 합니다.

방법 1: 블랙리스트를 통해 Nouveau 드라이버 비활성화
1) /usr/lib/modprobe.d/dist-blacklist.conf에 두 줄을 추가합니다:

blacklist nouveau
options nouveau modeset=0

2) 현재 이미지를 백업하세요.

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

3) 새 이미지 만들기

dracut /boot/initramfs-$(uname -r).img $(uname -r)

4) 다시 시작

sudo init 6

방법 2: 매개변수 추가
매개변수 추가--no-opengl-files

./NVIDIA-Linux-x86_64-515.105.01.run --no-opengl-files

5.docker: 데몬의 오류 응답: OCI 런타임 생성 실패: Container_linux.go:380: 컨테이너 프로세스 시작 발생: process_linux.go:545: 컨테이너 초기화 발생: 후크 실행 중:: 후크 실행 중 오류: 종료 상태 1, stdout : , stderr: nvidia-container-cli: 초기화 오류: 드라이버 rpc 오류: 시간 초과: 알 수 없음.

매우 이상한 오류입니다. --gpus all컨테이너를 시작할 때 그래픽 카드를 로드하면 오류가 보고됩니다. 이 링크가 답변을 제공합니다 .그 이유는 그래픽 카드 리소스가 지속 모드를 켜지 않기 때문입니다.

많은 정보를 참고한 끝에 인터넷의 훌륭한 전문가가 NVIDIA에 문의했다는 것을 알게 되었습니다. NVIDIA에서 제공한 설명은 " 그래픽 카드 리소스가 지속성 모드를 켜지 않습니다 ."입니다. 문제를 해결하려면 다음 명령을 입력하십시오:

nvidia-smi -pm ENABLED

위 명령어에서 Enter 키를 눌렀을 때 프롬프트가 나타나면, 프롬프트에 따라 설치하시면 되고, 설치가 완료된 후 위 명령어를 다시 실행하시면 설치가 됩니다.

참고내용

NVIDIA 드라이버 다운로드 주소.cn
NVIDIA 드라이버 다운로드 주소.com
NVIDIA 드라이버 및 CUDA 툴킷 호환 버전 및 최소 버전 요구 사항
CUDA 툴킷 다운로드 주소
CUDA 툴킷 이전 버전 다운로드 주소
CUDA 툴킷 11.7.1 다운로드 주소
cuDNN 다운로드 주소

CentOS.7 Nvidia Driver_centos 제거 및 설치 nvidia 드라이버 제거_Aaron_Qin Feng의 블로그-CSDN 블로그
Linux Centos7 설치 및 GPU 드라이버 및 cuda 업데이트:_linux 업그레이드 cuda 버전_빅 데이터 lsy의 블로그-CSDN 블로그
업그레이드 nvidia 드라이버-EchoZQN - 다음에서
cuda 버전을 다운그레이드하는 방법 -
ubuntu16.04+nvidia396.37+cuda9.2+cudnn7.1.4_tudou880306의 블로그를 구축하기 위한 Python 기술 스테이션 openpose 환경 - CSDN 블로그

Linux에서 버전 정보 확인 방법 - Linux 운영 및 유지 관리 - PHP 중국어 웹사이트
cuda, cudnn, cudatoolkit 모든 버전 다운로드 URL_cudnn download_QT-Smile 블로그 - CSDN 블로그
python 그래픽 카드 정보 확인 python gpu 확인
Docker 오프라인 설치 Nvidia-container-toolkit GPU 구현 컨테이너 내 호출_NekoTom의 블로그-CSDN 블로그

docker: 데몬의 오류 응답: 기능이 있는 장치 드라이버 ""를 선택할 수 없습니다: [[gpu]]오류 보고_–gpus 모두 오류 보고_매일 누워 있고 싶은 Da Meow의 블로그-CSDN BlogError: x 서버를 실행하는 것으로 보입니다
. 을(를) 설치하기 전에 x를 종료하십시오.자세한 내용은_오류: 프로세스 중에 문제가 발생하는 것 같습니다_
소프트웨어 응용 프로그램_무엇을 구입할 가치가 있습니까?

추천

출처blog.csdn.net/aiaidexiaji/article/details/131973342