запуск nvidia-docker в Windows 10 + WSL2

Я видел несколько вопросов и ответов по этой теме и пробовал оба подхода. Любые советы о том, как действовать по любому маршруту, приветствуются:

Запуск nvidia-docker из WSL2

Я подписался на документы NVIDIA и это руководство. Все устанавливается, и команда docker запускается из Ubuntu 20.04. Однако sudo service docker start возвращает:
docker: unrecognized service

Обновление: это оказывается известной проблемой. Мне удалось установить и запустить докер в Ubuntu, следуя этим инструкциям. Однако в следующий раз я столкнусь с подобной проблемой

$docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Status: Downloaded newer image for nvcr.io/nvidia/k8s/cuda-sample:nbody
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: nvml error: driver not loaded: unknown.
ERRO[0065] error waiting for container: context canceled
  • есть аналогичная проблема для WSL1 здесь, где можно посоветовать установить WSL2. Я сталкиваюсь с тем же самым под WSL2.

Запуск докера NVIDIA из Windows:

Другая школа мысли предлагает удалить докер из WSL Ubuntu. и вместо этого запускает докер Windows. Затем к нему можно подключиться из WSL. Ну, я вообще не могу запустить nvidia-docker из Windows:

$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Unable to find image 'nvcr.io/nvidia/k8s/cuda-sample:nbody' locally
nbody: Pulling from nvidia/k8s/cuda-sample
...
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
  • есть советы, как это исправить здесь, но это все о докере, работающем из Linux. Что не работает (см. Выше).

Кроме того, после удаления докера из ubuntu я все еще могу запускать докер из Ubuntu20.04 или когда я запускаю wsl из Powershell:

$ which docker
/mnt/c/ProgramData/DockerDesktop/version-bin/docker
$ docker 
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.

See https://docs.docker.com/docker-for-windows/wsl/ for details.

Я определенно включил движок на основе WSL2 и включил интеграцию для Ubuntu 20.04 на двух разных вкладках в настройках Docker.

Система

Windows 10
WSL 2
Ubuntu 20.04 within WSL2
Windows Docker with WSL2-based engine and integration enabled

Любая помощь в дальнейшей диагностике приветствуется.


person Dima Lituiev    schedule 14.12.2020    source источник
comment
осталась только одна вещь, которую я не пробовал, кроме вашей, программа предварительной оценки Windows, но терпения не осталось! Спасибо microsoft и nvidia!   -  person Abbas Elmas    schedule 02.04.2021


Ответы (1)


Я думаю, что лучший способ запустить nVidia GPU (CUDA) на WSL2 - это следовать руководству из документации nVidia CUDA на WSL. Вам нужно сделать три вещи правильно и по порядку:

  1. Сначала проверьте свои окна, есть ли обновления, обновите, если они есть. Затем вам необходимо подписаться в программе предварительной оценки Microsoft Windows, в частности, подписаться в Dev Channel (Быстрое кольцо). Убедитесь, что установлен канал разработки, а не канал бета-версии или канал предварительного просмотра. Для меня это была сложная часть: после того, как вы выберете канал Dev, проверьте свою версию Windows, запустив программу (winver) (найдите ее в строке поиска Windows), если она ниже 20145, снова проверьте свои окна на наличие обновлений (вы будете см. в описании обновления версия выше 20145 имеется в наличии). Вам нужно установить его, здесь вам нужно набраться терпения, потому что для загрузки и установки обновления потребуется время, оно попросит вас перезапустить Windows. После перезапуска все готово (вы также заметите некоторые различия в дизайне между двумя версиями окон). Еще раз проверьте свою версию Windows с помощью (winver), чтобы найти ее, она действительно выше 20145.
  2. Затем установите предварительный драйвер NVIDIA для WSL 2, это довольно простой процесс.
  3. Наконец, установите WSL2 из учебника, это тоже довольно просто вперед процесс. Лично я следил за этим youtube из канал Дэвида Бомбала.

После того, как эти три шага выполнены правильно, вы можете следовать руководству nVidia из раздела" Настройка CUDA Toolkit ". Вот еще один документ nVidia, в котором описывается та же проблема, с которой вы столкнулись в главе 8. . Они утверждают, что This error usually indicates that the right Microsoft Windows Insider Preview Builds, WSL 2, NVIDIA drivers and NVIDIA Container Toolkit may not be installed correctly.

Для меня это была моя версия Windows Insider Preview Builds, которая неправильно установлена ​​на версию 20145 или выше.

person Khalil Meftah    schedule 31.12.2020
comment
Вы считаете разумным пройти через все это, чтобы использовать предварительно обученные модели в каталоге nvidia NGC? Я просто хочу протестировать их на своем ноутбуке с Windows с Quadro T1000, прежде чем вкладывать средства в дополнительное оборудование. - person Cazforshort; 22.04.2021
comment
Я бы сказал да. Это вопрос установки в несколько шагов, и все готово. Как вам грустно, это быстрый способ протестировать предварительно обученную модель nvidia на Linux без реального Linux. - person Khalil Meftah; 25.04.2021
comment
Я пытаюсь перейти на канал разработчика, но он продолжает давать сбой. Моя текущая версия - 21H1. Я сбит с толку, и обновление не работает. - person Linminxiang; 26.05.2021
comment
@Linminxiang, честно говоря, не знаю почему. Я не сталкивался с этой ошибкой обновления. - person Khalil Meftah; 28.05.2021
comment
@KhalilMeftah Я успешно обновился после удаления Касперского. И следуйте конфигурации здесь для успешной установки всего. - person Linminxiang; 29.05.2021