Содержание

Nvidia

Установить драйвера без xserver:

sudo apt install nvidia-dkms-550

Установить nvidia-utils (nvidia-smi):

sudo apt install nvidia-utils-550

Если устанавливаются драйвера с официального бинарного файла, то перед установкой:

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

sudo apt install build-essential


После установки драйверов необходимо перегрузиться!

Инструменты

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

Проверить работу драйвера:

docker-compose.yaml

docker-compose.yaml

services:
  cuda:
    image: nvidia/cuda:11.6.1-base-ubuntu20.04
    command: ['nvidia-smi']
    deploy:
      replicas: 1
      resources:
        limits:
          memory: 32m
        reservations:
          devices:
            - capabilities: [gpu]
#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 по умолчанию:

Установить runtime по умолчанию

Установить runtime по умолчанию

sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
sudo systemctl restart docker.service
#или для пользователя
nvidia-ctk runtime configure --runtime=docker --set-as-default --config=$HOME/.config/docker/daemon.json

Пример /etc/docker/daemon.json:

{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
    "default-runtime": "nvidia"
}
#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

Отключить «засыпание» видеокарты

Отключить «засыпание» видеокарты

Использовать cgroupfs напрямую. В /etc/docker/daemon.json:

{
  "exec-opts": ["native.cgroupdriver=cgroupfs"]
}
jq '. += {"exec-opts": ["native.cgroupdriver=cgroupfs"]}' /etc/docker/daemon.json | sudo tee /etc/docker/daemon.json


python

Тесты:

onnxruntime

onnxruntime

pip install onnxruntime-gpu
python -c 'import onnxruntime; print("ONNX Providers:",onnxruntime.get_available_providers())'
ONNX Providers: ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider']

https://pypi.org/project/onnxruntime-gpu/
https://onnxruntime.ai/docs/install/#python-installs

tensorflow

tensorflow

pip install tensorflow[and-cuda]
python -c 'import tensorflow as tf; print("Num GPUs Available: ",len(tf.config.list_physical_devices("GPU")))'
python -c 'import tensorflow as tf; print("CUDA Version: ", tf.test.is_built_with_cuda())'
python -c 'import tensorflow as tf; print("GPU Device Name: ", tf.test.gpu_device_name())'

https://pypi.org/project/tensorflow/
https://www.tensorflow.org/install/pip
https://gist.github.com/raulqf/2d5f2b33549e56a6bb7c9f52a7fd471c

torch

torch

pip install torch torchvision torchaudio
python -c 'import torch; print("CUDA: ", torch.cuda.is_available())'

https://pytorch.org/get-started/locally/


Ссылки

Список поддерживаемого оборудования https://github.com/linuxhw/Drivers/tree/master/nvidia
Open Graphics Drivers https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers