начало работы с ускорением GPU для ML в WSL

Машинное обучение (ML) становится ключевой частью многих рабочих процессов разработки. Независимо от того, являетесь ли вы специалистом по обработке и анализу данных, ML инженером или началом обучения с помощью ML подсистема Windows для Linux (WSL) предлагает отличную среду для работы с наиболее распространенными и популярными средствами ускорения ML GPU.

Существует множество различных способов настройки этих средств. Например, NVIDIA CUDA в WSL, TensorFlow-DirectML и PyTorch-DirectML предлагают различные способы использования GPU для ML с WSL. Дополнительные сведения о причинах выбора одного или другого см. в статье с ускорением GPU ML обучения.

В этом руководстве показано, как настроить:

  • NVIDIA CUDA, если у вас есть графический адаптер NVIDIA и запуск примера контейнера платформы ML
  • TensorFlow-DirectML и PyTorch-DirectML на графической карте AMD, Intel или NVIDIA

Предварительные требования

Настройка NVIDIA CUDA с помощью Docker

  1. Скачивание и установка последнего драйвера для GPU NVIDIA

  2. Установите Docker Desktop или установите подсистему Docker непосредственно в WSL, выполнив следующую команду:

    curl https://get.docker.com | sh
    
  3. Если вы установили подсистему Docker напрямую, установите контейнер NVIDIA набор средств, выполнив приведенные ниже действия.

    Настройте стабильный репозиторий для набор средств контейнера NVIDIA, выполнив следующие команды:

    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
    

    Установите пакеты и зависимости среды выполнения NVIDIA, выполнив следующие команды:

    sudo apt-get update
    
    sudo apt-get install -y nvidia-docker2
    
  4. Запустите контейнер и пример платформы машинного обучения.

    Чтобы запустить контейнер платформы машинного обучения и начать использовать GPU с этим контейнером NVIDIA NGC TensorFlow, введите следующую команду:

    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

    Вы можете запустить предварительно обученный пример модели, встроенный в этот контейнер, выполнив команды:

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

    TensorFlow sample model training within Docker container

Дополнительные способы настройки и использования NVIDIA CUDA можно найти в руководстве пользователя NVIDIA CUDA в WSL.

Настройка TensorFlow-DirectML или PyTorch-DirectML

  1. Скачайте и установите последний драйвер с веб-сайта поставщиков GPU: AMD, Intel или NVIDIA.

  2. Настройка среды Python.

    Рекомендуется настроить виртуальную среду Python. Существует множество средств, которые можно использовать для настройки виртуальной среды Python. Для выполнения этих инструкций мы будем использовать Miniconda в 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. Установите платформу машинного обучения, поддерживаемую DirectML по своему усмотрению.

    TensorFlow-DirectML:

    pip install tensorflow-directml
    

    PyTorch-DirectML:

    sudo apt install libblas3 libomp5 liblapack3
    
    pip install pytorch-directml
    
  4. Запустите пример быстрого добавления в интерактивном сеансе Python для TensorFlow-DirectML или PyTorch-DirectML , чтобы убедиться, что все работает.

Если у вас возникли вопросы или возникли проблемы, посетите репозиторий DirectML на GitHub.

Дополнительные ресурсы