Megosztás a következőn keresztül:


Kezdje el a GPU gyorsítással a ML-ben a WSL használatát

A gépi tanulás (ML) számos fejlesztési munkafolyamat kulcsfontosságú részévé válik. Akár adattudós, gépi tanulási mérnök, akár az ML-vel kezdi a tanulást, a Windows Alrendszer for Linux (WSL) nagyszerű környezetet kínál a gpu által gyorsított, leggyakrabban használt ml-eszközök futtatásához.

Az eszközök beállításának számos különböző módja van. Például az NVIDIA CUDA, a TensorFlow-DirectML és a PyTorch-DirectML mind különböző módokat kínál arra, hogyan használhatod a GPU-dat gépi tanuláshoz a WSL-ben. Ha többet szeretne megtudni az egyik és a másik közötti választás okairól, tekintse meg a GPU gyorsított ml-betanítását.

Ez az útmutató bemutatja a beállítás módját:

  • NVIDIA CUDA, ha NVIDIA grafikus kártyával rendelkezik, és futtat egy ml-keretrendszer-mintatárolót
  • TensorFlow-DirectML és PyTorch-DirectML amd, Intel vagy NVIDIA grafikus kártyán

Előfeltételek

AZ NVIDIA CUDA beállítása a Dockerrel

  1. Az NVIDIA GPU legújabb illesztőprogramjának letöltése és telepítése

  2. Telepítse a Docker Desktopot , vagy telepítse a Docker motort közvetlenül a WSL-ben az alábbi parancs futtatásával:

    curl https://get.docker.com | sh
    sudo service docker start
    
  3. Ha közvetlenül telepítette a Docker-motort, telepítse az NVIDIA tárolóeszközkészletet az alábbi lépéseket követve.

    Állítsa be a stabil adattárat az NVIDIA Container Toolkithez az alábbi parancsok futtatásával:

    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
    

    Telepítse az NVIDIA futtatókörnyezeti csomagjait és függőségeit a parancsok futtatásával:

    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    
  4. Futtasson egy gépi tanulási keretrendszer konténert és mintát.

    Gépi tanulási keretrendszer tárolójának futtatásához és a GPU ezzel az NVIDIA NGC TensorFlow-tárolóval való használatához írja be a következő parancsot:

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

    TensorFlow egy Docker-tárolóban futó CUDA-val

    A parancsok futtatásával futtathat egy előre betanított modellmintát, amely a tárolóba van beépítve:

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

    TensorFlow mintamodell betanítása a Docker-tárolóban

Az NVIDIA CUDA beállításának és felhasználásának további módjai a WSL-alapú NVIDIA CUDA felhasználói útmutatójában találhatók.

TensorFlow-DirectML vagy PyTorch-DirectML beállítása

  1. Töltse le és telepítse a legújabb illesztőprogramot a GPU-gyártók webhelyéről: AMD, Intel vagy NVIDIA.

  2. Python-környezet beállítása.

    Javasoljuk, hogy állítson be egy virtuális Python-környezetet. A virtuális Python-környezetek beállításához számos eszköz használható – ezekhez az utasításokhoz az Anaconda Minicondát fogjuk használni.

    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. Telepítse az Ön által választott DirectML által támogatott gépi tanulási keretrendszert.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    pip install torch-directml
    
  4. Futtasson le egy gyors összeadási mintát interaktív Python-munkamenetben a TensorFlow-DirectML vagy a PyTorch-DirectML segítségével, hogy biztosan minden rendben működjön.

Ha kérdése van, vagy problémákba ütközik, látogasson el a DirectML-adattárba a GitHubon.

Több GPU

Ha több GPU-val rendelkezik a gépen, a WSL-ben is elérheti őket. Azonban egyszerre csak egyet fog tudni elérni. Egy adott GPU kiválasztásához állítsa az alábbi környezeti változót a GPU nevére az eszközkezelőben megjelenő módon:

export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"

Ez egy sztringegyezést fog végrehajtani, így ha az "NVIDIA" értékre állítja, az megegyezik az "NVIDIA"-val kezdődő első GPU-val.

További források