Descubra quais processos estão usando a placa de vídeo dedicada

2

Estou trabalhando em uma ferramenta simples de interface gráfica do Bumblebee. Uma de suas características é mostrar uma lista de processos que estão atualmente usando a placa de vídeo dedicada. Por enquanto eu listo todos os processos em execução e procuro por seu pai: se o processo pai for optirun , isso significa que este processo está usando a placa de vídeo dedicada.

O problema é que isso não está funcionando com primusrun , já que não há nenhum processo chamado assim enquanto um programa é iniciado com primusrun program_name . Existe alguma maneira de detectar os processos iniciados pelo primusrun ou os processos que estão usando a placa de vídeo dedicada? Obrigado.

(Esta é mais uma questão relacionada a programação e talvez pertença ao StackOverflow, mas eu não estou interessado em exemplo de código, mas sim em uma maneira genérica de encontrar esses processos).

    
por ov1d1u 30.01.2014 / 14:37

1 resposta

4

Você pode tentar verificar quais processos têm nós de dispositivo de GPU abertos (como fuser -v /dev/nvidiactl ), mas é uma operação dispendiosa (proporcional ao número total de arquivos abertos no sistema). Uma abordagem mais eficiente (mas muito difícil de implementar) provavelmente envolveria a descoberta de programas conectados ao X secundário do Bumblebee usando o netlink; xlsclients não iria cortá-lo porque ele lista janelas, não clientes conectados. Ele também é específico do Bumblebee, enquanto o uso de nós de dispositivos permitiria que você descobrisse usuários de GPUs discretos para o descarregamento PRIME também.

Por favor, não hesite em usar rastreadores de problemas Bumblebee / primus para tais questões. É um assunto relativamente obscuro, portanto entrar em contato diretamente aumenta as chances de obter uma resposta.

    
por 01.02.2014 / 13:10