🏛️ [Archive] 개발 프로젝트 & 회고/VScode 환경 구축 💻

ㄹㅇ 이것만 보면 됨. WSL2에서 CUDA 및 cuDNN 설정하기

히주 2025. 2. 11. 22:48

인공지능, 딥러닝을 사용하려면 GPU 가속이 필수적입니다. 특히 NVIDIA 그래픽카드를 사용하는 경우 CUDA를 설치하여 GPU를 활용해야 합니다. 그러나 WSL2 환경에서 CUDA 및 cuDNN을 설정하는 과정은 다소 까다롭습니다.  과거 안전불감증을 가지고 있었던 저는 cuda와 기타 등등... 아무렇게나 지웠다 깔고 많은 시행착오 ( 그래픽카드 하나를 벽돌로 만들고 ) 를 겪으며 환경설정의 중요성과 강한 안전의식으로 환경설정에 많은 시간을 기울이는 편입니다. 환경설정의 스트레스는 겪어본 사람들만이 아는 고통이자 마약입니다. 이번에도 과거 깔아놓은 cuda와 기타 등등등을 처리하고 버전을 맞추며 많은 오류를 만나고 성장했습니다! 크크크 

미리 PC 환경을 확인하고 올바른 버전의 CUDA 및 cuDNN을 설치하는 것이 아주아주 중요합니다. 최대한 자세히 딥러닝 학습 시 GPU를 사용할 수 있도록 환경설정할 수 있는 방법을 제공했습니다. 아래 내용을 참고해서 여러분도 빠른 학습 해보셔요~!


 

본 가이드는 WSL2에서 Ubuntu 환경을 사용하는 것을 전제로 작성되었습니다. 또한, Windows 11에서 VSCode의 WSL 확장을 이용하여 진행합니다. 이미 WSL2 및 Ubuntu가 설치되어 있는 상태에서 CUDA 및 cuDNN을 추가하는 과정만 다룰 예정입니다.

만약 위의 환경이 준비되어 있으시지 않으시다면 아래 링크를 타고 들어가셔서 환경 준비를 해주셔야합니다.

 

 

실패 없이 Window 환경에서 WSL 2와 VScode 통합하기

안녕하세요! 😊 환경 구축이란 게 쉽지 않고 작은 실수만으로 제대로 설정하기 어려울 수 있습니다. 저도 초반에는 많이 맸어요.🥹 그러나 이 가이드에 나열된 과정을 차근차근 따라오시면 비

yiheeju.tistory.com

 

 


 

😆 환경 정보 1️⃣2️⃣3️⃣

⭐ 자신의 컴퓨터 사양 확인하기

CUDA 및 cuDNN을 설치하기 전에  현재 사용하는 PC의 사양을 확인해야 합니다. 특히 GPU 모델과 드라이버 버전이 중요합니다. 이를 확인하는 방법은 다음과 같습니다.

 

GPU 정보 확인

[파일 탐색기] > [내 PC] 마우스 오른쪽 클릭 후 "속성"선택 > [장치 관리자] 선택  > [디스플레이 어댑터] 선택 

 

 

 


 

😆 WSL2용 NVIDIA 드라이버 다운로드 및 설치 1️⃣2️⃣3️⃣

ubuntu 열어서  NVIDIA 드라이버가 설치되어 있는지 확인

$ nvidia-smi

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.

위와 같은 오류가 나오면 NVIDIA 드라이버가 설치되지 않은 상태

 

✅   NVIDIA 드라이버를 다운로드 하기

 

최신 정식 NVIDIA 드라이버 다운로드

최신 정식 NVIDIA 드라이버를 다운로드하여 PC 게임 경험을 향상시키고 앱을 더 빠르게 실행하세요.

www.nvidia.com

 

✅  다시 ubuntu 열어서 nvidia-smi 실행 결과로 gpu가 정상적으로 인식되는지 보기

$ nvidia-smi

Tue Feb 11 20:31:17 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.02              Driver Version: 560.94         CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 970         On  |   00000000:01:00.0  On |                  N/A |
| 44%   30C    P8             24W /  325W |    1532MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

 

 


 

😆 CUDA Toolkit 다운로드 및 설치 1️⃣2️⃣3️⃣

✅  알맞은 버전의 CUDA Toolkit을 다운로드 하기

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

⭐별표 100000개 ‼️‼️ 정말 중요 ‼️‼️ 아무거나 또는 최신버전 설치하면 절대 안됩니다‼️‼️‼️

 [ 💡 CUDA Toolkit 버전 선택 방법 ]을 참고해서 자신의 알맞은 쿠다 툴킷 버전을 찾은 후 들어가기

 


💡 CUDA Toolkit 버전 선택 방법

nvidia-smi 결과를 봤을 때, GPU 모델( NVIDIA GeForce GTX 970 ), 드라이버 버전( 560.94 ), CUDA 드라이버 버전 (12.6 )임.

🚀 최적의 CUDA Toolkit 버전 선택 기준

1️⃣ NVIDIA 드라이버가 지원하는 최대 CUDA 버전 이하로 설치해야 함. 

       현재 드라이버(560.94)는 CUDA 12.6을 지원하므로 최대 CUDA 12.6까지 설치 가능함

2️⃣ 딥러닝/머신러닝 라이브러리(PyTorch, TensorFlow)와의 호환성 고려

      최신 PyTorch/TensorFlow는 CUDA 11.8 또는 12.x를 지원하며 최신 모델을 학습하려면 CUDA 11.8 또는 CUDA 12.6이 적절함

 

‼️아래 문서를 참고해서 자신의 컴퓨터 성능과 사용할 페키지들에 대해서 알맞은 버전 선택 하기 (매우 중요🌟🌟🌟)

 

Start Locally

Start Locally

pytorch.org

 

 

Windows의 소스에서 빌드,Windows의 소스에서 빌드  |  TensorFlow

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Windows의 소스에서 빌드,Windows의 소스에서 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 소스에

www.tensorflow.org

 

 

CUDA - Wikipedia

From Wikipedia, the free encyclopedia Parallel computing platform and programming model In computing, CUDA (Compute Unified Device Architecture) is a proprietary[2] parallel computing platform and application programming interface (API) that allows softwar

en.wikipedia.org

 

 

CUDA Compatibility

CUDA Compatibility CUDA Compatibility describes the use of new CUDA toolkit components on systems with older base installations. 1. Why CUDA Compatibility The NVIDIA® CUDA® Toolkit enables developers to build NVIDIA GPU accelerated compute applications f

docs.nvidia.com

 


 

 

 

apt를 통해 의존성까지 자동으로 해결되므로  설치가 가장 간편하기 때문에  Ubuntu에서 설치할 경우  deb (network) 추천함

위와 같이 알맞은 항목을 선택해주면 ubuntu에서 사용할 코드가 아래에 나오며 프롬프트에 한 줄 씩 입력하기

# ‼️주의
# sudo apt-get -y install cuda 명령어는 기본적으로 최신 CUDA 버전(현재 12.8)을 설치합니다.
# 그렇기 때문에 CUDA 11.8을 설치하려면 명확하게 버전을 지정해야합니다.

$ sudo apt-get install cuda-11-8

 

 

☢️ 제공되는 코드에 apt-key가 들어가 있다면 오류가 발생 할 수 있습니다.

➡️apt-key는 Ubuntu 22.04 이상에서 지원 중단되었으므로 최신 방식으로 cuda-keyring을 사용해주어야합니다.
➡️ add-apt-repository를 사용하면 sources.list.d에 잘못된 엔트리가 추가될 가능성이 있어서 최신 NVIDIA 공식 설치 방식에서는 cuda-keyring을 사용해 주어야 합니다.

 

 

✅ CUDA 설치되어 있는지 확인

$ ls /usr/local/ | grep cuda

lrwxrwxrwx  1 root root   22 Feb 11 21:36 cuda -> /etc/alternatives/cuda
lrwxrwxrwx  1 root root   25 Feb 11 21:36 cuda-11 -> /etc/alternatives/cuda-11
drwxr-xr-x 15 root root 4096 Feb 11 21:36 cuda-11.8

➡️ 위와 같이 다운받은 버전이 나오면 설치  성공! 🎉

 

 

 환경 변수 설정하기

 

☢️  환경 변수 설정 필수

CUDA를 설치하면 /usr/local/cuda/ 경로에 관련 바이너리(nvcc), 라이브러리(libcuda.so 등), 헤더 파일이 저장되었지만 리눅스 시스템은 기본적으로 /usr/bin/이나 /usr/lib/ 같은 경로만 인식하고 /usr/local/cuda/는 자동으로 포함되지 않습니다.

따라서 nvcc --version을 실행해도 Command not found 오류가 발생할 수 있습니다.

이를 해결하려면 환경 변수(PATH, LD_LIBRARY_PATH)를 설정해야 합니다.

 

# 1️⃣ 아래 명령어를 실행해서 ~/.bashrc에 환경 변수를 추가
$ echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

# 2️⃣ 변경 사항 적용 (터미널에서 바로 반영됨)
$ source ~/.bashrc

 

✅ 설정이 제대로 적용되었는지 확인

$ nvcc --version

Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

➡️ 정상 출력되면 환경 변수 설정 성공! 🎉

 

 

 

 

cuDNN 다운로드 및 설치 1️⃣2️⃣3️⃣

✅ dpkg를 사용하여 cuDNN 패키지 확인

$ dpkg -l | grep -i cudnn


ii  libcudnn8                          8.9.2.26-1+cuda11.8              amd64        cuDNN runtime libraries
ii  libcudnn8-dev                      8.9.2.26-1+cuda11.8              amd64        cuDNN development libraries and headers
ii  libcudnn8-samples                  8.9.2.26-1+cuda11.8              amd64        cuDNN example applications


# 아래 명령어로도 확인 가능
$  list --installed | grep -i cudnn

cuDNN이 설치된 경우 다음과 같이 나옴 (설치되어있지 않는 경우 아무것도 나오지 않음)

 

✅ cuDNN 파일이 /usr/local/cuda에 직접 설치되었는지 확인

$ ls -l /usr/local/cuda*/lib64 | grep cudnn


lrwxrwxrwx 1 root root        19 Jan  5 14:02 libcudnn.so -> libcudnn.so.8
lrwxrwxrwx 1 root root        29 Jan  5 14:02 libcudnn.so.8 -> libcudnn.so.8.9.2.26
-rwxr-xr-x 1 root root 235672984 Jan  5 14:02 libcudnn.so.8.9.2.26
-rw-r--r-- 1 root root 235672984 Jan  5 14:02 libcudnn_static.a

cuDNN이 설치된 경우 다음과 같이 나옴 (설치되어있지 않는 경우 아무것도 나오지 않음)

 

✅  알맞은 버전의 cuDNN을 다운로드 하기

 

cuDNN Archive

 

developer.nvidia.com

(설치를 받기 위해서는 회원가입 필수입니다!)

 

자신에게 맞는 환경과 설치했던 CUDA 버전을 참고해서 알맞은 cuDNN을 설치해주시면 됩니다.

저의 기준으로는 WSL환경과 CUDA 11.8에 맞는 cuDNN은  v8.7.0 버전의 Ubuntu 22.04 (x86_64) .deb 파일을 다운받아줬습니다.

 

 

)

일반적인 딥러닝 모델 실행(Python 기반 TensorFlow/PyTorch 사용)이라면 cudnn-runtime만 있으면 충분함.

cuDNN을 이용하여 직접 CUDA C++ 코드 작성 및 빌드할 경우에는 cudnn-dev 패키지 필요.

cudnn-runtime과 cudnn-dev를 동시에 설치해도 서로 보완적인 역할을 하기 때문에 충돌이 발생하지 않습니다. 

 

 

 

✅   설치받으면 다운로드 폴더에 잘 다운받아져있는지 확인 

 

✅   VScode를 열어서 다운받은 파일 넣어주고 Ubuntu에서 해당 경로로 들어가기

 

 

✅  패키지를 다운로드할 수 있는 소스(repository)를 추가

$ sudo dpkg -i [다운받은 cuDNN.deb 패키지]
$ sudo dpkg -i cudnn-local-repo-ubuntu2204-8.7.0.84_1.0-1_amd64.deb

여기에 cuDNN 패키지(libcudnn8, libcudnn8-dev)가 포함되어 있음

 

✅  GPG 키 추가

GPG 키가 설치되지 않아서, 패키지 관리 시스템(apt)이 리포지토리를 신뢰하지 않을 가능성이 있기 때문에 GPG 키를 추가해야함

$ sudo cp /var/[자신의 cudnn]/cudnn-local-*.gpg /usr/share/keyrings/
$ sudo cp /var/cudnn-local-repo-ubuntu2204-8.7.0.84/cudnn-local-BF23AD8A-keyring.gpg /usr/share/keyrings/

 

모든 버전의 cuDNN .deb 패키지는 설치될 때 cudnn-local-*.gpg 형식의 키를 포함하고 있음.

따라서 버전에 상관없이 cudnn-local-*.gpg를 /usr/share/keyrings/로 복사하면 GPG 키가 올바르게 등록됨.

 

 

 패키지 목록 업데이트

$ sudo apt update

 

cuDNN 패키지 설치

$ sudo apt install libcudnn8 libcudnn8-dev

 

 

설치 확인

$ dpkg -l | grep -i cudnn

ii  cudnn-local-repo-ubuntu2204-8.7.0.84 1.0-1                                   amd64        cudnn-local repository configuration files
ii  libcudnn8                            8.7.0.84-1+cuda11.8                     amd64        cuDNN runtime libraries
ii  libcudnn8-dev                        8.7.0.84-1+cuda11.8                     amd64        cuDNN development libraries and headers

 

 

CUDA 및 cuDNN을 정상적으로 사용할 수 있도록 환경 변수를 설정

$ echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc

 

 

cuDNN이 설치되었는지 확인

$ cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2


#define CUDNN_MAJOR 8
#define CUDNN_MINOR 7
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

➡️ 자신이 설치한 버전(8.1.0)이 출력되면 정상 설치 완료! 🎉

 

 

 

수고하셨습니다!


 

⚠️ 반드시 CUDA 버전에 맞는 TensorFlow/PyTorch 패키지를 설치해야 합니다.
CUDA 버전과 맞지 않는 패키지를 설치하면 GPU 가속이 제대로 동작하지 않습니다.

 

☑️PyTorch GPU 확인

import torch
print(torch.cuda.is_available())  # True가 나오면 정상
print(torch.cuda.get_device_name(0))  # GPU 모델 확인

 

 

Start Locally

Start Locally

pytorch.org

 


☑️ TensorFlow GPU 확인

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))

 

 

GPU 지원  |  TensorFlow

GPU 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 참고: GPU 지원은 CUDA® 지원 카드가 있는 Ubuntu 및 Windows에 제공됩니다.TensorFlow GPU 지원에는 다양한 드

www.tensorflow.org

 


 

만약 쿠다 툴킷 설치에서 실수하셨다면 아래 링크에서 확실히 삭제해보셔요!

 

완벽하게 CUDA 삭제하는 방법 (Ubuntu)

환경설정을 할 때는 확실하게 해주는 편이 정신건강에 매우 이롭습니다. 하지만 간혹가다 페키지 충돌 이슈 등 다양한 변수가 발생한다면 cuda를 삭제하고 다시 설치해주어야하는데 이때 삭제도

yiheeju.tistory.com