Вопрос или проблема
Установка напрямую из стандартных репозиториев Ubuntu. Драйвер 535.216.03. Насколько я понимаю, версия Cuda, отображаемая в выводе nvidia-smi, это версия, совместимая с драйвером? Это правильно?
Является ли это несоответствие проблемой? Снова, установка напрямую из репозиториев Ubuntu, а не из репозиториев Nvidia. Должен ли я искать более старый драйвер, совместимый с 12.1?
/usr/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.216.03 Driver Version: 535.216.03 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Tesla T4 On | 00000000:02:00.0 Off | 0 |
| N/A 33C P8 9W / 70W | 2MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 Tesla T4 On | 00000000:43:00.0 Off | 0 |
| N/A 29C P8 8W / 70W | 2MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
Ответ или решение
Когда речь заходит об использовании CUDA и NVIDIA драйверов на операционной системе Ubuntu, обычно возникают вопросы о совместимости версий драйверов и инструментов. Проблема, которую вы описываете, связана с несовпадением версий CUDA, отображаемых разными инструментами — nvidia-smi
и nvcc
. Давайте рассмотрим это детально.
Теория
В выводе nvidia-smi
отображается версия CUDA, с которой ваша текущая версия драйвера совместима. Он показывает, что драйвер версии 535.216.03 совместим с CUDA 12.2. Однако, инструмент nvcc
, который является компилятором CUDA, показывает, что текущая установленная версия CUDA — 12.1. Это несовпадение может сбивать с толку, особенно если вы устанавливаете пакеты из стандартных репозиториев Ubuntu, где, как правило, устанавливаются версии, которые разработчики Ubuntu считают наиболее стабильными.
Совместимость CUDA версий между драйвером и компилятором CUDA важна для правильной работы и производительности приложений. Версия CUDA, отображаемая в nvidia-smi
, – это максимальная версия, которую поддерживает установленный драйвер. Компилятор CUDA (nvcc) показывает текущую установленную версию, которая у вас есть на системе.
Пример
Ваш случай выглядит следующим образом: ваш драйвер версии 535.216.03 поддерживает CUDA 12.2, но в системе установлена версия компилятора CUDA 12.1. Это может вызвать некоторую неуверенность относительно того, будет ли ваше программное обеспечение корректно работать, если оно требует специфических функций CUDA 12.2. Однако, в большинстве случаев, драйвера NVIDIA обратно совместимы с более старыми версиями CUDA, что означает, что программы, скомпилированные с использованием CUDA 12.1, должны работать на драйверах, поддерживающих CUDA 12.2.
Применение
-
Проверка установленных пакетов: Проверьте, какие пакеты CUDA и драйвера NVIDIA установлены в вашей системе. Вы можете это сделать при помощи команд
dpkg --list | grep nvidia
иdpkg --list | grep cuda
. Это даст представление о конфигурации вашей системы. -
Стабильность или новые функции: Если ваша работа не требует функций, введенных в CUDA 12.2, а вы не наблюдаете никаких проблем в вашей текущей конфигурации, вы можете оставить все как есть. Ваша система, по всем показателям, должна работать нормально.
-
Обновление или откат: Если вы хотите унифицировать версии для устранения диссонанса или использовать новые функции CUDA 12.2, рассмотрите обновление инструментов CUDA до версии 12.2. Либо, если важно подобрать драйвер, полностью совместимый с CUDA 12.1, найдите более старую версию драйвера, например, из официальных архивов NVIDIA, которая будет поддерживать именно этот набор инструментов.
-
Установка из других источников: Поскольку вы устанавливаете из стандартных репозиториев Ubuntu, возможно, имеет смысл проверить официальные репозитории NVIDIA. NVIDIA предоставляет официальный репозиторий, где вы можете найти более новые версии драйверов и инструментов CUDA, которые могут быть лучше синхронизированы.
-
Проверка функциональности: Проверьте ваш код и взаимодействие с GPU, чтобы убедиться, что производительность и корректность результатов не страдают. Используйте тесты и эталонные приложения для этого. Если функции выполняются без ошибок и с ожидаемой производительностью, ситуация, скорее всего, допустима.
Важным аспектом работы с инструментами CUDA и драйверами NVIDIA является понимание того, что драйверы часто поддерживают старые версии CUDA. Это означает, что ваша текущая установка обычно будет работать, даже если версии могут не совпадать идеально. Однако для максимизации производительности и функциональности стоит держать ваши инструменты и драйвера обновленными и синхронизированными, чтобы соответствовать вашим задачам и требованиям.