Вопрос или проблема
Однажды я наткнулся на команду терминала, которая перечисляет доступные графические процессоры в системе вместе с переменными окружения для их использования. Например, в моем ноутбуке есть дискретный графический процессор Nvidia и интегрированная графика Intel Arc, так что я получал бы 2 результата для карты Nvidia с упоминанием __GLX_VENDOR_LIBRARY_NAME
/ __NV_PRIME_RENDER_OFFLOAD
/ __VK_LAYER_NV_optimus
, а для карты Intel я получал бы DRI_PRIME
.
Моя проблема в том, что я не могу вспомнить команду, которая предоставляла эту информацию. Кто-нибудь знает эту утилиту?
Ответ или решение
Для решения вашей задачи по идентификации доступных графических процессоров (GPU) и связанных с ними переменных окружения можно использовать несколько командных утилит в среде Linux. Данная информация будет полезна как для профессиональных разработчиков, так и для системных администраторов, особенно при работе с графическими приложениями и играми.
Команда для отображения доступных GPU
Одной из наиболее распространенных команд для получения информации о графических процессорах является команда lspci
. Она позволяет отобразить список всех подключенных устройств, включая GPU. Чтобы отфильтровать информацию связанная с видеокартами, используйте следующую команду в терминале:
lspci | grep -E "VGA|3D"
Альтернативные утилиты
Для более детализированной информации о GPU может быть полезно использовать команду nvidia-smi
(для NVIDIA GPU) или intel_gpu_top
(для Intel GPU). Эти утилиты предоставляют расширенные сведения о состоянии и производительности видеоадаптеров.
Пример команды для NVIDIA:
nvidia-smi
Переменные окружения для работы с GPU
После того как вы определили доступные GPU, следующим шагом будет понимание, какие переменные окружения необходимо использовать. Эти переменные могут менять поведение приложений при работе с несколькими графическими процессорами. Ниже перечислены популярные переменные для GPU от NVIDIA и Intel.
Переменные для NVIDIA GPU:
__GLX_VENDOR_LIBRARY_NAME
: Указывает библиотеку OpenGL, которую следует использовать для рендеринга.__NV_PRIME_RENDER_OFFLOAD
: Позволяет использовать NVIDIA dGPU для рендеринга, если система использует Intel iGPU.__VK_LAYER_NV_optimus
: Используется для обеспечения работы приложений Vulkan с Optimus конфигурациями.
Переменные для Intel GPU:
DRI_PRIME
: Используется для переключения между интегрированным и дискретным графическими процессорами.
Вывод информации об обеих GPU и связанных переменных
Чтобы получить полный отчет о доступных GPUs и их переменных, вы можете создать небольшой скрипт. Вот пример на bash:
echo "Список доступных GPU:"
lspci | grep -E "VGA|3D"
echo -e "\nПеременные окружения для NVIDIA:"
echo "__GLX_VENDOR_LIBRARY_NAME"
echo "__NV_PRIME_RENDER_OFFLOAD"
echo "__VK_LAYER_NV_optimus"
echo -e "\nПеременные окружения для Intel:"
echo "DRI_PRIME"
Заключение
Использование описанных выше команд и переменных окружения позволит вам эффективно управлять графическими процессорами в системе, а также обеспечит лучший контроль над производительностью и совместимостью приложений. Если у вас есть дальнейшие вопросы или необходимо глубже понять, как оптимально настраивать вашу среду, не стесняйтесь обращаться за дополнительной помощью.