일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- nodejs
- JavaScript
- error
- docker
- Git
- AWS
- Linux
- unity
- 유니티
- mariadb
- sample
- MSSQL
- build
- 설정
- Kibana
- logstash
- MySQL
- Windows
- elasticsearch
- JS
- Python
- ssh
- ChatGPT
- s3
- 구글
- Ai
- 영어
- 엘라스틱서치
- API
- Today
- Total
가끔 보자, 하늘.
windows 11 linux docker에서 gpu 사용할 수 있는 개발환경 만들기 본문
진행 순서는 "wsl2 활성화 및 linux 설치" -> "기본 시스템 설정"-> "nvidia-docker 설치" 입니다. 윈도우에서 nvidia cuda 및 toolkit은 설치되어 있는 상태라고 가정하게 정리했습니다.
아래 내용을 쭈~~~ㄱ 따라하시면 됩니다. 서술할 내용들이 많이는 없네요. 혹시 보시고 궁금한 내용이 있으면 댓글 남겨두세요. :)
[기본 설치]
* powershell 관리자 모드로 실행
* Windows Subsystem for Linux 기능 활성화
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
* Virtual Machine feature 활성화
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
* Linux 업데이트 커널 패키지 설치
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
* WSL 기본 버전을 WSL2로 지정
> wsl --set-default-version 2
* Microsoft Store에서 Ubuntu 설치
https://apps.microsoft.com/store/detail/ubuntu-20046-lts/9MTTCL66CPXJ?hl=en-us&gl=us
* 실행해보기
> wsl -d Ubuntu-20.04
- 실행된 ubuntu에서 exit하면 빠져나옴. (shutdown이 아님)
* 실행중인 리스트 보기
> wsl -l -v
* wsl shutdown 하기
> wsl --shutdown
* 경로 변경
- wsl 이 설치되는 기본 위치는 C:\Users\[your_account_name]\AppData\Local\Docker\wsl\data에 ext4.vhdx 라는 이름으로 저장됨. ext4.vhdx파일은 지속적으로 용량이 늘어나므로 C 드라이브 보다는 용량이 충분한 드라이브로 이동, 사용하는 것을 추천.
- wsl -l -v 로 모두 shutdown 된 걸 확인
- 기존 파일 시스템 export 시키기
> wsl --export Ubuntu-20.04 d:\linux\Ubuntu-20.04.backup
- 기존 리눅스 삭제
> wsl --unregister Ubuntu-20.04
- 원하는 위치로 import
> wsl --import Ubuntu-20.04 d:\linux\ubuntu d:\linux\Ubuntu-20.04.backup
(참고 링크)
Ubuntu 20.04.6 LTS
https://apps.microsoft.com/store/detail/ubuntu-20046-lts/9MTTCL66CPXJ?hl=en-us&gl=us
Windows subsystem for linux
https://apps.microsoft.com/store/detail/windows-subsystem-for-linux/9P9TQF7MRM4R?hl=en-us&gl=us
[권한 설정 및 네트웍 설정]
* 외부 네트웍 연결
- Hyper V 관리자 활성화
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All(OS 재시작 필요)
- 관리자에서 "가상 스위치 관리자" 실행
- 가상 스위치 중 "WSL"은 내부용으로 설정되어 있음. (WSL이 안보인다면 WSL을 실행 후 다시 확인.)
- "외부 네트워크"로 설정. (이때 기본 OS에서의 네트워크는 중단됨.)
* sudo 권한 추가
> sudo nano /etc/sudoers
- root ALL=(ALL:ALL) ALL 라인 아래에 같은 포멧으로 root 대신 로그인 계정으로 변경해서 추가
* 처음 설치하면 net-tools도 설치 안되어 있고 네트워크 연결 안될 수 있음.
- windows 터미널에서 ipconfig 실행해 wsl에 설정된 ip 확인
- wsl 실행해서 /etc/resolv.conf에 설정된 nameserver값 확인
- nameserver의 값과 ipconfig의 wsl에 할당된 ip가 동일한지 확인
- 만약 다르면
> sudo rm /etc/resolv.conf
> 윈도우 터미널에서 wsl --shutdown
> wsl 재시작
[Docker 설치]
* 기본 설정
> sudo apt-get update
> sudo apt install net-tools
> sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
* GPG key 추가
> curl -fsSL https://download.docker.com/linux/ubuntu/gpg| sudo apt-key add -
* 도커 저장소 설정
> sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu$(lsb_release -cs) stable"
* 도커 엔진 설치 및 시작
> sudo apt-get install -y docker-ce docker-ce-cli containerd.io
> sudo service docker start
* NVidia docker 설치
> distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
- nvidia docker gpgkey 추가
> curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey| sudo apt-key add -
- 저장소 추가
> curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
> sudo apt-get update
- cuda toolkit 설치 및 실행
> sudo apt-get install -y nvidia-container-toolkit
> sudo service docker restart
> sudo docker run --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi
- jupyter notebook 실행
> sudo docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
- 실행된 주피터로 접속
- http://127.0.0.1:8888/?token=9ebd8c7cd61ba849bc49513f49a68379c1b2696d89e70908 와 유사한 형태의 주소가 출력됨
- 디바이스 리스트 보기 코드 실행
> from tensorflow.python.client import device_lib
device_lib.list_local_devices()
이제 설치된 linux에서 서비스를 개발하던 jupyter notebook에서 개발을 하던 하면 됩니다. 좋은 운!! :)
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
Github Copilot Chat 활성화 (0) | 2023.09.26 |
---|---|
Audiocraft (사운드 생성 AI) 사용하기 (0) | 2023.08.25 |
Stable diffusion을 업무에 활용하기 #4 캐릭터 전용 학습 툴 제작기 (0) | 2023.08.03 |
GroundingDINO 설치 썰! (1) | 2023.06.29 |
Postman website에서 request 시도 시 Cloud Agent Error (0) | 2023.05.10 |