[정리]
- Windows 11 + wsl2 를 사용
- 과거에 Windows native 로 사용했던 CUDA 및 관련 폴더 모두 삭제 / 환경변수 삭제
- 최신 nVidia 드라이버 설치 [nvidia-smi 시행]
- Visual Studio 최신으로 설치(2022), 이전버전(2019)은 안지웠음
- wsl2에서 Ubuntu 24.02 버전 사용
- venv로 가상환경 세팅
- Tensorflow[and cuda] 설치
2023년 Anaconda 를 이용한 Tensorflow GPU 버전 설치 포스팅 이후, 거의 2년간 코딩을 할 일이 없었는데 오랜만에 다시 작업을 하고자 하니 뭔가 많이 바뀌어 있는 것을 확인.
특히나, Windows native에서는 더 이상 지원을 안한다는 것을 확인 할 수 있었습니다.
그래서, wsl 을 사용하는 형태로 진행하기로 결정
wsl은 Windows Subsystemfor Linux로 윈도우에서 리눅스를 사용하게 해주는 시스템인데, Docker 사용 때문에 설치를 해둔적이 있었고,

wsl2에서 설치하는 것에 가장 큰 장점은 과거에 세팅했던 것 처럼 CUDA / cuDNN 설치를 추가로 할 필요가 없다는 점입니다.
그래서 일단 무턱대로 위의 코드대로 했더니 GPU가 안잡히네?..한 6시간 날려먹었는데, 결국 다시 마음을 가다듬고 아래의 youtube대로 세팅을 해봤더니, 됩니다.
정리하면 다음과 같습니다 (일단 wsl와 Visual C++ Redistributable 최신판은 설치한 이후라고 가정)
- Visual C++ Redistributable 설치 [링크]
#1. 최신 드라이버 설치 – nVidia 공식 홈페이지에서 최신드라이버 설치
#2. [제어판] – [프로그램 제거] 일단 과거의 CUDA 흔적을 모두 지움
- 남아있는 파일들 (C:\Program Files\NVIDIA GPU Computing Toolkit) 도 삭제
- 아래 처럼 최신 드라이버 이외의 항목들 제거

#3. 아래와 같이 세팅
powershell # wsl 을 업데이트하고, wsl --update # wsl 에서 Ubuntu-24.04를 설치 wsl --install -d Ubuntu-24.04 # 설치한 Ubuntu-24.04를 기본으로 설정 wsl --set-default Ubuntu-24.04 # 이 세팅을 안하면 시행할 떄 wsl -d Ubuntu-22.04 로 해줘야함 # 잘 설치되었는지 확인 wsl --list --verbose # ubuntu 24.04 시행 wsl.exe

#4. wsl.exe를 시행하면 아래와 같이 나옵니다. 
$ 부터를 bash라고 표현
#5. 드라이버를 잘 인식하는지 봅니다.
bash nvidia-smi
아래와 같이 wsl에서도 인식을 잘 한다. NVIDIA-SMI 버전이랑 드라이버 버전이 다른데 별 문제 없는 것 같습니다.

#6. 패키지 업데이트
bash # 업데이트 sudo apt update && sudo apt upgrade -y # 기본 요소 설치 sudo apt install build-essential git curl vim -y # python venv 설치 sudo apt update && sudo apt install -y python3-venv python3-pip
#7. 가상환경을 만들어줍니다.
bash # ml 이라는 가상환경 만들기 python3 -m venv ml # 가상환경에 로딩 source ml/bin/activate # pip 최신버전으로 pip install --upgrade pip # 텐서플로우 설치 pip install tensorflow[and-cuda]
#8. GPU가 잘 잡하는지 봅니다.

bash
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
잡히는 것 확인

#. 정리
powershell wsl --update wsl --install -d Ubuntu-24.04 기본으로 설정 wsl --set-default Ubuntu-24.04 wsl --list --verbose wsl.exe
bash
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential git curl vim -y
sudo apt update && sudo apt install -y python3-venv python3-pip
python3 -m venv ml
source ml/bin/activate
pip install --upgrade pip
pip install tensorflow[and-cuda]
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
# Visual Code 연동 bash pip install ipykernel python -m ipykernel install --user --name=ml --display-name "Python (ml)" code . #현재 폴더에서 visual code 실행
처음에 GPU가 안잡혔던 이유는 여전히 잘 모르겠지만, 아마 Windows native로 설치되었던 CUDA 때문에 심볼릭 링크가 꼬였을 수도 있고, 다만 최신버전들이 아닌 것들이 꼬여서 그랬을지도 모르겠습니다.
일단 잘 시행되기에, 기록을 남겨둡니다.