Sdílet prostřednictvím


Začněte s akcelerací GPU pro strojové učení ve WSL

Strojové učení (ML) je klíčovou součástí mnoha vývojových pracovních postupů. Bez ohledu na to, jestli jste odborníkem na data, inženýrem STROJOVÉho učení nebo zahájením studijního programu, nabízí subsystém Windows pro Linux (WSL) skvělé prostředí pro spouštění nejběžnějších a nejoblíbenějších nástrojů ML s akcelerovanými GPU.

Tyto nástroje můžete nastavit mnoha různými způsoby. Například NVIDIA CUDA ve WSL, TensorFlow-DirectML a PyTorch-DirectML nabízejí různé způsoby použití GPU pro ML s WSL. Další informace o důvodech volby jednoho a druhého najdete v tématu trénování STROJOVÉho učení s akcelerovaným GPU.

Tato příručka vám ukáže, jak nastavit:

  • NVIDIA CUDA, pokud máte grafickou kartu NVIDIA a spustíte ukázkový kontejner architektury ML
  • TensorFlow-DirectML a PyTorch-DirectML na grafické kartě AMD, Intel nebo NVIDIA

Požadavky

Nastavení NVIDIA CUDA pomocí Dockeru

  1. Stažení a instalace nejnovějšího ovladače pro NVIDIA GPU

  2. Nainstalujte Docker Desktop nebo nainstalujte modul Docker přímo ve WSL spuštěním následujícího příkazu:

    curl https://get.docker.com | sh
    sudo service docker start
    
  3. Pokud jste nainstalovali modul Docker přímo, nainstalujte sadu NVIDIA Container Toolkit podle následujících kroků.

    Spuštěním následujících příkazů nastavte stabilní úložiště pro sadu 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
    

    Spuštěním příkazů nainstalujte balíčky a závislosti modulu runtime NVIDIA:

    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    
  4. Spusťte kontejner a ukázku architektury strojového učení.

    Pokud chcete spustit kontejner architektury strojového učení a začít používat GPU s tímto kontejnerem NVIDIA NVIDIA TENSorFlow, zadejte příkaz:

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

    TensorFlow s CUDA spuštěným v kontejneru Dockeru

    Spuštěním příkazů můžete spustit předem natrénovanou ukázku modelu, která je součástí tohoto kontejneru:

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

    Trénování ukázkového modelu TensorFlow v rámci kontejneru Dockeru

Další způsoby, jak získat nastavení a využívat NVIDIA CUDA, najdete v uživatelské příručce NVIDIA CUDA na WSL.

Nastavení TensorFlow-DirectML nebo PyTorch-DirectML

  1. Stáhněte a nainstalujte nejnovější ovladač z webu dodavatelů GPU: AMD, Intel nebo NVIDIA.

  2. Nastavení prostředí Pythonu

    Doporučujeme nastavit virtuální prostředí Pythonu. Existuje mnoho nástrojů, které můžete použít k nastavení virtuálního prostředí Pythonu – pro tyto pokyny použijeme Miniconda společnosti 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. Nainstalujte architekturu strojového učení podporovanou rozhraním DirectML podle vašeho výběru.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    pip install torch-directml
    
  4. Spusťte ukázku rychlého přidání v interaktivní relaci Pythonu pro TensorFlow-DirectML nebo PyTorch-DirectML , abyste měli jistotu, že všechno funguje.

Pokud máte dotazy nebo narazíte na problémy, navštivte úložiště DirectML na GitHubu.

Více GPU

Pokud máte na počítači více GPU, můžete k nim přistupovat také v rámci WSL. Ale budete mít přístup jenom k jednomu najednou. Pokud chcete zvolit konkrétní GPU, nastavte proměnnou prostředí níže na název GPU, jak se zobrazí ve Správci zařízení:

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

Tím se řetězec porovná, takže pokud ho nastavíte na NVIDIA, bude odpovídat prvnímu GPU, který začíná na "NVIDIA".

Další zdroje