В этом посте я покажу вам, как сделать GPU доступными для контейнеров CUDA/Machine Learning, работающих на хосте Fedora.

Прежде чем двигаться дальше, я сделаю следующие предположения.

  1. Вы уже установили Docker на свой хост Fedora. Если вам нужно установить Docker на Fedora, воспользуйтесь следующим ресурсом: https://docs.docker.com/engine/install/fedora/
  2. У вас установлены драйверы NVIDIA и CUDA на хосте Fedora. Если вам необходимо установить драйверы NVIDIA и CUDA на Fedora, воспользуйтесь следующим ресурсом: https://rpmfusion.org/Howto/NVIDIA

Теперь приступим к установке NVIDIA Container Toolkit.

  1. Сначала мы настраиваем репозиторий и ключ 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