[Docker]윈도우에서 GPU로 학습하기

hugingstar·2023년 8월 7일
0
post-thumbnail

나는 윈도우에서 도커를 개발하고 있었다. 그런데 컨테이너는 우분투로 작동하는 컨테이너를 만들고 싶었다. 그리고 텐서플로우 모델을 학습하는 기능까지 넣고 싶어서 컨테이너에서도 GPU를 인식할 수 있도록 설정해주고 싶었다.
마침 선구자님이 있으셔서 그 과정을 따라하며 나의 상황에 맞게 정리하고자 한다.

결론 : 이 글은 WSL 상에서 컨테이너를 실행하면 윈도우에 있는 GPU를 인식할 수 있도록한다.

1.WSL 및 Ubuntu 설치 (Ubuntu 18.04.6 LTS 설치)

  1. Powershell을 관리자 모드로 실행한다.

  2. Windows Subsystem for Linux 기능을 활성화 한다.
    (아래의 명령어를 작성한다.)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

3.WSL2 사용을 위해 Virtual Machine 활성화

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  1. 리눅스 업데이트 커널 패키지 설치
    (아래의 출처 사이트에서 1.4 부분을 참고하여 설치)

  2. WSL 기본버전을 WSL2로 지정하면, 시스템 성능이 향상되고 호환성이 좋아진다.

wsl --set-default-version 2

6.Microssoft store에서 Ubuntu(WSL) 설치 완료
(18.04.6 LTS 버전이 있으므로 그것을 설치, 유저이름과 비번 설정)

사용자이름과 비밀번호를 입력
(이 과정이 완료되면 Ubuntu(WSL)과 WSL2 설치가 완료된다.)

2.NVIDIA 그래픽 드라이버 설치하기

  1. 자기 상황에 맞는 시리즈 선택하고, 다운로드

3.Ubuntu 열기 및 Service 명령 권한 설정

1.visudo 구동

sudo visudo
  1. service 권한을 모든 사람으로 설정
(1) 맨 아래에 작성
%sudo ALL=NOPASSWD: /usr/sbin/service
(2) Ctrl + o 입력 후, Enter key눌러 저장
(3) Ctrl + x 를 눌러 밖으로 나가기
  1. Docker 설치
  2. 패키지 업데이트
sudo apt-get update
  1. 패키지중 https를 통해 데이터 및 패키지를 접근하는 패키지 등을 설치
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

3.Docker의 GPG Key 추가
(인용구 : GPG는 툴과 소스를 배포할 때 프로그램 변조를 검사할 수 있는 소프트웨어라는 의미)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

OK 메시지 확인
  1. 안정화된 Docker 저장소를 설정한다.
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5.도커 엔진 설치

sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo service docker start
sudo docker run hello-world

6.NVIDIA-Docker 설치

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

# nvidia-docker의 gpg 키 추가
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

OK 메시지 확인

# 패키지 저장소 추가
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  1. 설치 가능한 cuda-toolkit 설치하기
    (**이 컨테이너가 활성화되어 있어야 GPU를 인식할 수 있다.)
sudo apt-get update
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

작동 잘되는 것을 확인했다.

  1. Jupyter 연결된 tensorflow gpu 버전 컨테이너 실행해서 작동하는지 확인하기
sudo docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter

잘 실행되는 것을 확인했으면, 실제로 윈도우에서 내가 만들었던 컨테이너를 배포해보자

출처 : inthecode.log(https://velog.io/@inthecode/Windows-10WSL%EC%97%90%EC%84%9C-Docker%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-Tensorflow-GPU%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0)

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기