-
Notifications
You must be signed in to change notification settings - Fork 7
Nvidia GPU
Основной источник: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#debian-installation
Инструкция и пояснения от Debian: https://wiki.debian.org/NvidiaGraphicsDrivers
Для компиляции драйвера, надо установить заголовки Linux и компилятор gcc:
sudo apt install gcc linux-headers-amd64
Если ядро Linux ставилось из бэкпортов, то и заголовки linux-headers-amd64 тоже надо поставить из бэкпортов.
Загрузить ключ в /etc/apt/keyrings/ (ключ не должен хранится в /etc/apt/trusted.gpg.d, потому что ключи оттуда используются для любых репозиториев, у которых не указан signed-by):
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /etc/apt/keyrings/nvidia.gpg
Прописать репозиторий:
echo "deb [signed-by=/etc/apt/keyrings/nvidia.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /" | sudo tee /etc/apt/sources.list.d/nvidia.list
Обновить список пакетов:
sudo apt update
Если ядро было установлено из бекпортов, то поставить и заголовки для него: sudo apt install linux-headers-$(uname -r)
Установить драйвера:
sudo apt -V install cuda-drivers # закрытая архитектура, подойдет как правило для большинства
# sudo apt -V install nvidia-open # открытая архитектура, для новейшего оборудования (от Turing включительно)
Перезагрузить: sudo reboot
Выполнить действия после установки и перезагрузки:
sudo systemctl restart nvidia-persistenced.service
Проверить, что все установилось и работает:
cat /proc/driver/nvidia/version
nvidia-smi
Удалить драйвера можно командой: sudo apt-get remove --purge nvidia-*
После можно установить CUDA Toolkit:
sudo apt install cuda-toolkit --no-install-recommends
!Внимание! Не путать с пакетом nvidia-cuda-toolkit, который будет установлен из репозиториев Debian и потянет за собой установку драйверов из репозиториев Debian!
Можно установить утилиту ubuntu-drivers, чтобы удобно просмотреть доступные драйвера:
sudo apt install ubuntu-drivers-common
Посмотреть, какие драйвера доступны: sudo ubuntu-drivers list
Установить с помощью этой утилиты можно, но она обычно выбирает не самый свежий драйвер: sudo ubuntu-drivers install
Надо выбрать лучший для себя драйвер, и поставить только серверный пакет, чтобы не ставились всякие интеграции с X Server: sudo apt install nvidia-driver-580-server.
Эта команда, если включена UEFI-загрузка и Secure Boot, потребует обновить MOK-ключ прошивки UEFI при перезагрузке. Если при перезагрузке, ключ не обновили (Enroll key), то драйвер не загрузится и в следующую перезагрузку окно смены ключа MOK не будет показано. Чтобы снова показать это окно при перезагрузке, выполнить: sudo mokutil --import /var/lib/shim-signed/mok/MOK.der. При перезагрузке: выбрать enroll, выбрать ключ, ввести пароль, который ввели при установке пакета (https://askubuntu.com/questions/1122855/mok-manager-nvidia-driver-issue-after-cuda-install).
Установка CUDA: sudo apt install nvidia-cuda-toolkit --no-install-recommends. Без --no-install-recommends, установит 7 Gb пакетов!
После этого, и перезагрузки и обновления MOK-ключа, можно компилировать программы с CUDA.
Создать файл /etc/apt/preferences.d/nvidia со следующим содержимым:
Package: nvidia-*
Pin: version 580.65.06-1
Pin-Priority: 1002
Package: libnv*
Pin: version 580.65.06-1
Pin-Priority: 1002
Package: libnvidia-*
Pin: version 580.65.06-1
Pin-Priority: 1002
Package: libcuda*
Pin: version 580.65.06-1
Pin-Priority: 1002
Package: firmware-nvidia-gsp xserver-xorg-video-nvidia libgles-nvidia1 libgles-nvidia2 libglx-nvidia0 libegl-nvidia0 libxnvctrl0
Pin: version 580.65.06-1
Pin-Priority: 1002
Для закрытых драйверов потребуется: nvidia-drm.modeset=1
В случае, если подключаешь несколько видеокарт, а они глючат после настройки (определенное сообщение в логах при подключении драйвера), то может помочь эта настройка? pci=realloc=off
Штатная утилита (доступна, если установлены драйверы Nvidia): nvidia-smi
Также доступна утилита nvtop (также мониторит видеокарты AMD):
sudo apt install nvtop
Запустить ее:
nvtop
Также есть nvitop (интегрируется с Grafana): https://github.com/XuehaiPan/nvitop
Также можно мониторить в Jupyter Notebook: https://developer.nvidia.com/blog/gpu-dashboards-in-jupyter-lab/
nvidia-smi
lspci | grep -i nvidia
lspci | grep -i vga
sudo dmesg | grep NVRM
Для карт серии RTX 50xx в Linux нужно использовать только открытые драйвера (пакет nvidia-open).
Есть неполадки с 5060 Ti 16 Gb, нужно попробовать новую версию драйвера, но ее нет в репозитории для Debian: https://bbs.archlinux.org/viewtopic.php?id=306310
Если при загрузке ядра в логах есть ошибки вида:
NVRM: This PCI I/O region assigned to your NVIDIA device is invalid:
NVRM: BAR1 is 0M @ 0x0 (PCI:0000:0b.0)
то в параметры запуска ядра нужно прописать pci=realloc, если это не помогло, то pci=realloc=off. Это очень распространённая проблема с распределением ресурсов PCI, то есть с размерами окон памяти и областями, которые требуются устройству PCI (BAR). Изначально они назначаются BIOS, но иногда неправильно или несовместимо, поэтому pci=realloc позволяет ядру изменять области. Источник
Footer is under construction
Sidebar is under construction