Udostępnij za pośrednictwem


Rozpocznij przyspieszenie GPU dla uczenia maszynowego w środowisku WSL

Uczenie maszynowe staje się kluczową częścią wielu przepływów pracy programistycznych. Niezależnie od tego, czy jesteś naukowcem danych, inżynierem ML, czy dopiero zaczynasz swoją podróż z uczeniem maszynowym, Podsystem Windows dla systemu Linux (WSL) oferuje doskonałe środowisko do uruchamiania najczęściej stosowanych i cieszących się popularnością narzędzi uczenia maszynowego przyspieszonych przez GPU.

Istnieje wiele różnych sposobów konfigurowania tych narzędzi. Na przykład NVIDIA CUDA w WSL, TensorFlow-DirectML i PyTorch-DirectML oferują różne sposoby używania GPU do uczenia maszynowego w WSL. Aby dowiedzieć się więcej na temat powodów wyboru jednej z nich, zobacz Przyspieszone trenowanie uczenia maszynowego z procesorem GPU.

W tym przewodniku pokazano, jak skonfigurować:

  • NVIDIA CUDA, jeśli masz kartę graficzną NVIDIA i uruchamiasz przykładowy kontener platformy ML
  • TensorFlow-DirectML i PyTorch-DirectML na karcie grafiki AMD, Intel lub NVIDIA

Wymagania wstępne

Konfigurowanie funkcji NVIDIA CUDA przy użyciu platformy Docker

  1. Pobierz i zainstaluj najnowszy sterownik dla procesora GPU FIRMY NVIDIA

  2. Zainstaluj Docker Desktop lub zainstaluj silnik Docker bezpośrednio w WSL, uruchamiając następujące polecenie

    curl https://get.docker.com | sh
    
    sudo service docker start
    
  3. Jeśli silnik Docker został zainstalowany bezpośrednio, zainstaluj zestaw narzędzi NVIDIA Container Toolkit, postępując zgodnie z poniższymi krokami.

    Skonfiguruj stabilne repozytorium dla zestawu narzędzi NVIDIA Container Toolkit, uruchamiając następujące polecenia:

    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
    

    Zainstaluj pakiety i zależności środowiska uruchomieniowego FIRMY NVIDIA, uruchamiając polecenia:

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. Uruchamianie kontenera i przykładu platformy uczenia maszynowego.

    Aby uruchomić kontener platformy uczenia maszynowego i rozpocząć korzystanie z procesora GPU za pomocą tego kontenera NVIDIA NGC TensorFlow, wprowadź polecenie:

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

    TensorFlow z funkcją CUDA działającą wewnątrz kontenera platformy Docker

    Możesz uruchomić wstępnie wytrenowany przykład modelu wbudowany w ten kontener, uruchamiając polecenia:

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

    Trenowanie przykładowego modelu TensorFlow w kontenerze platformy Docker

Dodatkowe sposoby konfigurowania i korzystania z funkcji NVIDIA CUDA można znaleźć w podręczniku użytkownika narzędzia NVIDIA CUDA w systemie WSL.

Konfigurowanie TensorFlow-DirectML lub PyTorch-DirectML

  1. Pobierz i zainstaluj najnowszy sterownik ze strony internetowej dostawców procesorów GPU: AMD, Intel lub NVIDIA.

  2. Konfigurowanie środowiska języka Python.

    Zalecamy skonfigurowanie wirtualnego środowiska języka Python. Istnieje wiele narzędzi, których można użyć do skonfigurowania wirtualnego środowiska języka Python — na potrzeby tych instrukcji użyjemy Miniconda od Anaconda.

    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. Zainstaluj strukturę uczenia maszynowego wspieraną przez wybrany język DirectML.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install torch-directml
    
  4. Uruchom szybki przykład dodawania w interaktywnej sesji w języku Python dla biblioteki TensorFlow-DirectML lub PyTorch-DirectML, aby upewnić się, że wszystko prawidłowo działa.

Jeśli masz pytania lub napotkasz problemy, odwiedź repozytorium DirectML w witrynie GitHub.

Wiele procesorów GPU

Jeśli masz wiele procesorów GPU na maszynie, możesz również uzyskać do nich dostęp w programie WSL. Jednak dostęp do nich będzie można uzyskiwać tylko pojedynczo. Aby wybrać określoną GPU, ustaw poniższą zmienną środowiskową na nazwę GPU, jak jest wyświetlana w menedżerze urządzeń.

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

Spowoduje to dopasowanie ciągu znaków, więc jeśli ustawisz go na "NVIDIA", dopasuje pierwszą GPU rozpoczynającą się od "NVIDIA".

Dodatkowe zasoby