Мой последовательный переезд с CentOS на Debian дошел до инсталляций с GPU.
Для начала проверим, что видеокарт у нас установлена:
lspci -nn | egrep -i "3d|display|vga" 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3090] [10de:2204] (rev a1)
На Debian Nvidia можно поставить 2 способами:
1. Через стандартный пакетный менеджер.
Сразу оговорюсь, что в 535.183.01 у меня Ollama отказалась работать под docker.
Подробная инструкция по установке доступна в wiki.
Для моей системы это ссылка: https://wiki.debian.org/NvidiaGraphicsDrivers#Version_535.183.01-1
Не забываем установить исходник ядра (об этом написано в начале wiki):
apt install -t buster-backports linux-image-amd64 apt install linux-headers-$(uname -r)
Добавляем репозитарий:
cat /etc/apt/sources.list # Debian Bookworm deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
Устанавливаем драйвер:
apt install nvidia-driver firmware-misc-nonfree
В теории на данном этапе можно попробовать установить кастовую версию драйвера:
apt install nvidia-driver-XXX
Доставляем по инструкции nvidia-container-toolkit если собираемся работать с GPU из docker:
(https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | 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' | \ tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list apt install -y nvidia-docker2 apt-get install -y nvidia-container-toolkit nvidia-ctk runtime configure --runtime=docker systemctl restart docker
Если этого не сделать, то скорее всего у вас будет ошибка:
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
Проверяем:
docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi или nvidia-container-cli -k -d /dev/tty info
Следующая команда поможет удалить все установленные компоненты, если что-то пошло не так и вам понадобился второй способ:
apt-get remove --purge '^nvidia-.*' apt-get remove --purge '^libnvidia-.*' apt-get remove --purge '^cuda-.*'
2. Установка драйверов Nvidia с официального сайта:
Способ считается менее предпочтительным, так как драйвер самостоятельно не обновляются.
Но по мне предоставляет более широкий выбор версий драйверов.
- Проходим по ссылке: https://www.nvidia.com/en-us/drivers/unix/
- Скачиваем драйвер под вашу архитектуру:
У меня завелась следующая версия — NVIDIA-Linux-x86_64-570.144.run - Аналогично инструкции не забываем установить исходник ядра
- Аналогично инструкции выше доставляем nvidia-container-toolkit
- Производим проверку.
Пример оформления docker-compose.yml, например для Ollama:
services: ollama: image: ollama/ollama:0.6.8 container_name: ollama.loc hostname: ollama.loc ports: - 7869:7869 - 11434:11434 volumes: - /mnt/data/app/ollama/code:/code - /mnt/data/app/ollama/.ollama:/root/.ollama deploy: resources: reservations: devices: - driver: nvidia capabilities: [gpu] count: all tty: true restart: always environment: - OLLAMA_KEEP_ALIVE=24h - OLLAMA_HOST=0.0.0.0