Драйвер — компонент взаимодействия ОС с устройством. GPU software stack шире: приложение зависит также от runtime, библиотек и скомпилированного кода. Успешная загрузка драйвера не проверяет всю эту комбинацию.
Почему это важно
Установленный toolkit, обнаруженная GPU и успешно загруженная библиотека — разные промежуточные результаты. Для рабочего запуска нужен исполняемый код, подходящий устройству и драйверу, а затем проверка выделения памяти, вычисления и получения корректного результата. Таблица версий полезнее общей отметки «CUDA есть».
Что подтверждено
CUDA различает driver API, runtime API и используемые приложением библиотеки. Эти компоненты имеют собственные версии и правила совместимости; наличие одного из них не устанавливает версии и пригодность остальных.
Граница применимости: CUDA 12.6, программные интерфейсы и versioning; точные версии конкретного установленного окружения здесь не задаются.
CUDA compute capability характеризует вычислительные возможности и особенности архитектуры GPU. Это не версия CUDA Toolkit: номер установленного инструментария и номер аппаратных возможностей относятся к разным контрактам.
Граница применимости: CUDA 12.6, compute capability и программная совместимость; без вывода актуального списка поддержанных устройств.
Версия CUDA Toolkit не доказывает версию драйвера, фактически загруженного операционной системой. Сведения о runtime и поддержке driver API получают отдельно; по номеру компилятора нельзя автоматически установить возможности работающего драйвера.
Граница применимости: CUDA 12.6, раздельное версионирование компонентов; минимальные номера драйверов и правила специальных compatibility packages не утверждаются.
CUDA может включать в приложение машинный код для выбранных GPU targets и промежуточный PTX для последующей компиляции. Набор включённых targets, доступный PTX и возможности драйвера влияют на возможность запуска на конкретной GPU.
Граница применимости: CUDA 12.6, binary compatibility, PTX и JIT; это не гарантия, что любое старое или новое приложение запустится на любом устройстве.
Обратная совместимость driver API не означает произвольную совместимость всех пар версий. Из возможности нового драйвера выполнять ранее собранное приложение нельзя вывести, что старый драйвер поддерживает любые новые функции нового CUDA-приложения.
Граница применимости: Правила versioning CUDA 12.6; точные допустимые сочетания и специальные режимы совместимости сверяют отдельно, без выдуманного универсального минимума версии драйвера.
Обнаружение устройства — только один этап проверки стека. Для требуемой операции отдельно проверяют выделение памяти, запуск подходящего kernel, его завершение и результат; успешное перечисление GPU не исполняет эту работу вместо приложения.
Граница применимости: Редакторский smoke-test на основе операций устройства и runtime CUDA и рекомендаций по проверке результата; это не полный тест качества или производительности сервиса.
Воспроизводимый запуск связывает точную GPU с версиями драйвера, runtime, библиотек и исполняемого кода, а затем проверяет целевую операцию. Если меняется один компонент, прежний успешный тест не доказывает поведение новой комбинации.
Граница применимости: Редакторская процедура приёмки конкретной комбинации; не утверждение о том, что любое обновление обязательно нарушает совместимость.
Не путать
GPU — физическое устройство с аппаратными возможностями, а стек определяет доступный приложению программный путь. Подходящее устройство может остаться неработоспособным для конкретного приложения, если его код или программные компоненты не подходят друг другу.
Что проверить
- Зафиксируйте точную модель GPU и её compute capability.
- Получите отдельно версии загруженного драйвера, runtime, toolkit и библиотек.
- Проверьте GPU targets и наличие подходящего PTX в исполняемом артефакте.
- Сверьте правила совместимости для требуемых функций, а не только общее название CUDA.
- Выполните выделение памяти, запуск kernel и ожидание завершения с проверкой ошибок.
- Сопоставьте вычисленный результат с заранее известным ожидаемым результатом.
- Сохраните состав окружения вместе с тестом и повторяйте проверку после его изменения.
Первоисточники
CUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCUDA C++ Best Practices Guide
NVIDIA · CUDA C++ Best Practices Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникWhat is a Driver?
Microsoft · Windows Driver documentation, updated 30 October 2025
Определяет driver как software component между OS и device и показывает layered driver stacks.
Открыть первоисточникNVIDIA Ampere GPU Architecture Tuning Guide
NVIDIA · NVIDIA Ampere GPU Architecture Tuning Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник