Содержание
Nvidia
Установить драйвера без xserver:
для современных видеокарт от 50XX:
sudo apt install nvidia-dkms-580-server-open
для старых:
sudo apt install nvidia-dkms-580
Установить nvidia-utils (nvidia-smi) без UI утилит:
sudo apt install nvidia-utils-580-server
Если устанавливаются драйвера с официального бинарного файла, то перед установкой:
После установки драйверов необходимо перегрузиться!
Инструменты
GUI панель инструментов:
sudo apt install nvidia-settings
Консольный nvtop:
sudo apt install nvtop
docker
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
Установить NVIDIA Container Toolkit (предоставляет контейнерам прямой доступ к хост ресурсам: видеокарте, драйверу, бинарникам):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt update sudo apt install -y nvidia-container-toolkit
Настроить NVIDIA Container Toolkit (изменится /etc/docker/daemon.json):
sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker #или для пользователя nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
Проверить работу драйвера:
#without setting the default-runtime in /etc/docker/daemon.json #CONTAINER docker run --rm --runtime=nvidia nvidia/cuda:11.6.1-base-ubuntu20.04 nvidia-smi docker run --rm --gpus all ubuntu nvidia-smi #COMPOSE docker compose -p cuda up docker compose -p cuda down
Проверить работу драйвера с установленным nvidia runtime по умолчанию:
#SERVICE docker service create --replicas 1 --name cuda nvidia/cuda:11.6.1-base-ubuntu20.04 sleep 3600 docker service rm cuda #TEST docker exec $(docker ps -q -f name=cuda) nvidia-smi #CONTAINER docker run --rm -e NVIDIA_VISIBLE_DEVICES=all ubuntu nvidia-smi
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/docker-specialized.html
https://nvidia.github.io/libnvidia-container/
https://hub.docker.com/r/nvidia/cuda/tags
Отключить GPU:
docker run --rm --runtime runc nvidia/cuda:11.6.1-base-ubuntu20.04 nvidia-smi docker run --rm -e NVIDIA_VISIBLE_DEVICES=none nvidia/cuda:11.6.1-base-ubuntu20.04 nvidia-smi
kubernetes
https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/overview.html - NVIDIA GPU Operator
Для поиска оборудования развернуть модуль обнаружения Node Feature Discovery/NFD на все ноды:
helm -n node-feature-discovery upgrade --create-namespace --install node-feature-discovery node-feature-discovery --repo https://kubernetes-sigs.github.io/node-feature-discovery/charts \ --set-json worker.tolerations='[{ "operator": "Exists", "effect": "NoSchedule"}]'
Установить gpu operator (отключить встроенный NFD, включить DCGM Exporter, добавить tolerations ко всем нодам для daemonsets):
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia helm repo update nvidia helm -n gpu-operator upgrade --create-namespace --install gpu-operator nvidia/gpu-operator --set nfd.enabled=false --set dcgmExporter.serviceMonitor.enabled=true \ --set-json daemonsets.tolerations='[{ "key": "sku", "operator": "Equal", "value": "gpu", "effect": "NoSchedule"}]'
https://github.com/NVIDIA/gpu-operator/blob/main/deployments/gpu-operator/values.yaml
python
Тесты:
Ссылки
Список поддерживаемого оборудования https://github.com/linuxhw/Drivers/tree/master/nvidia
Open Graphics Drivers https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers
CUDA images https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md
