자세한 PDF버전을 다운하실래요?
- 예의 환경: Ubuntu 16.04 + NVIDIA Titan X 2대
자신의 환경에 맞게 각 단계를 유동적으로 수정해 주세요. 운영체제에 따라 각 툴의 설치 방법이 다를 수 있습니다.
그리고 윈도우는 도커 컨테이너에서 GPU를 쓸 수 없습니다.
cuda 11.0 설치
- 운영체제에 맞게 CUDA를 설치하세요. 이 예는 CUDA 11.0을 우분투에 설치합니다.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-ubuntu1604.pin
sudo mv cuda-ubuntu1604.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda
nvidia-smi
cuda version conflict 해결
- 기존 CUDA가 돌고 있던 상황이면 라이브러리가 충돌할 것입니다.
- 돌아가던 커널 모듈을 해제해 주세요.
# nvidia 커널 모듈이 사용하는 프로세스 목록을 본다
sudo lsof /dev/nvidia*
# 해당 프로세스들을 모두 죽인다
sudo kill -9 process_id
# 커널 모듈을 종료한다
sudo rmmod nvidia_drm, nvidia_modeset, nvidia_uvm, nvidia
# 잠시 후, 혹은 reboot한 다음 cuda 11 버전으로 동작하는지 확인하자
nvidia-smi
docker 설치
- 인공지능 학습에 쓸 쥬피터 노트북 서버를 도커로 구축하겠습니다.
sudo apt install curl
sudo apt update
curl -fsSL https://get.docker.com/ | sudo sh
#도커가 설치되면 재부팅하자
reboot
docker nvidia-container-toolkit 설치
- 도커 컨테이너에서 GPU와 CUDA를 쓸 수 있도록 해주는 패치입니다.
- 이 패치에 관하여
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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 && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
xentai/cu101-torch-notebook 컨테이너 실행
- 쥬피터 노트북을 8888번 포트로 서비스 합시다.
xentai/torch-cu101-notebook
이미지를 사용합니다. 이 이미지에 관하여
# 8888번 포트를 뚫는다
sudo ufw allow 8888
docker run --name aistudy -d -it -p "8888:8888" -e "pass=쥬피터접속비번" -v "볼륨절대경로:/jupyter-root" --gpus all xentai/torch-cu101-notebook
- 컨테이너의 환경입니다
- Python3
- Pytorch cuda10.1 라이브러리
- Jupyter-notebook 구동
Jupyter-notebook 접속
- 컨테이너가 실행되면
http://공인IP:8888
로 접속합니다. - 노트북 로그인 화면에서 docker run 때 설정했던 비밀번호를 입력합니다.
'컴퓨터공학 > 분산시스템' 카테고리의 다른 글
[AWS][Networking][강의노트] IPv6, VPC 요약정리 (0) | 2022.02.24 |
---|---|
[AWS][Networking][강의노트] VPN, DX, Endpoint Service, Transit Gateway, Traffic Mirroring (0) | 2022.02.24 |
[AWS][Networking][강의노트] VPC 보안 및 심화 기능 (0) | 2022.02.23 |
[AWS][Networking][강의노트] VPC 개요 (0) | 2022.02.23 |
[AWS][Security][강의노트] 보안 관련 서비스들 (0) | 2022.02.23 |