WSL nvidia driver, computer compatibility, cuda, cudnn, tensorrt 버전 확인 및 설치

paradeigma·2024년 10월 28일

pc 환경 설정

목록 보기
5/6

1. 현 상황

wsl2에 3.11.10 파이썬으로 가상환경을 구성하였다.

목표: nvidia driver, computer compatibility, cuda, cudnn의 버전을 확인하고 특정 버전으로 모두 구성한다.

2. 버전 확인

2.1 nvidia-driver: 556.05

2.2 computer compatibility: 8.9

https://developer.nvidia.com/cuda-gpus

gpu: rtx 4060 laptop

2.3 cuda, cudnn 버전 확인: 설치x

2.3.1 nvidia-smi로 확인한 버전: 12.5

2.3.2 usr/local에서 확인

2.3.3 nvcc --version

nvidia-smi에서는 해당 드라이버가 지원가능한 쿠다 버전을 의미한다.(아래 링크 참조)
https://velog.io/@paradeigma/WSL2에-tensorflow-gpu-cudnn-cuda-nvidia-driver-설치하기
따라서 cuda는 설치가 안되어 있는 것이고, 그 의미는 cudnn도 없다는 것이다.

3. 설치

cuda multi version 관리

3.1 cuda 12.4

https://developer.nvidia.com/cuda-12-4-1-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local

3.1.1 deb (local)

설치 파일 형식: .deb 패키지 (Debian 기반의 패키지)
설치 방식: apt 패키지 매니저를 통해 설치
장점:
설치가 간편하며, Ubuntu나 Debian 등 Debian 기반 배포판의 패키지 관리 시스템과 호환됩니다.설치와 함께 의존성도 자동으로 관리되며, 패키지 업데이트도 apt로 관리할 수 있습니다.
단점:
패키지 매니저에 따라 의존성 문제가 발생할 수 있습니다.
일부 구성이 자동으로 설정되므로, 세부 설정을 수동으로 조정하기 어려울 수 있습니다.

3.1.2 runfile (local)

설치 파일 형식: run 파일 (자체 실행형 설치 파일)
설치 방식: 스크립트를 실행해 수동 설치
장점:
설치 과정을 사용자가 직접 제어할 수 있어, 커스터마이징이 용이합니다.
CUDA와 NVIDIA 드라이버를 독립적으로 설치할 수 있어 특정 요구에 맞게 조정할 수 있습니다.
단점:
설치와 업데이트가 복잡하며, 의존성 관리도 수동으로 해야 합니다.
패키지 매니저를 통하지 않으므로 업데이트가 자동화되지 않습니다.

3.1.3 설치 코드

sudo wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run

여기서 쿠다 툴킷만 설치해도 괜찮다.

3.1.4 오류

1) permission denied

wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run

해당 코드를 작성하니 permission denied가 났다. 그래서, sudo를 붙여야지만 다운이 받아진다.
=> 내가 /usr/local 에 다운을 받다보니 권한이 필요했다. /home/paradeigma에서 받으면 sudo 권한이 필요없다.

3.2 버전 확인

nvcc --version

3.2.1 오류

3.2.2 대응

$ vi ~/.bashrc
가장 아랫줄에 2줄 추가
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

$ source ~/.bashrc
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:18:24_PDT_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

3.3 cuda 11.8 설치

위의 과정을 11.8로 반복

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

이후 multiversion을 관리할거면 simbolic link를 잘 설정해야 하는데 아래의 글을 참조하면 도움이 될 것이다.
https://xoft.tistory.com/86

https://velog.io/@cjkangme/WSL2%EB%A1%9C-CUDA-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-CUDAcuDNN-%EC%84%A4%EC%B9%98%EA%B9%8C%EC%A7%80

이 때 조심할 것은 심볼릭 링크를 override 할 것이냐는 물음에 no를 입력하는 것이다. 이미지는 yes가 활성화되어 있는데 이미지 캡쳐가 잘못된 것이다.

3.3.1 오류

출처: https://gooopy.tistory.com/134

gcc 라는 것이 cuda를 설치할 때 필요하다. 이 때 cuda 12.4는 gcc 13.2.0이 필요하지만, 11.8은 11이 필요하다
https://stackoverflow.com/questions/6622454/cuda-incompatible-with-my-gcc-version

일단 여기에서 cuda multi-version은 멈추고, 추후에 cuda 를 더 깔 때 생각하기로 한다.

(24.10.29)
gcc 또한 심볼릭 링크만 잘 관리하면 된다. 이에 대한 글은 하단된다. 이에 대한 설명은 하단을 참조하기로 한다.

https://velog.io/@paradeigma/wsl-cuda-다중-버전-관리

gcc 호환성 오류 문제

예시1) Failed to verify gcc version.
예시2) [ERROR]: unsupported compiler version.

해결 방안 : gcc, g++ 버전에 맞는 것을 다운 받고 심볼릭 링크 관리

$ sudo apt update                    # apt 패키지 목록/버전 업데이트
$ sudo apt install build-essential   # gcc설치에 필요한 패키지 설치
$ sudo apt-get install manpages-dev  # gcc설치에 필요한 패키지 설치

$ sudo apt install gcc-11 g++-11     # 필요한 gcc 버전으로 설치
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11   # gcc변경 가능하도록 등록
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11   # gcc변경 가능하도록 등록
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

다중 버전 설치 완료 후

나는 11.8과 12.4를 설치하였다. 이에 대한 심볼릭 링크를 관리하기 위해서 아래의 코드를 사용하였다.

sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.8 118 
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-12.4 124
sudo update-alternatives --config cuda

여기서 cuda 버전을 관리한다.

3.4 cudnn 설치

3.4.1 9.5.1 버전 (deb 방식)

설치 방법은 아래 문서에서 추출해왔다.
https://devskim.tistory.com/44

버전 정보는 아래 문서에서 추출해왔다.
https://docs.nvidia.com/deeplearning/cudnn/latest/reference/support-matrix.html

wget https://developer.download.nvidia.com/compute/cudnn/9.5.1/local_installers/cudnn-local-repo-ubuntu2404-9.5.1_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.5.1_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.5.1/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

https://xoft.tistory.com/86

3.4.1.1 버전 정보 확인

3.4.2 8.6.0 버전(tar 방식)

참조:
https://hjh1023.tistory.com/59

tar -xvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz
sudo cp cudnn-linux-x86_64-8.6.0.163_cuda11-archive/include/cudnn*.h /usr/local/cuda-11.8/include
sudo cp -P cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64
sudo chmod a+r /usr/local/cuda-11.8/lib64/libcudnn*

3.5 TensorRT 설치: 10.5

설치 경로
https://developer.nvidia.com/tensorrt/download/10x

공식 문서
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-tar

3.5.1 Python Package Index Installation

가상환경에서 설치

python3 -m pip install --upgrade tensorrt
python3 -m pip install --upgrade tensorrt-lean
python3 -m pip install --upgrade tensorrt-dispatch

1) 특징
모든 필요 라이브러리 포함: PyPI에서 제공하는 TensorRT Python 패키지는 필요한 CUDA 라이브러리를 포함하여 설치되므로, 별도의 CUDA 또는 TensorRT C++ 라이브러리 설치가 필요 없습니다.

2) 단점
C++ 헤더 파일 포함 안 됨: C++ API에 접근하거나 플러그인 컴파일이 필요한 경우 별도의 설치가 필요합니다.

3) 버전 확인

import tensorrt
print(tensorrt.__version__)
assert tensorrt.Builder(tensorrt.Logger())

3.5.2 로컬에 전체 설치

ubuntu에서 공식 문서 상의 코드를 실행할 예정이다. 이 또한 환경 변수를 관리하면서 설치를 하면 된다. 다만 cuda 11.8 / 12.4가 tensorrt 10.5와 모두 호환 되는 것으로 일단 파악 되어서 tensorrt는 단일로 로컬에 설치하고서 호환성을 실험해보기로 한다.

profile
AI Engineer

0개의 댓글