Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Машинное обучение (ML) становится ключевой частью многих рабочих процессов разработки. Независимо от того, являетесь ли вы специалистом по обработке данных, инженером по машинному обучению или начинаете свой путь изучения машинного обучения, подсистема Windows для Linux (WSL) предлагает отличную среду для работы с наиболее распространенными и популярными средствами машинного обучения с ускорением на GPU.
Существует множество различных способов настройки этих средств. Например, NVIDIA CUDA в WSL, TensorFlow-DirectML и PyTorch-DirectML предлагают различные способы использования GPU для машинного обучения с WSL. Дополнительные сведения о причинах выбора одного или другого см. в статье Ускоренное обучение машинного обучения на GPU.
В этом руководстве показано, как настроить:
- NVIDIA CUDA, если у вас есть графический адаптер NVIDIA и запустите пример контейнера ML-фреймворка
- TensorFlow-DirectML и PyTorch-DirectML на графической карте AMD, Intel или NVIDIA
Предпосылки
- Убедитесь, что вы работаете под управлением Windows 11 или Windows 10 версии 21H2 или более поздней.
- Установите WSL и настройте имя пользователя и пароль для дистрибутива Linux.
Настройка NVIDIA CUDA с помощью Docker
Установите Docker Desktop или установите подсистему Docker непосредственно в WSL, выполнив следующую команду.
curl https://get.docker.com | sh
sudo service docker start
Если вы установили подсистему Docker непосредственно, установите набор средств контейнеров NVIDIA , выполнив указанные ниже действия.
Настройте стабильный репозиторий для набора средств контейнеров NVIDIA, выполнив следующие команды:
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
Установите пакеты и зависимости среды выполнения NVIDIA, выполнив следующие команды:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
Запустите контейнер фреймворка машинного обучения и пример.
Чтобы запустить контейнер платформы машинного обучения и начать использовать 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
Вы можете запустить предварительно обученный пример модели, встроенный в этот контейнер, выполнив команды:
cd nvidia-examples/cnn/
python resnet.py --batch_size=64
Дополнительные способы установки и использования NVIDIA CUDA можно найти в руководстве пользователя NVIDIA CUDA в WSL.
Настройка TensorFlow-DirectML или PyTorch-DirectML
Скачайте и установите последний драйвер с веб-сайта поставщиков GPU: AMD, Intel или NVIDIA.
Настройка среды Python.
Рекомендуется настроить виртуальную среду Python. Существует множество средств, которые можно использовать для настройки виртуальной среды Python — для этих инструкций мы будем использовать Anaconda's Miniconda.
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
Установите платформу машинного обучения, поддерживаемую DirectML по вашему выбору.
TensorFlow-DirectML:
pip install tensorflow-directml
PyTorch-DirectML:
sudo apt install libblas3 libomp5 liblapack3
pip install torch-directml
Выполните быстрый пример добавления в интерактивном сеансе Python для TensorFlow-DirectML или PyTorch-DirectML , чтобы убедиться, что все работает.
Если у вас возникли вопросы или возникли проблемы, посетите репозиторий DirectML на GitHub.
Несколько GPU
Если на компьютере есть несколько GPU, вы также можете получить доступ к ним внутри WSL. Однако вы сможете получить доступ только к одному за раз. Чтобы выбрать конкретный GPU, задайте для переменной среды ниже имя GPU, как оно отображается в диспетчере устройств:
export MESA_D3D12_DEFAULT_ADAPTER_NAME="<NameFromDeviceManager>"
Это выполнит строковое совпадение, поэтому если задать значение «NVIDIA», он будет соответствовать первому графическому процессору, который начинается с «NVIDIA».
Дополнительные ресурсы
Windows Subsystem for Linux