GPU 2개가 장착된 노트북이 있습니다. 하나는 AMD 통합 GPU이고 다른 하나는 헤드리스 Nvidia 칩입니다. ~에 따르면엔비디아 문서, 환경 변수를 설정하면 __NV_PRIME_RENDER_OFFLOAD=1
Nvidia GPU가 애플리케이션에 먼저 표시되고, __VK_LAYER_NV_optimus=NVIDIA_only
다른 GPU가 숨겨지며, 애플리케이션이 Nvidia GPU를 사용하도록 강제되고, __VK_LAYER_NV_optimus=non_NVIDIA_only
Nvidia GPU가 숨겨집니다. 전자 옵션은 잘 작동하지만 후자 옵션은 아무것도 숨기지 않고 순서만 조정합니다.
$ __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=non_NVIDIA_only vulkaninfo --summary | grep deviceName
deviceName = AMD Radeon Graphics (RADV RENOIR)
deviceName = NVIDIA GeForce RTX 3050 Ti Laptop GPU
deviceName = llvmpipe (LLVM 15.0.6, 256 bits)
$ __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only vulkaninfo --summary | grep deviceName
deviceName = NVIDIA GeForce RTX 3050 Ti Laptop GPU
deviceName = AMD Radeon Graphics (RADV RENOIR)
deviceName = llvmpipe (LLVM 15.0.6, 256 bits)
실제로 후자 옵션을 설정하면 많은 응용 프로그램이 여전히 기본적으로 (고성능) Nvidia GPU를 사용합니다.
$ __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=non_NVIDIA_only vkcube
Selected GPU 1: NVIDIA GeForce RTX 3050 Ti Laptop GPU, type: DiscreteGpu
이는 현재 Debian 테스트에 포함된 Nvidia 드라이버 버전 515.86.01입니다.
통합 GPU만 볼 수 있는 애플리케이션을 만드는 방법?
답변1
나는 그것에 대해 생각했다. VK_ICD_FILENAMES 환경 변수를 사용하면 특정 Vulkan 드라이버를 지정할 수 있습니다. 전임자.
$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo --summary | grep deviceName
deviceName = AMD Radeon Graphics (RADV RENOIR)