아쉽게도 tensorflow가 native로 윈도우를 더 이상 지원하지 않기로 한 것 같다. 여기 저기 검색해 본 결과 JAX랑 PyTorch 쓰라고 하네. 당장 짜놓은 Tensorflow+keras 조합을 바꾸진 못할 것 같다.
당분간은 본업용 윈도우 시스템과 실험용 리눅스 시스템을 동시에 굴려서 실험을 해야 잘못된 실험(결과값을 reverse scaling하지 못해서 ....)을 다시 할 수 있을 것 같다.
그럼 본업은 유지해야 하기 때문에 윈도우를 갈아 업을 순 없고 가능한 조합은 Windows + WSL + CUDA + Tensorflow + Keras 인것 같다.
그래서 먼저 WSL 설치하고 CUDA 설치하고 tensorflow를 설치해야 겠다.
1. WSL 설치
1.1. linux용 windows 하위 시스템 설치
PS C:\Windows\system32> wsl --install
재부팅하라니 재부팅을 해주어야 겠다.
1.2. 사용가능한 linux 배포판 확인하기
PS C:\Windows\system32> wsl --list --online
1.3. linux 배포판 설치
나는 자주 갈아 업는 배포판은 귀찮기 때문에 Ubuntu 24.04 LTS 버전을 설치하도록 하겠다.
PS C:\Windows\system32> wsl --install Ubuntu-24.04
1.4. Ubuntu 환경 업데이트
PS C:\Windows\system32> wsl
user@DESKTOP:/mnt/c/Users/user$ sudo apt update
user@DESKTOP:/mnt/c/Users/user$ sudo apt upgrade
2. CUDA 환경 설치
Nvidia의 드라이버 구조와 cuda 는 다소 난잡하다.
2.1. Nvidia 드라이버 설치
윈도우 시스템에 nvidia 드라이버가 설치된 상태로 wsl을 설치해서 그런지, 이미 설치되어 있는 듯 싶다. 확인만 하고 넘어 가자.
...$ nvidia-smi
드라이버 버전 확인 요망(내껀 드라이버 버전 576.88이다. CUDA도 설치 되어 있네 12.9)
2.2. CUDA Toolkit 설치
앞서 이야기 했듯이 난잡하다. nvidia 드라이버 버전을 기준으로 다른 패키지들 tensorflow와 cuda-toolkit의 매칭되는 버전을 찾아 보도록 해야 겠다. 다시 설치하고 그러기 싫다.
우선 시스템이 제공해 줄 수 있는 버전을 확인해 본다.
...$ sudo apt search nvidia-cuda-tool
nvidia-cuda-toolkit이 설치할 수 있게 검색되며 버전은 12.0.140 이다.
그럼 설치한다.
...$ sudo apt install nvidia-cuda-toolkit
오래 걸린다. 잠깐 정리하고 넘어가자.
nvidia 드라이버 버전(576.88), CUDA 버전(12.9), nvidia-cuda-toolkit 버전(12.0.140)
설치된 nvidia관련 패키지들 리스트들이다.
...$ apt list --installed | grep nvidia
libnvidia-compute-535/noble-updates,noble-security,now 535.274.02-0ubuntu0.24.04.2 amd64 [installed,automatic]
libnvidia-ml-dev/noble,now 12.0.140~12.0.1-4build4 amd64 [installed,automatic]
nvidia-cuda-dev/noble,now 12.0.146~12.0.1-4build4 amd64 [installed,automatic]
nvidia-cuda-gdb/noble,now 12.0.140~12.0.1-4build4 amd64 [installed,automatic]
nvidia-cuda-toolkit-doc/noble,now 12.0.1-4build4 all [installed,automatic]
nvidia-cuda-toolkit/noble,now 12.0.140~12.0.1-4build4 amd64 [installed]
nvidia-opencl-dev/noble,now 12.0.140~12.0.1-4build4 amd64 [installed,automatic]
nvidia-profiler/noble,now 12.0.146~12.0.1-4build4 amd64 [installed,automatic]
nvidia-visual-profiler/noble,now 12.0.146~12.0.1-4build4 amd64 [installed,automatic]
어 근데 cudnn은 없네 이것도 필요한 것으로 기억하는데 이것도 설치해야 겠다.
...$ sudo apt install nvidia-cudnn
현재 설치버전은 8.9.2.26이다. 버전이 무슨 암호 같다. 그 전에 너무 길다.
이젠 python 설치와 관련 패키지 설치인것 같다.
3. python 설치
다행이도 이미 설치된 버전은 3.12.3이다.
...$ python3
Python 3.12.3 (main, Nov 6 ...)
>>> quit()
그럼 관련 조합을 정리해 보자.
tensorflow-2.15 + cuda-12.2 + cudnn-8.9 -> corresponding NVIDIA Driver 535
약간 다르긴 하지만 이 조합 밖에 없다. 이걸로 밀어 부치자.
3.1. 가상 환경 설치하기
개발환경의 패키지 버전과 시스템이 관리하는 버전의 충돌을 경험해 보고 싶지 않으면 python 가상환경을 설치하자.
...$ sudo apt install python3-venv
3.2. tensorflow를 위한 가상환경 생성
그럼 하얀 도화지를 준비하자.
...$ python3 -m venv tf-env
3.3. 생성된 가상 환경 활성화 하기
...$ source ./tf-env/bin/activate
(tf-env) ...$
가상환경 종료는 맨 마지막에 해주어야 하지만, 참고로 다음과 같이
(tf-env) ...$ deactivate
아무튼 가상환경 하에서 필요한 tensorflow-2.15버전을 설치한다.
3.4. tensorflow 2.15 설치
(tf-env) ...$ pip install tensorflow[and-cuda]==2.15
에휴 없다. 다시 호환표를 보자.
https://www.tensorflow.org/install/source?hl=ko#gpu
....
텐서플로우-2.17.0 3.9-3.12 클랭 17.0.6 바젤 6.5.0 8.9 12.3
텐서플로우-2.16.1 3.9-3.12 클랭 17.0.6 바젤 6.5.0 8.9 12.3
텐서플로우-2.15.0 3.9-3.11 클랭 16.0.0 바젤 6.1.0 8.9 12.2
...
맞는 조합이 없다. python 3.12이고 cuDNN 8.9고 CUDA는 12.9다.
모른겠다. 2.17버전 설치한다.
(tf-env) ...$ pip install tensorflow[and-cuda]==2.17
엉망 진창이지만 설치가 된다. 근데 오래 걸린다.
3.6. 설치 확인
(tf-env) ...$ python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
너무 오래 걸린다. 윈도우 환경으로 넘어가서 visual studio code 환경 설정해야 겠다.
4. visual studio code 환경 설정
visual studio code는 윈도우에 설치하고 python과 tensorflow는 윈도우 안에 있는 리눅스 시스템에 설치되어 있다. 이 둘 간의 OS를 넘나드는 다리를 만들어 주어야 한다.
visual studio code를 실행하고 좌측 탭의 extensions를 선택하고 "Remote - WSL"을 검색한다.
근데 WSL 밖에 없다. 설명을 보아 하니 WSL에 있는 폴더를 열 수 있다고 한다. 이것 설치한다.
그리고 좌측 하단의 원격 연결 버튼 ( >< 모양 아이콘)을 클릭하고 "Connect to WSL"을 선택한다.
뭔가 설치한 Ubuntu-24.04와 연결하는 것 같다.
File -> Open Folder 하고 WSL 디렉토리 선택하고 test.py 파일을 하나 만들면 필요한 extensions들을 추천해 주는데 다 설치하자. 그럼 또 가상 환경 만들라고 한다. 이미 만들어 놓은 건 어쩌고 만들라고 하는지 기존것 로딩하는 것은 없나 보다.
아 귀찬다. /mnt/c/Users/usr/tf-env를 /home/user로 복사해 오자. 나머지는 내일 하는 것으로.
댓글 없음:
댓글 쓰기