main. windows11 wsl로 tensorflow 최신버전 GPU와 연결하기
0. 무슨 버전을 설치해야할 지 미리 정하기
1. (windows) WSL로 우분투 설치
2. (windows) VSCode 설치 및 WSL 접속
3. (ubuntu) miniconda 설치 & python 설치
4. (windows) 그래픽 드라이버 최신화
5. (ubuntu) CUDA Toolkit, cuDNN 설치
6. (windows) VSCode에서 ipynb파일을 만들어 WSL을 통해 tensorflow 실행
windows 11 기준으로 WSL2는 자동으로 설치되어 있기 때문에 Ubuntu만 설치하면 되는 매우 쉬운 파트다.
다만, Ubuntu 설치방법이 두 가지로 나뉘는데
후자는 조금 더 귀찮은 방법이 추가 된다.
무슨 차이가 있나요? 라고 묻는다면
2 번은 Ubuntu01, Ubuntu02, Ubuntu03, ... 이렇게 가상환경이 여러개 만들어서 Ubuntu01은 CUDA 12버전, Ubuntu02는 CUDA 11버전, ... 이렇게 여러 버전이 필요한 사람을 위한 경우이고,
1 번은 굳이 여러개 필요한가요? 하나만 쓸래요의 경우다.
그러면 전자 먼저 설명하겠다.
우선, CMD를 열자.
아래 명령으로 wsl에서 사용가능한 명령들을 확인할 수 있다.
wsl --help
그러면 wsl이 2버전인지 확인해보자
wsl --version
wsl 업데이트는 아래와 같다.
wsl --update
wsl에서 설치 가능한 ubuntu 버전들은 아래 명령으로 확인 가능하다.
wsl --list --online
오우.. 그 사이에 Ubuntu 24가 추가됐네요? (변순데?)
우분투를 설치하는 명령은 아래와 같습니다.
그냥 --install만 작성할 경우 위 사진에서 NAME이 Ubuntu인 것을 설치합니다.
다만, 저는 Ubuntu 24가 없던 시절이라서 Ubuntu 22.04로 자동 설치됐는데... Ubuntu 24가 추가된 지금은 Ubuntu 24로 설치될 가능성이 있어 보입니다. 그러므로 두번째 명령을 사용하도록 하겠습니다. (24를 피하는 이유는 글 작성시점 기준으로 nvidia가 지원 안 하기 때문입니다.)
wsl --install (이 명령은 Ubuntu 24를 설치할 수도 있음)
wsl --install -d Ubuntu-22.04 (22버전을 설치하겠다고 못 박음)
docker를 설치했다면 이미 hyper V가 활성화 되어 재부팅을 할 필요가 없지만, 안 했다면 재부팅하라고 할 수도 있다.
설치가 완료되면 Ubuntu에서 쓸 계정과 비밀번호를 입력하라고 할 것이다.
이제 cmd 창에서 아래 명령 2개 중 아무거나 하나를 치면, 방금 설치한 ubuntu에 접속 가능합니다.
wsl
ubuntu
둘은 시작위치만 다를 뿐입니다. wsl도 cd ~
을 치면 계정 홈 디렉토리로 갈 수 있습니다.
여기부터 아래 끝까지는 ubuntu를 여러개 설치하고 싶은 사람을 위한 세팅이다.
하나만 설치할 사람은 축하한다 다음 작업으로 넘어가면 된다.
우리가 이 작업을 하는 이유는 정말 어이없는데, 가상환경 이름을 못 바꾸기 때문에 여러개를 설치하려면 가상환경 이름이 중복되는 것을 해결해야 한다;;
단순하게 우분투 설치하고 이름 바꾸고를 반복하면 될텐데, 마소친구들이 이걸 추가 안 해줬기 때문에 아래와 같은 번거로운 방법으로 가상환경 이름을 바꿔야 한다. 그래야 이름이 중복 없이 여러개 설치 가능하다.
일단, 가상환경 리스트에서 앞서 설치한 환경 이름을 먼저 확인하자.
wsl --list
나는 Ubuntu로 되어 있다.
아래의 코드를 이용해서 저 우분투를 파일로 복제할 거다.
wsl --export <distribution name> <export file name>
나는 아래와 같이 타이핑 했다.
wsl --export Ubuntu ubuntu.tar
이제 추출된 파일을 이용해 wsl에 가상환경을 만들거다.
wsl --import <new distribution name> <install location> <export file name>
나는 아래와 같이 타이핑 했다.
wsl --import ubuntu01 .\ubuntu01 ubuntu.tar
새로 만든 ubuntu에 접속하려면 조금 귀찮더라도 distribution name을 지정해줘야 한다.
다만, 나중에 VSCode로 접속할 것이기 때문에, 귀찮게 이 명령을 타이핑할 이유가 없긴 하다.
wsl -d <new distribution name>
나는 아래와 같이 타이핑 했다.
wsl -d ubuntu01