В этом посте я покажу вам, как сделать GPU доступными для контейнеров CUDA/Machine Learning, работающих на хосте Fedora.
Прежде чем двигаться дальше, я сделаю следующие предположения.
- Вы уже установили Docker на свой хост Fedora. Если вам нужно установить Docker на Fedora, воспользуйтесь следующим ресурсом: https://docs.docker.com/engine/install/fedora/
- У вас установлены драйверы NVIDIA и CUDA на хосте Fedora. Если вам необходимо установить драйверы NVIDIA и CUDA на Fedora, воспользуйтесь следующим ресурсом: https://rpmfusion.org/Howto/NVIDIA
Теперь приступим к установке NVIDIA Container Toolkit.
- Сначала мы настраиваем репозиторий и ключ GPG:
distribution=rhel9.0 curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2. Затем мы устанавливаем пакет nvidia-container-toolkit
(и зависимости) после обновления листинга пакета:
sudo dnf clean expire-cache --refresh sudo dnf install -y nvidia-container-toolkit
3. Затем настройте демон Docker для распознавания NVIDIA Container Runtime:
sudo nvidia-ctk runtime configure --runtime=docker
4. Перезапустите демон Docker, чтобы завершить установку после установки среды выполнения по умолчанию:
sudo systemctl restart docker
На этом этапе рабочую настройку можно протестировать, запустив базовый контейнер CUDA:
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
Это должно привести к выводу консоли, как показано ниже:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla T4 On | 00000000:00:1E.0 Off | 0 | | N/A 34C P8 9W / 70W | 0MiB / 15109MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
Графические процессоры теперь доступны внутри контейнеров для использования.
Источники:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#id2