Attività iniziali con accelerazione GPU per ML in WSL

Machine Learning (ML) sta diventando una parte fondamentale di molti flussi di lavoro di sviluppo. Sia che tu sia un data scientist, ML ingegneria o che inizi il tuo percorso di apprendimento con ML il sottosistema Windows per Linux (WSL) offre un ambiente ottimale per eseguire gli strumenti più comuni e popolari della GPU accelerati ML.

Esistono molti modi diversi per configurare questi strumenti. Ad esempio, NVIDIA CUDA in WSL, TensorFlow-DirectML e PyTorch-DirectML offrono modi diversi per usare la GPU per ML con WSL. Per altre informazioni sui motivi per la scelta di uno rispetto all'altro, vedere Training accelerato della GPU ML.

Questa guida illustra come configurare:

  • NVIDIA CUDA se si dispone di una scheda grafica NVIDIA ed eseguire un esempio ML contenitore framework
  • TensorFlow-DirectML e PyTorch-DirectML sulla scheda grafica AMD, Intel o NVIDIA

Prerequisiti

Configurazione di NVIDIA CUDA con Docker

  1. Scaricare e installare il driver più recente per la GPU NVIDIA

  2. Installare Docker Desktop o installare il motore Docker direttamente in WSL eseguendo il comando seguente

    curl https://get.docker.com | sh
    
  3. Se il motore Docker è stato installato direttamente, installare il contenitore NVIDIA Toolkit seguendo la procedura seguente.

    Configurare il repository stabile per il contenitore NVIDIA Toolkit eseguendo i comandi seguenti:

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    

    Installare i pacchetti di runtime NVIDIA e le dipendenze eseguendo i comandi:

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. Eseguire un contenitore e un esempio del framework di Machine Learning.

    Per eseguire un contenitore del framework di Machine Learning e iniziare a usare la GPU con questo contenitore TensorFlow NVIDIA NGC, immettere il comando:

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

    TensorFlow with CUDA running inside a Docker container

    È possibile eseguire un esempio di modello pre-sottoposto a training integrato in questo contenitore eseguendo i comandi:

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

    TensorFlow sample model training within Docker container

Altri modi per configurare e usare NVIDIA CUDA sono disponibili nella Guida utente NVIDIA CUDA in WSL.

Configurazione di TensorFlow-DirectML o PyTorch-DirectML

  1. Scaricare e installare il driver più recente dal sito Web dei fornitori di GPU: AMD, Intel o NVIDIA.

  2. Configurare un ambiente Python.

    È consigliabile configurare un ambiente Python virtuale. Sono disponibili molti strumenti che è possibile usare per configurare un ambiente Python virtuale: per queste istruzioni si userà Il Miniconda di 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. Installare il framework di Machine Learning supportato da DirectML a scelta.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install pytorch-directml
    
  4. Eseguire un esempio di aggiunta rapida in una sessione Python interattiva per TensorFlow-DirectML o PyTorch-DirectML per assicurarsi che tutto funzioni.

Se si verificano domande o problemi, visitare il repository DirectML in GitHub.

Risorse aggiuntive