다음을 통해 공유


WSL에서 ML을 위한 GPU 가속을 시작하세요

ML(기계 학습)은 많은 개발 워크플로의 핵심 부분이 되고 있습니다. 데이터 과학자, ML 엔지니어 또는 ML을 사용하여 학습 여정을 시작하는 경우 WSL(Windows Subsystem for Linux)은 가장 일반적이고 인기 있는 GPU 가속 ML 도구를 실행할 수 있는 좋은 환경을 제공합니다.

이러한 도구를 설정하는 방법에는 여러 가지가 있습니다. 예를 들어 WSL, TensorFlow-DirectMLPyTorch-DirectMLNVIDIA CUDA는 모두 WSL에서 ML용 GPU를 사용할 수 있는 다양한 방법을 제공합니다. 하나와 다른 항목을 선택하는 이유에 대해 자세히 알아보려면 GPU 가속 ML 학습을 참조하세요.

이 가이드에서는 다음을 설정하는 방법을 보여줍니다.

  • NVIDIA 그래픽 카드가 있고 샘플 ML 프레임워크 컨테이너를 실행하는 경우 NVIDIA CUDA
  • AMD, Intel 또는 NVIDIA 그래픽 카드의 TensorFlow-DirectML 및 PyTorch-DirectML

필수 조건

Docker를 사용하여 NVIDIA CUDA 설정

  1. NVIDIA GPU용 최신 드라이버 다운로드 및 설치

  2. 다음 명령을 실행하여 Docker Desktop 을 설치하거나 WSL에서 직접 Docker 엔진을 설치합니다.

    curl https://get.docker.com | sh
    
    sudo service docker start
    
  3. Docker 엔진을 직접 설치한 경우 아래 단계에 따라 NVIDIA 컨테이너 도구 키트를 설치 합니다.

    다음 명령을 실행하여 NVIDIA Container Toolkit에 대한 안정적인 리포지토리를 설정합니다.

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

    명령을 실행하여 NVIDIA 런타임 패키지 및 종속성을 설치합니다.

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. 기계 학습 프레임워크 컨테이너 및 샘플을 실행합니다.

    기계 학습 프레임워크 컨테이너를 실행하고 이 NVIDIA NGC TensorFlow 컨테이너에서 GPU 사용을 시작하려면 다음 명령을 입력합니다.

    docker run --gpus all -it --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/tensorflow:20.03-tf2-py3
    

    Docker 컨테이너 내에서 실행되는 CUDA를 사용하는 TensorFlow

    다음 명령을 실행하여 이 컨테이너에 기본 제공되는 미리 학습된 모델 샘플을 실행할 수 있습니다.

    cd nvidia-examples/cnn/
    
    python resnet.py --batch_size=64
    

    Docker 컨테이너 내에서 TensorFlow 샘플 모델 학습

NVIDIA CUDA를 설치하고 활용하는 추가 방법은 WSL 사용자 가이드의 NVIDIA CUDA에서 찾을 수 있습니다.

TensorFlow-DirectML을 설정하거나 PyTorch-DirectML을 설정하세요.

  1. GPU 공급업체 웹 사이트 (AMD, Intel 또는 NVIDIA)에서 최신 드라이버를 다운로드하여 설치합니다.

  2. Python 환경을 설정합니다.

    가상 Python 환경을 설정하는 것이 좋습니다. 가상 Python 환경을 설정하는 데 사용할 수 있는 많은 도구가 있습니다. 이러한 지침에서는 Anaconda의 Miniconda를 사용합니다.

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    
    bash Miniconda3-latest-Linux-x86_64.sh
    
    conda create --name directml python=3.7 -y
    
    conda activate directml
    
  3. 원하는 DirectML에서 지원되는 기계 학습 프레임워크를 설치합니다.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install torch-directml
    
  4. TensorFlow-DirectML 또는 PyTorch-DirectML에 대한 대화형 Python 세션에서 빠른 추가 샘플을 실행하여 모든 것이 작동하는지 확인합니다.

질문이 있거나 문제가 발생하는 경우 GitHub의 DirectML 리포지토리를 방문하세요.

여러 GPU

컴퓨터에 여러 GPU가 있는 경우 WSL 내에서 액세스할 수도 있습니다. 그러나 한 번에 하나씩만 액세스할 수 있습니다. 특정 GPU를 선택하려면 디바이스 관리자에 표시되는 GPU 이름으로 아래 환경 변수를 설정하세요.

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

이렇게 하면 문자열 일치가 수행되므로 "NVIDIA"로 설정하면 "NVIDIA"로 시작하는 첫 번째 GPU와 일치합니다.

추가 리소스