여러분 저는 이 작업을 수행하는 방법에 대해 며칠 동안 연구해 왔습니다. 그 동안 엉망이 되었을 수 있는 말도 안되는 문제를 해결하기 위해 방금 새로 설치를 시작했습니다. 이제 제가 아는 한, 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
그래서 시스템은 내 GPU를 "인식"하고 사용하지 않습니다.
: $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을 실행했는데 카드가 인식되었습니다 ..... 많은 배포판을 시도했기 때문에 일부 OS에서는 이 작업을 수행하고 다른 OS에서는 수행하지 않는 이유가 끔찍할 정도로 확실하지 않습니다. 하지만 난 불평하지 않을 거예요.
답변1
전원 옵션을 "성능"으로 설정하면 DGPU가 기본으로 설정되지만 어느 날 데모가 Intel GPU에서 실행하려고 했기 때문에 CUDA 샘플이 작동을 멈췄습니다. 노트북은 일반적으로 하이브리드 모드에 있으며 DGPU가 어려운 작업을 수행하고 디스플레이를 위해 Intel GPU로 전달됩니다. X를 실행할 때 xrandr의 출력을 확인하세요(모드 설정은 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
첫 번째는 소스와 싱크가 반대인 것으로 보이며 nvidia를 강제로 사용하려는 프로그램 앞에 사용할 수 있는 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia 환경 변수가 필요합니다.
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia <prog>