В общем случае для любой конкретной версии CUDA потребуется минимальная версия драйвера графического процессора. Это описано в таких местах, как здесь и здесь (таблица 1) . Итак, чтобы использовать CUDA 9.0, вам понадобится как минимум версия драйвера графического процессора, поддерживающая CUDA 9.0, например драйвер R384. Для использования CUDA 10.0 вам потребуется как минимум версия драйвера графического процессора, поддерживающая CUDA 10.0, например драйвер R410.
Использование контейнеров принципиально этого не меняет. Если вы хотите использовать контейнер с кодом CUDA 10, вашей базовой машине потребуется драйвер, поддерживающий CUDA 10.
NVIDIA начала публиковать библиотеки совместимости, которые позволяют вносить изменения в приведенные выше утверждения. Эти библиотеки совместимости доступны, но не устанавливаются по умолчанию при установке набора инструментов CUDA. Эти библиотеки совместимости работают только в определенных случаях, и для их использования предъявляются определенные требования. Библиотеки совместимости задокументированы здесь.
Одно из конкретных требований для использования этих библиотек совместимости заключается в том, что используемые графические процессоры должны быть графическими процессорами марки Tesla. Графические процессоры семейства GeForce, Quadro, Jetson и Titan не поддерживаются этими библиотеками совместимости.
Кроме того, библиотеки работают только с определенной комбинацией версий набора инструментов CUDA и версий драйверов графического процессора, установленных на базовой машине. Эта «матрица совместимости» задокументирована здесь ( Таблица 3). Для совместимости будут использоваться только определенные комбинации версий набора инструментов CUDA с установленными версиями драйверов. Чтобы выбрать один пример, если вы хотите использовать CUDA 10.0, и ваша базовая машина имеет графический процессор Tesla с установленным драйвером R396, поддержка совместимости отсутствует. Однако в той же настройке, если вы хотите использовать CUDA 10.1, для этого есть поддержка совместимости.
Если вы выполнили требования для использования совместимости, то оставшимся шагом будет установка библиотек совместимости (или создайте свой контейнер из базового контейнера, в котором есть библиотеки совместимости уже установлены).
Для метода установки CUDA диспетчера пакетов метод установки библиотек совместимости прост (пример в Ubuntu, установка совместимости с CUDA 10.1 для соответствия установке набора инструментов CUDA 10.1):
sudo apt-get install cuda-compat-10.1
Убедитесь, что версия совпадает с версией инструментария CUDA, который вы используете (который вы установили с помощью метода диспетчера пакетов или который уже был установлен в вашем контейнере).
Этот «путь» совместимости начался только во временном интервале CUDA 9.0. Системы, оснащенные драйверами, предшествующими CUDA 9.0, не будут использоваться каким-либо образом для этого пути совместимости. Существуют также различные функциональные ограничения и ограничения, которые описаны в документации а>.
Когда этот «путь совместимости» правильно установлен и используется, общая конфигурация системы может «выглядеть» как нарушающая правила, указанные в верхней части этого ответа. Например, приложение CUDA 10.1 могло быть запущено на машине, на которой был установлен только драйвер R396.
Для конкретного вопроса, рассматриваемого здесь, OP в конечном итоге указал, что базовая машина имеет графический процессор Quadro, поэтому этот «путь совместимости» не применяется, и это единственный способ запустить, например контейнер CUDA 10.0 будет, если на базовой машине установлен драйвер с поддержкой CUDA 10.0, например Драйвер R410 или новее.
person
Robert Crovella
schedule
13.07.2019