Comenzar con aceleración de GPU para ML en WSL

El aprendizaje automático (ML) se está convirtiendo en una parte clave de muchos flujos de trabajo de desarrollo. Tanto si es científico de datos, ingeniero de ML como si va a comenzar su recorrido de aprendizaje con ML la Subsistema de Windows para Linux (WSL) ofrece un entorno excelente para ejecutar las herramientas de ML aceleradas por GPU más comunes y populares.

Hay muchas maneras diferentes de configurar estas herramientas. Por ejemplo, NVIDIA CUDA en WSL, TensorFlow-DirectML y PyTorch-DirectML ofrecen diferentes formas de usar la GPU para ML con WSL. Para más información sobre los motivos para elegir uno frente a otro, consulte Entrenamiento acelerado por GPU ML.

En esta guía se muestra cómo configurar:

  • NVIDIA CUDA si tiene una tarjeta gráfica NVIDIA y ejecuta un contenedor de ML framework de ejemplo
  • TensorFlow-DirectML y PyTorch-DirectML en la tarjeta gráfica AMD, Intel o NVIDIA

Requisitos previos

Configuración de NVIDIA CUDA con Docker

  1. Descarga e instalación del controlador más reciente para la GPU de NVIDIA

  2. Instale Docker Desktop o instale el motor de Docker directamente en WSL mediante la ejecución del siguiente comando.

    curl https://get.docker.com | sh
    
  3. Si instaló el motor de Docker directamente, instale nvidia Container Toolkit siga estos pasos.

    Configure el repositorio estable para la Toolkit de contenedor nvidia ejecutando los siguientes comandos:

    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
    

    Instale los paquetes y dependencias en tiempo de ejecución de NVIDIA mediante la ejecución de los comandos:

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. Ejecute un contenedor y un ejemplo de marco de aprendizaje automático.

    Para ejecutar un contenedor del marco de aprendizaje automático y empezar a usar la GPU con este contenedor nvidia NGC TensorFlow, escriba el 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

    Puede ejecutar un ejemplo de modelo entrenado previamente integrado en este contenedor mediante la ejecución de los comandos:

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

    TensorFlow sample model training within Docker container

Puede encontrar otras formas de configurar y usar NVIDIA CUDA en la Guía del usuario de NVIDIA CUDA en WSL.

Configuración de TensorFlow-DirectML o PyTorch-DirectML

  1. Descargue e instale el controlador más reciente desde el sitio web de proveedores de GPU: AMD, Intel o NVIDIA.

  2. Configuración de un entorno de Python.

    Se recomienda configurar un entorno de Python virtual. Hay muchas herramientas que puede usar para configurar un entorno de Python virtual; para estas instrucciones, usaremos Miniconda de 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. Instale el marco de aprendizaje automático respaldado por DirectML de su elección.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install pytorch-directml
    
  4. Ejecute un ejemplo de adición rápida en una sesión interactiva de Python para TensorFlow-DirectML o PyTorch-DirectML para asegurarse de que todo funciona.

Si tiene preguntas o tiene problemas, visite el repositorio de DirectML en GitHub.

Recursos adicionales