"Но я уже умею ставить дрова видеокарты себе на комп": на машинах с 8x A100 используется хитрая виртуализация GPU, простые способы установить на них nvidia-driver обычно не работают или работают нестабильно.
до установки важно поставить сделать sudo apt update
и чтобы update закончился без ошибок. Если видишь ошибки - исправляй ошибки, пока update не завершится успешно.
Проверьте sudo apt list nvidia-driver* nvidia-fabricmanager* nvidia-fabricmanager-dev* libnvidia-nscq*
Эта команда должна вывести в списке свежие версии nvidia-driver и nvidia-fabricmanager. Нужная вам версия должна совпадать у driver и fabricmanager хотя бы до первых трёх чисел. Например, эти версии совпадают:
nvidia-driver-530/unknown,now 530.30.02-0ubuntu1 amd64
nvidia-fabricmanager-530/unknown,unstable,now 530.30.02-1 amd64
nvidia-fabricmanager-dev-530/unknown,unstable 530.30.02-1 amd64
libnvidia-nscq-530/unknown,unstable 530.30.02-1 amd64
Запомните название пакетов до слэша "/" . В примере выше - nvidia-driver-530 nvidia-fabricmanager-530 nvidia-fabricmanager-dev-530 libnvidia-nscq-530
Что делать, если в списке нет нужной мне версии? Добавляем пакеты от более свежей версии убунту. Например, вот так добавить драйвера из списков убунты 20 — даже если на сервере стоит более ранняя убунта. Гуглите ссылки с тем же префиксом от нвидии)
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
apt-get update
После этого перепроверьте список sudo apt list nvidia-driver* nvidia-fabricmanager* nvidia-fabricmanager-dev*
, там должны появиться новые версии
sudo apt purge nvidia* libnvidia* cuda*
- после успешного purge вот эта команда sudo dpkg -l | grep nvidia — не должна найти модулей с nvidia в названии
Если purge почему-то не отработал, дальше продолжать нельзя. Что делать тогда?
Если команда говорит, что ничего не нашла — возможно, что в драйверов на машине нет или они стоят не через APT. Если на машине не стоит драйверов - переходите к следующей части "Установка".
Если пакеты есть, но поставлены не через APT - их нужно удалить так, как их поставили. Если ставили официальным установщиком - запустите установщик с флагом --uninstall (https://askubuntu.com/questions/219942/how-to-uninstall-manually-installed-nvidia-drivers). Если хрен знает, как - можно удалить через dpkg
sudo dpkg -l | grep nvidia # returns a list of installed packages
sudo dpkg --purge PACKAGE_NAME_FROM_PREVIOUS_LINE
Когда purge отработал, нужно остановить уже запущенные драйвера. Самый простой способ - ребутнуть машину,
более сложный - || если вы знаете, что делаете - rmmod nvidia (при этом по пути следует сделать rmmode на зависимые сервисы, типа nvidia-drm). Если вы все сделали правильно, команда rmmod nvidia скажет, что такой модуль не загружен || - если сомневаетесь, лучше ребутайтесь.
После этого не выполняйте nvidia-smi/nvtop и никак не трогайте видеокарту, пока не закончите инструкцию . Если потрогали - начинайте сначала.
Устанавливаем четыре пакета из списка "запомните название пакетов" (часть 1)
sudo apt install nvidia-driver-530 nvidia-fabricmanager-530 nvidia-fabricmanager-dev-530 libnvidia-nscq-530
sudo systemctl enable nvidia-fabricmanager
После этого перезагружаем машину.
Как проверить, что всё хорошо:
-
sudo dpkg -l | grep nvidia
— должны быть пакеты одной версии -
systemctl status nvidia-fabricmanager
должен быть active. Если там есть ошибка - исправляем, если остановлен - systemctl start nvidia-fabricmanager
ставим gpu-enabled torch / jax и выполняем какие-то вычисления на GPU. Например, умножаем случайные чиселки
Если вы всё сделали правильно, на вашей машине стоит nvidia-driver
. Но не стоит CUDA.
Для большинства задач этого достаточно - официальные torch/jax содержат CUDA внутри себя, им не нужно отдельно что-то ставить.
Но если вы хотите писать свои кернелы или собирать cuda-библиотеки из исходников — иногда бывает удобно поставить CUDA на всю систему. (Но даже тогда это необязательно, можно накатить cudatoolkit-dev из анаконды и пользоваться им)
Если вы хотите поставит CUDA, скачайте установщик с официального сайта, соответствующий вашей версии драйвера до первой точки (или чуть более старый).
Для этого ищем страницу типа такой (https://developer.nvidia.com/cuda-12-2-0-download-archive?target_os=Linux&target_arch=x86_64), возможно для какой-то более новой версии CUDA. Проходим там по инструкци для local installer, получаем ссылку. Например, такую:
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
ПЕРЕД ЗАПУСКОМ - оно вам предложит установить 1) драйвер 2) cuda и ещё всякую фигню. Вам строго_обязательно нужно отключить установку драйвера. Во время установки снять галочку. Если не сняли и оно сломало вам драйвер - удаляйте драйвер и sudo apt install nvidia-driver-530
sudo sh cuda_12.1.0_530.30.02_linux.run # НЕ ЗАБЫВАЕМ УБРАТЬ ГАЛКУ С УСТАНОВКИ ДРАЙВЕРА
после этого у вас есть куда в /usr/local/cuda-*
-- или в другом месте, если вы вручную указали другой путь.
Последний штрих - поставить CUDNN
Для этого идём сюда и качаем версию под вашу CUDA. Возможно придётся зарегистрировать аккаунт nvidia.
Как скачали архив - заливаем на сервер, распаковываем содержимое в аналогичные папки из /usr/local/cuda-*
(для вашей конкретной версии CUDA)