Вопрос или проблема
У моего ноутбука есть 2 графические карты, нечто очень похожее на: https://www.linuxbabe.com/desktop-linux/switch-intel-nvidia-graphics-card-ubuntu.
Я бы хотел, чтобы графическая карта Intel использовалась только для отображения, а графическая карта NVidia – для тяжелых вычислений (GPGPU).
Мои вопросы:
- Мне все еще нужно устанавливать драйвер NVidia? Кажется, что драйвер только для отображения? Так что, обязательно ли устанавливать драйвер NVidia, если я НЕ планирую использовать карту NVidia для отображения?
- Без драйвера NVidia смогут ли работать сторонние библиотеки? Например, Tensorflow и т.д.? Из https://docs.nvidia.com/deploy/cuda-compatibility/index.html явно написано, что:
Чтобы создать приложение, разработчику необходимо установить только набор инструментов CUDA и необходимые библиотеки, требуемые для компоновки.
Для запуска приложения CUDA система должна иметь GPU с поддержкой CUDA и драйвер дисплея NVIDIA, совместимый с набором инструментов CUDA, который использовался для создания самого приложения.
Мне кажется:
- Для запуска приложения CUDA мне нужно установить драйвер NVidia, который активирует графическую карту NVidia.
- Однако драйвер NVidia предназначен для отображения. Чтобы его использовать, мне нужно использовать графическую карту NVidia для отображения, а не использовать карту Intel для отображения???
Извините за мой наивный вопрос. Как-то концептуально запутался… Жду ответа.
Драйвер nvidia
необходим для любого использования GPU, в то время как для отображения вам нужно загрузить как nvidia_drm
, так и nvidia_modeset
, или, по крайней мере, это так на моей машине. Просто добавление их в черный список при загрузке с помощью файла /etc/modprobe.d/
предотвращает загрузку графического стека, но CUDA работает хорошо.
На самом деле, это трюк, который я использую, чтобы предотвратить зависимость драйвера drm
(который используется для отображения, насколько я знаю) от nvidia
и тем самым позволяя перезагрузить последний без цепочки зависимостей, когда выходят новые версии.
Это особенно полезно на сервере, где дисплей обеспечивается встроенным BMC и (вероятно) ваш GPU не имеет никаких выходов.
Похоже, что графическая карта NVidia может использоваться для вычислений CUDA, пока я не включаю ее для отображения.
Если вы используете ноутбук, вам нужно использовать технологию “optimus/prime”, чтобы сделать то, что вы хотите, как упоминается в связанной статье. Драйвер nvidia решает (с вашим участием), какую графическую карту использовать. Вам это необходимо, потому что у ноутбука есть только один выход для дисплея, и необходима какая-то координация между драйверами.
Ответ или решение
Чтобы настроить ноутбук с двумя графическими картами (Intel для отображения и NVIDIA для GPGPU) под управлением Ubuntu 22.04, необходимо учитывать несколько ключевых аспектов. В данном руководстве мы рассмотрим получение необходимого программного обеспечения и правильную конфигурацию для достижения желаемой производительности.
1. Установка драйвера NVIDIA
Да, вам необходимо установить драйвер NVIDIA, даже если вы планируете использовать графическую карту NVIDIA исключительно для GPGPU задач. Драйверы NVIDIA позволяют обеспечить взаимодействие между вашей системой и графическим процессором, чем бы он ни использовался. На сайте NVIDIA ясно заявлено, что для запуска CUDA-приложений требуется как CUDA Toolkit, так и соответствующий драйвер.
Таким образом, несмотря на то, что драйверы в основном ассоциируются с отображением, они также необходимы для работы библиотек, таких как TensorFlow, которые зависят от CUDA. Если вы не установите драйвер NVIDIA, ваш высокопроизводительный графический процессор будет бесполезен для вычислений.
2. Конфигурация зонтирования драйверов
Для ноутбуков, которые используют технологию NVIDIA Optimus, управление активными графическими картами становится важным. Вам потребуется использовать механизм Prime
, чтобы выбирать, какая из графических карт будет активна для отображения. Это делается через настройки драйвера NVIDIA, и вам необходимо будет выполнить следующее:
-
Установка драйвера NVIDIA:
Откройте терминал и выполните:
sudo apt update sudo apt install nvidia-driver-<последняя_версия>
Замените
<последняя_версия>
на актуальную версию драйвера. Вы можете узнать о доступных версиях, выполнивapt search nvidia-driver
. -
Настройка PRIME:
После установки драйвера, вам нужно будет настроить PRIME. Используйте
nvidia-settings
для выбора нужной графической карты.В терминале выполните:
sudo nvidia-settings
В интерфейсе выберите вкладку "PRIME Profiles" и установите "NVIDIA (Performance Mode)". Это активирует ваш графический процессор NVIDIA.
-
Запрет на использование драйвера NVIDIA для отображения:
Если вы хотите использовать NVIDIA только для вычислений, необходимо запретить загрузку дисплейных модулей драйвера. Это можно сделать, добавив следующие строки в файл
/etc/modprobe.d/blacklist.conf
:blacklist nvidia_drm blacklist nvidia_modeset
Это позволит вашему Intel GPU обрабатывать вывод изображения, в то время как NVIDIA останется доступной для вычислительных задач.
3. Использование CUDA
-
Установка CUDA Toolkit:
Следующим шагом будет установка CUDA, что даст вам возможность использовать GPU для вычислений. Вы можете скачать последнюю версию CUDA с официального сайта NVIDIA.
Установите необходимые компоненты:
sudo apt install cuda
-
Установка библиотек:
После установки CUDA вы можете устанавливать и использовать другие библиотеки, такие как TensorFlow, Keras и другие, которые поддерживают CUDA. Для TensorFlow вы можете установить его, используя pip:
pip install tensorflow --upgrade
Убедитесь, что у вас установлены нужные зависимости для CUDA, чтобы гарантировать совместимость.
Заключение
Таким образом, для правильной настройки Ubuntu 22.04 с одной графической картой Intel для отображения и NVIDIA для GPGPU, вам необходимо установить драйвера и настроить их должным образом. Не забывайте следить за совместимостью версий драйверов и CUDA Toolkit в процессе работы. Следуя этим шагам, вы сможете эффективно использовать вычислительные возможности вашего NVIDIA GPU, не ограничивая функционал вашего Intel GPU.