Ubuntu не будет использовать мой графический процессор

Ubuntu не будет использовать мой графический процессор

Ребята, я уже несколько дней изучаю, как заставить это работать. Я только что начал с новой установки, чтобы исправить всякую ерунду, которая могла быть испорчена за это время. Насколько мне известно, DRI_PRIME=1 «должен» сделать DGPU основным, если вы используете эту строку кода перед запуском программы.
lspci -k | grep -EA2 'VGA|3D' показывает

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
DeviceName:  Onboard IGD
Subsystem: Dell Latitude E7470
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (rev e5)
Subsystem: Dell Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X]
Kernel driver in use: amdgpu

Итак, система «видит» мой графический процессор, но не хочет его использовать.

: $DRI_PRIME=1 glxinfo | grep "OpenGL-рендерер"

OpenGL renderer string: Mesa Intel(R) HD Graphics 520 (SKL GT2)

Я использую Kernel Linux 6.2.0-20-generic Ubuntu 23.04 Wayland

Ребята, я перешел на LTS и сразу же запустил DRI_PRIME=1 перед запуском любых обновлений, и он распознает карту... Я ужасно не понимаю, почему некоторые ОС делают это, а другие нет, поскольку я перепробовал много дистрибутивов. Но я не буду жаловаться.

решение1

Раньше при настройке параметра питания на «производительность» DGPU устанавливался в качестве основного, но однажды мои образцы CUDA перестали работать, потому что демонстрации пытались запустить на Intel GPU. Ноутбук обычно находится в гибридном режиме, DGPU выполняет тяжелую работу и передает управление Intel GPU для отображения. Посмотрите на вывод xrandr при запуске X (настройка режима — Intel):

 $ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x45 cap: 0x9, Source Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting
Provider 1: id: 0x26e cap: 0x2, Sink Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-G0

или, может быть, это выглядит так:

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x1b7 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x1e7 cap: 0x6, Sink Output, Source Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting

В первом случае источник и приемник поменяны местами, и необходимы переменные окружения __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia, которые можно использовать перед программой, которую вы хотите заставить использовать nvidia.

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <prog>

Связанный контент