В среде Linux, особенно при работе с гибридными графическими системами или серверами, вопрос о том, какая именно видеокарта выполняет вычисления, часто стоит остро. В отличие от Windows, где статус устройств виден на глаз, в командной строке необходимо использовать специализированные инструменты для получения точной информации о активном устройстве и загрузке GPU.
Понимание того, как определить активный GPU, критично для настройки игровых сценариев, рендеринга и машинного обучения. Ошибочное использование встроенной графики вместо дискретной может привести к падению производительности в применяемых приложениях или некорректной работе нейросетей.
В этой статье мы разберем универсальные методы проверки, которые работают на большинстве дистрибутивов, от Ubuntu до Arch Linux. Вы узнаете, как отличить встроенное ядро от дискретного запуска и как проверить, какой драйвер сейчас обслуживает видеоподсистему вашей системы.
Базовая диагностика через lspci и lsmod
Первым шагом в любой диагностике Linux является проверка наличия оборудования в системе. Универсальная утилита lspci позволяет вывести список всех подключенных периферийных устройств, включая графические адаптеры, что является фундаментом для дальнейших действий.
lspci | grep -i vga
lspci | grep -i 3d
Эти команды отфильтруют вывод, показав только устройства, связанные с видео. Вы увидите модель видеокарты, её производителя и класс устройства (VGA compatible controller или 3D controller). Если система не видит устройство вообще, проблема может быть в физическом подключении или настройках BIOS/UEFI.
Для более детального анализа загруженных модулей ядра используйте команду lsmod в связке с поиском по имени драйвера. Это покажет, какие именно драйверы (например, nvidia, amdgpu или i915) активны в данный момент.
lsmod | grep -E'nvidia|nouveau|amdgpu|i915'
Наличие строки в выводе означает, что ядро загрузило соответствующий модуль. Отсутствие модуля при наличии устройства в lspci часто указывает на необходимость ручной установки драйверов или конфликта версий ядра.
Проверка статуса драйверов NVIDIA с помощью nvidia-smi
Если в вашей системе установлена дискретная видеокарта от NVIDIA, наиболее информативным инструментом является nvidia-smi. Эта утилита предоставляет детальную информацию о состоянии GPU, загрузке памяти, температуре и версии драйвера.
nvidia-smi
Вывод команды представляет собой таблицу, где вверху указан GPU, его модель, версия драйвера и версия CUDA. В нижней части отображается список процессов, использующих устройство. Если команда возвращает ошибку"command not found", значит драйверы не установлены или путь к утилите не добавлен в переменную окружения.
Для проверки переключаемости в системах с Nvidia Prime (оптимизация энергопотребления) полезно использовать nvidia-smi pstate или утилиту nvidia-settings. Они покажут, находится ли карта в режиме высокой производительности или в режиме энергосбережения.
⚠️ Внимание: Утилита nvidia-smi может не работать корректно, если установлен драйвер с открытым исходным кодом Nouveau. Для полноценной диагностики необходима установка проприетарного драйвера от вендора.
Анализ работы AMD и Intel через рендеринг
В системах с видеокартами AMD и Intel ситуация часто осложняется использованием стека Mesa и открытых драйверов. Для проверки того, какая карта занимается рендерингом, используется утилита glxinfo, входящая в пакет mesa-utils.
glxinfo | grep"OpenGL renderer"
Эта команда покажет строку, описывающую рендерер OpenGL. Если вы видите название модели дискретной карты (например, Radeon RX 6800 или RX 7900 XTX), значит активна именно она. Если же там упоминается Mesa Intel UHD, то рендеринг происходит на встроенном ядре.
Для AMD также актуален вывод команды radeontop или rocm-smi (для карт серии Instinct и некоторых Radeon), которые показывают загрузку ядер и использование видеопамяти. Это особенно важно при работе с задачами машинного обучения.
Особенности драйверов AMD
Современные карты AMD (RX 6000/7000) используют драйвер amdgpu, который вшит в ядро Linux. Старые карты могут требовать драйвер radeon. Утилита glxinfo является самым надежным способом проверки активации правильного драйвера без установки дополнительного ПО.
Использование графических интерфейсов и системных мониторов
Не все пользователи Linux предпочитают командную строку. Многие современные дистрибутивы предоставляют визуальные инструменты для мониторинга аппаратного обеспечения. Утилита nvtop является аналогом htop, но специализируется на графических процессорах.
nvtop
Интерфейс nvtop отображает загрузку GPU, использование памяти и температуру в реальном времени. Он поддерживает карты NVIDIA, AMD и Intel. Это отличный способ визуально убедиться, что дискретная карта задействована при запуске тяжелых приложений.
Также можно использовать системные мониторы GNOME или KDE. В разделе"Видео" или"Аппаратное обеспечение" они часто показывают название активного адаптера. Однако, точность такой информации зависит от версии компонентов окружения рабочего стола.
☑️ Проверка конфигурации графической системы
Настройка приоритета GPU в гибридных системах
В ноутбуках и рабочих станциях с двумя видеокартами (например, Intel + NVIDIA) система по умолчанию использует встроенную графику для экономии энергии. Чтобы переключиться на дискретную карту, необходимо изменить настройки в prime-select или optimus-manager.
Для переключения на NVIDIA в Ubuntu-подобных системах используется команда:
sudo prime-select nvidia
После ввода пароля и перезагрузки система будет использовать дискретный GPU по умолчанию. Для возврата к интегрированной графике выполняется аналогичная команда с параметром intel или on-demand (для режима гибридного рендеринга).
Таблица основных утилит для диагностики GPU
Ниже приведена сводная таблица инструментов, которые помогут вам быстро определить статус видеокарты в различных сценариях использования.
| Утилита | Поддерживаемые бренды | Основное назначение |
|---|---|---|
lspci |
Все | Базовое обнаружение устройств |
nvidia-smi |
NVIDIA | Статус драйвера и памяти |
glxinfo |
NVIDIA, AMD, Intel | Проверка активного рендерера OpenGL |
nvtop |
NVIDIA, AMD, Intel | Мониторинг нагрузки в реальном времени |
radeon-top |
AMD | Детальный мониторинг GPU AMD |
Правильный выбор инструмента зависит от вашей задачи: для быстрой проверки достаточно lspci, а для глубокого анализа производительности необходим nvtop или nvidia-smi. Комбинация этих утилит дает полную картину состояния видеоподсистемы.
⚠️ Внимание: При использовании утилит мониторинга убедитесь, что у вас есть права доступа к файлам устройства (обычно требуется группа video), иначе некоторые данные могут быть скрыты.
Использование Vulkan для проверки актуальности
Современные игры и приложения все чаще используют API Vulkan вместо OpenGL. Для проверки доступности и активной карты в Vulkan используется утилита vulkaninfo, входящая в пакет vulkan-tools.
vulkaninfo --summary
Эта команда выведет краткую сводку, где сразу видно, какие GPU поддерживают Vulkan и какой из них будет использоваться по умолчанию. Это критически важно для пользователей игровых дистрибутивов и тех, кто работает с графическими редакторами нового поколения.
Если вы не видите дискретную карту в выводе vulkaninfo, возможно, драйверы Vulkan не установлены или не настроены правильно. В таком случае необходимо проверить наличие пакетов vulkan-radeon (для AMD) или nvidia-vulkan (для NVIDIA).
⚠️ Внимание: Некоторые старые карты NVIDIA (серии GTX 900 и ниже) могут не поддерживать последние версии Vulkan без специфических обновлений драйверов, что ограничивает их совместимость с современным ПО.
Решение типичных проблем с определением GPU
Часто пользователи сталкиваются с ситуацией, когда система видит видеокарту через lspci, но не может определить её как активное устройство рендеринга. Это может быть связано с конфликтом интегрированной и дискретной графики или отсутствием необходимых библиотек.
Одной из частых проблем является отсутствие доступа к GPU в контейнерах Docker или виртуальных машинах. В таких случаях требуется ручная настройка прокидывания устройств (GPU passthrough) через параметры ядра.
Если утилита nvidia-smi выдает ошибку, но карта видна в системе, попробуйте пересоздать символические ссылки или перезагрузить модуль ядра командой sudo modprobe -r nvidia; sudo modprobe nvidia. Это сбросит состояние драйвера.
sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo modprobe nvidia_uvm
sudo modprobe nvidia_drm
Иногда проблема кроется в настройках Xorg или Wayland. Проверьте файлы конфигурации в /etc/X11/ или /etc/wayland/ на предмет жестко заданных параметров устройства, которые могут блокировать активацию дискретного адаптера.
FAQ: Часто задаваемые вопросы
Как узнать, какой GPU используется в конкретном приложении?
Для этого можно использовать утилиту nvtop и посмотреть, какой процесс потребляет ресурсы видеокарты. В Windows это делается через Диспетчер задач, в Linux — через мониторинг процессов с привязкой к GPU.
Что делать, если nvidia-smi не работает?
Проверьте, установлен ли проприетарный драйвер. Введите lsmod | grep nvidia. Если вывода нет, драйвер не загружен. Установите его через менеджер пакетов вашего дистрибутива.
Как проверить видеокарту в Wayland?
В Wayland команды работают так же, как и в X11. Используйте glxinfo или vulkaninfo. Некоторые старые утилиты могут требовать установки бэкенда X11 для корректного вывода информации.
Можно ли принудительно заставить игру использовать дискретную карту?
Да, используя переменные окружения, например, __NV_PRIME_RENDER_OFFLOAD=1 для NVIDIA или DRI_PRIME=1 для AMD, перед запуском команды приложения.
Почему система видит карту, но не выводит изображение с неё?
Это может означать, что карта используется только для вычислений (Compute mode) или подключена неверно (не в слот PCIe x16, а в x1, или подключена к встроенному видео). Проверьте физическое подключение.
⚠️ Внимание: Детали настройки драйверов и переменных окружения могут меняться в новых версиях ядра и графических стеков. Всегда сверяйтесь с официальной документацией производителя перед внесением изменений в системные файлы.