В этой истории я поделюсь своим опытом настройки nvidia-docker2 с GPU на WSL2 в windows 11.
Вы спросите, зачем я это делаю? Какова мотивация? Что ж, как игрок и изучающий машинное обучение, я не хочу тратить деньги на создание еще одной современной машины DL, когда у меня есть не так уж плохая игровая машина, ни двойная система, ни грязное программное обеспечение в Окна. Мне нравится nvidia-docker2 в Ubuntu, но я не хочу использовать Ubuntu на своей игровой машине. Потом нашел это — WSL + Nvidia-docker2.
В основном я шел по этой ссылке https://docs.nvidia.com/cuda/wsl-user-guide/index.html, и вот мои шаги.
WSL2
- Проверьте, установлен ли у вас WSL2 с поддерживаемой версией.
- Если вы используете Windows 11, вам больше не нужно участвовать в программе предварительной оценки Windows, чтобы использовать WSL. Обратитесь к системным требованиям Windows11.
- Дополнительные сведения см. в руководстве Рекомендации по настройке среды разработки WSL.
- Обновите WSL до последней версии
- Откройте терминал с правами администратора.
wsl --update
Драйвер Windows CUDA для WSL
- Загрузите драйвер NVIDIA для Windows из раздела загрузок на странице CUDA on WSL.
- Установите драйвер с помощью исполняемого файла на компьютере с Windows. Драйвер дисплея Windows установит как обычные компоненты драйвера для родной Windows, так и для поддержки WSL. Это единственный драйвер, который необходимо установить.
Настройка CUDA в системе WSL Linux
- Запустите систему WSL, например Ubuntu
$ wsl -d Ubuntu
- В Ubuntu выполните следующие команды, чтобы получить CUDA
$ sudo apt-get update $ sudo apt-get upgrade -y $ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin $ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 $ sudo dpkg -i cuda-repo-wsl-ubuntu-11-4-local_11.4.0-1_amd64.deb $ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-4-local/7fa2af80.pub $ sudo apt-get update $ sudo apt-get -y install cuda
Настройка Nvidia-докер
- Далее следует установить докер и настроить nvidia-docker2.
$ curl https://get.docker.com | sh $ 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 $ sudo apt-get update $ sudo apt-get install -y nvidia-docker2
Запустите контейнер Jupyter и проверьте устройство GPU
- Проверить состояние работы докера
$ sudo service docker stop $ sudo service docker start
- Запустите блокнот Jupyter, замените ‹путь к проектам в Windows› полным путем к любой папке в вашей системе Windows. Например, `/mnt/d/projects`
$ sudo docker run -v /mnt/<path to projects in windows>:/tf/projects --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
- Откройте ссылку, показанную в выводе, и создайте блокнот, введите
import tensorflow as tf device_name = tf.test.gpu_device_name() if device_name != '/device:GPU:0': raise SystemError('GPU device not found') print('Found GPU at: {}'.format(device_name))
Результат будет: