AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1506064
Accepted
popey
popey
Asked: 2024-02-29 17:37:47 +0800 CST2024-02-29 17:37:47 +0800 CST 2024-02-29 17:37:47 +0800 CST

Renderização lenta. Em qual GPU um processo de desktop está sendo executado?

  • 772

A questão

Às vezes, parece que os aplicativos estão sendo renderizados lentamente. Não sei qual das várias GPUs está fazendo o trabalho para esse aplicativo específico. Gostaria de saber qual GPU está renderizando uma janela ou aplicativo. Como faço para descobrir isso por janela ou por processo?

Informação do sistema

Meu desktop está executando o Ubuntu 23.10 em um Intel Skull Canyon NUC. Ele contém um estranho híbrido de CPU/GPU com CPU Intel e GPU AMD, no mesmo chip.

alan@nuc:~$ lscpu | grep Model\ name
Model name:                         Intel(R) Core(TM) i7-8809G CPU @ 3.10GHz
alan@nuc:~$ lspci | grep AMD
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] 
  Polaris 22 XT [Radeon RX Vega M GH] (rev c0)

Eu também tenho uma GPU externa em um gabinete Thunderbolt.

alan@nuc:~$ lspci | grep GeForce
40:00.0 VGA compatible controller: NVIDIA Corporation 
  TU102 [GeForce RTX 2080 Ti Rev. A] (rev a1)

Tenho três monitores 1080p conectados ao NVIDIA 2080 Ti. Nenhum monitor está conectado aos conectores HDMI ou DisplayPort internos.

alan@nuc:~$ xrandr | grep "*"
   1920x1080     60.00*+  59.99    59.94    50.00  
   1920x1080     60.00*+  59.94    50.00    29.97  
   1920x1080     60.00*+  59.99    59.94    50.00  

Estou executando a versão mais recente do driver da Nvidia.

alan@nuc:~$ lsmod | grep ^nvidia\ 
nvidia              56811520  920 nvidia_uvm,nvidia_modeset
alan@nuc:~$ modinfo nvidia | grep ^version
version:        535.161.07
alan@nuc:~$ dpkg -l nvidia-driver* | grep ^ii
ii  nvidia-driver-535 535.161.07-0ubuntu0.23.10.1 amd64 
  NVIDIA driver metapackage

Editar : Adicionando isso graças à resposta abaixo de Alistair Buxton. Interessante que a GPU AMD seja o "Padrão" (que suspeito não ser o que desejo).

Então a resposta é que preciso usar switcheroo launchou iniciar usando o inicializador de aplicativos GNOME.

alan@nuc:~$ switcherooctl list
Device: 0
  Name:        Advanced Micro Devices, Inc. [AMD®/ATI] Polaris 22 XT [Radeon RX Vega M GH]
  Default:     yes
  Environment: DRI_PRIME=pci-0000_01_00_0

Device: 1
  Name:        NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A]
  Default:     no
  Environment: __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only

Meu fluxo de trabalho

Normalmente inicio aplicativos a partir de seu ícone no inicializador do GNOME Shell ou a partir de um script de shell que executo manualmente, que inicia todos os meus aplicativos de desktop na inicialização. No entanto, também existe a opção no inicializador para “Iniciar usando placa gráfica integrada”.

Por exemplo, aqui está o menu padrão do ícone do iniciador do Steam:

Menu do iniciador Steam

O problema

Às vezes, sinto que os aplicativos estão sendo renderizados lentamente.

Reafirmando a pergunta

Gostaria de saber como saber qual GPU está em uso por um processo ou janela.

Fico feliz em ouvir outras opiniões como:

  • Você está vendo coisas
  • É o raio que é lento

Não estou inclinado a fazer nada disso: :)

  • Usar Wayland
  • Use o driver nouveau de código aberto
  • Remova a GPU NVidia
drivers
  • 1 1 respostas
  • 86 Views

1 respostas

  • Voted
  1. Best Answer
    Alistair Buxton
    2024-02-29T22:18:55+08:002024-02-29T22:18:55+08:00

    Execute switcherooctl liste você verá uma saída como esta para cada GPU:

    Device: 0
      Name:        NVIDIA Corporation TU104 [GeForce RTX 2070 SUPER]
      Default:     yes
      Environment: __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only
    

    Observe a seção de meio ambiente. O Gnome Shell lança programas com switcherooctl launch, que apenas insere essas variáveis ​​no ambiente do programa. Portanto, quando você quiser determinar em qual GPU um programa está sendo executado, verifique /proc/$pid/environas variáveis ​​de ambiente que correspondem a um dos dispositivos da lista.

    Edite para adicionar: meu entendimento é que o Gnome só usa switcheroo se você escolher explicitamente uma das opções "integradas" ou "discretas". Caso contrário, ele apenas executa o programa normalmente. Você não verá nenhum conjunto de variáveis ​​no ambiente e, na ausência de qualquer outra configuração, o programa estará sendo executado em qualquer GPU à qual seu monitor esteja conectado.

    Mas observe que não uso o Gnome ou uma configuração de GPU dupla, então posso estar errado sobre isso.

    Você pode verificar se switcheroo launchfunciona para um cartão específico usando-o para iniciar glxgears -infoe verificando o valor GLX_RENDERERna parte superior da saída.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve