내 컴퓨터에는 통합 그래픽 카드 1개와 Nvidia RTX 3070 GPU 2개가 있습니다. 저는 우분투 20.04와 nvidia-driver-530
.
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070 Lite Hash Rate] (rev a1)
05:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070 Lite Hash Rate] (rev a1)
현재 Phoronix 테스트 스위트를 사용하여 3070 그래픽 카드를 테스트하려고 합니다.
테스트를 위해 Intel iGPU에서 터미널을 사용 nvidia-prime
하고 Nvidia 3070에서 phoronix를 실행하고 있습니다 .prime-select: on-demand
prime-run phoronix-test-suite run unigine-heaven
시작하는 데 몇 가지 문제가 있었기 nvidia-prime
때문에 이 기사의 조언을 따랐습니다.https://askubuntu.com/questions/1364762/prime-run-command-not-found
cat /usr/bin/prime-run
#!/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
exec "$@"
.prime-run
01:00.0
PCI:1:0:0
05:00.0
그러나 버스 ID가 / 인 GPU 1을 사용하여 테스트를 실행할 수 없는 것 같습니다 PCI:5:0:0
.
/etc/X11/xorg.conf
아래 링크에 제안된 대로 버스 번호를 변경하고 재부팅하여 수정해도 아무 일도 일어나지 않는 것 같으며 여전히 GPU 0에서 실행되고 있습니다.
- https://stackoverflow.com/questions/18382271/how-can-i-modify-xorg-conf-file-to-force-x-server-to-run-on-a-특이적-gpu-ia
- https://askubuntu.com/questions/787030/setting-the-default-gpu
cat /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 530.41.03
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
# BusID "PCI:1:0:0"
BusID "PCI:5:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
실제로 etc/X11/xorg.conf
구성 파일 없이 GPU 0에서 phoronix 테스트를 제거하고 실행할 수 있었습니다. 제가 실행한 드라이버나 프로그램 중 하나가 버스 ID가 가장 낮은 NVIDIA 카드를 자동으로 선택한 것 같습니다.
버스 ID가 있는 두 번째 RTX 3070 GPU를 선택하려면 설정이나 구성 파일을 어디에서 변경해야 하는지 알고 싶습니다 05:00.0
. 추가 정보를 기꺼이 제공해 드리겠습니다.
답변1
prime-run
스크립트 에서 변수도 설정해야 합니다.
__NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G{CARD#}
에 있는 카드 식별자를 사용하세요 xrandr --listproviders
.
아래 나열된 공식 Nvidia 가이드는 이 문제에 대한 해결책을 제공하지만, 나는 가이드를 주의 깊게 읽지 않았고 처음 읽을 때 놓쳤습니다.
https://download.nvidia.com/XFree86/Linux-x86_64/495.44/README/primerenderoffload.html
/etc/X11/xorg.conf
이 솔루션에는 필요하지 않습니다.
OFFLOAD_PROVIDER
Xsession이나 그래픽이 표시되지 않고 클라이언트에서 원격으로 헤드리스 서버에 액세스하고 있기 때문에 관련 부분을 놓쳤습니다 .
머신은 헤드리스 터미널 환경뿐만 아니라 특정 유형의 GUI를 실행해야 합니다. 제 경우에는 lightdm
서버에 설치했는데 모든 것이 잘 작동했습니다.
x11
나는 그래픽이 / xorg
대신에 사용되어야 한다고 생각합니다 wayland
. 의 경우 gdm3
주석 xorg
처리를 제거하여 실행을 설정할 수 있습니다.
#WaylandEnable=false
그리고 /etc/gdm3/custom.conf
다시 시작하세요.