[Docker] WSL 에서 CUDA, nvidia-docker 설치 (Ubuntu 20.04)

leehs·2022년 6월 9일
2
post-thumbnail

이 문서에서는 WSL2 Ubuntu 환경에 Nvidia GPU 를 Docker 컨테이너 상에서 사용할 수 있도록,

  • Windows 의 최신 nvidia 그래픽 드라이버 설치
  • wsl 전용 nvidia cuda 설치
  • nvidia-docker 설치

위 방법들을 공식 문서를 참조해 안내합니다.


공식 문서:


준비 사항:

docker가 설치된 wsl 환경

  • docker version, docker ps 명령어로 docker 설치 확인
  • nvidia-smi 명령어로 nvidia driver 설치 확인

최신 Nvidia driver 설치

https://www.nvidia.com/Download/index.aspx?lang=en-us


설치 단계:

CUDA 설치

  • WSL CUDA 드라이버 설치

    # 이전 버전 설치한 경우
    sudo apt-key del 7fa2af80
    
    # pin 추가
    wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
    sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
    
    # cuda 패키지 다운로드 및 등록
    wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
    # 설치 후 키 추가 명령어 실행할 것
    sudo dpkg -i cuda-repo-wsl-ubuntu-11-7-local_11.7.0-1_amd64.deb
    
    # 패키지 저장소 업데이트
    sudo apt-get update
    
    # cuda 패키지 설치
    sudo apt-get -y install cuda
    

Nvidia-docker 설치

  • 최신 버전 확인: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html

  • 요구 사항 확인 (2022/06/09 기준)

    • Linux x86_64, 커널 버전 3.10 이상
    • Docker 19.03 이상 권장 / 최소 1.12
    • NVIDIA GPU Kepler 아키텍쳐 이상
    • NVIDIA Linux 드라이버 418.81.07 이상
  • GPG 키 추가

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
        && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
        && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
              sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
              sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • 설치

    # 패키지 저장소 업데이트
    sudo apt-get update
    
    # nvidia-docker2 설치
    sudo apt-get install -y nvidia-docker2
    
    # docker 재시작
    # wsl 환경이므로 systemctl restart docker 는 안됨
    service docker restart
    
  • 확인

    • daemon.json 에 설정 확인
    • nvidia 도커 실행
     docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

테스트:

  • 벤치마크
     docker run --rm --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

0개의 댓글