Estou tentando monitorar um processo que usa cuda e MPI, há alguma maneira de fazer isso, algo como o comando "top", mas que monitora a GPU também?
cuda
resource-monitor
natorro
fonte
fonte
Respostas:
Acho o gpustat muito útil. O In pode ser instalado com
pip install gpustat
e imprime detalhamento de uso por processos ou usuários.fonte
watch gpustat -cp
você pode ver as estatísticas continuamente, mas as cores sumiram. como você conserta aquilo? @Alleowatch -c
. @Roman Orac, Obrigado, isso também funcionou para mim no redhat 8, quando estava recebendo alguns erros devido à importação de _curses em python.watch -c gpustat -cp --color
watch -n 0.5 -c gpustat -cp --color
--watch
opção:gpustat -cp --watch
Para obter informações em tempo real sobre os recursos usados, faça:
nvidia-smi -l 1
Isso fará um loop e chamará a visualização a cada segundo.
Se você não quiser manter os rastros anteriores da chamada em loop no histórico do console, também pode fazer:
watch -n0.1 nvidia-smi
Onde 0,1 é o intervalo de tempo, em segundos.
fonte
Não estou ciente de nada que combine essas informações, mas você pode usar a
nvidia-smi
ferramenta para obter os dados brutos, assim (obrigado a @jmsu pela dica sobre -l):fonte
watch -n 0.5 nvidia-smi
, o que evita encher seu terminal com saídaBaixe e instale o driver CUDA estável mais recente (4.2) aqui . No Linux, o nVidia-smi 295.41 oferece exatamente o que você deseja. usar
nvidia-smi
:EDITAR: Nos drivers NVIDIA mais recentes, esse suporte é limitado às placas Tesla.
fonte
para mais ajuda, por favor siga
fonte
Basta usar
watch nvidia-smi
, ele emitirá a mensagem por intervalo de 2s no padrão.Por exemplo, conforme a imagem abaixo:
Você também pode usar
watch -n 5 nvidia-smi
(-n intervalo de 5 por 5s).fonte
Outra abordagem de monitoramento útil é usar os
ps
processos filtrados que consomem suas GPUs. Eu uso muito este:Isso mostrará todos os processos que utilizam GPU da nvidia e algumas estatísticas sobre eles.
lsof ...
recupera uma lista de todos os processos usando uma GPU nvidia de propriedade do usuário atual eps -p ...
mostra osps
resultados desses processos.ps f
mostra uma boa formatação para relacionamentos / hierarquias de processo pai / filho e-o
especifica uma formatação personalizada. Isso é semelhante a apenas fazer,ps u
mas adiciona o ID do grupo de processo e remove alguns outros campos.Uma vantagem disso
nvidia-smi
é que ele mostrará bifurcações de processo, bem como processos principais que usam a GPU.Uma desvantagem, porém, é que ele está limitado aos processos pertencentes ao usuário que executa o comando. Para abri-lo para todos os processos pertencentes a qualquer usuário, adiciono um
sudo
antes delsof
.Por último, eu o combino com
watch
para obter uma atualização contínua. Então, no final, parece:Que tem saída como:
fonte
sudo
seguinte:nvidia-smi --query-compute-apps=pid --format=csv,noheader
nvidia-smi
, não lista todos os processos, então você acaba com sua memória usada por processos não listados lá. Esta é a principal maneira de rastrear e eliminar esses processos.pmem
dado porps
leve em consideração a memória total da GPU, mas a da CPU porqueps
não é "Nvidia GPU" cienteVocê pode tentar
nvtop
, que é semelhante àhtop
ferramenta amplamente usada , mas para GPUs NVIDIA. Aqui está uma captura de tela denvtop
dele em ação.fonte
Isso pode não ser elegante, mas você pode tentar
Também tentei o método de @Edric, que funciona, mas prefiro o layout original do
nvidia-smi
.fonte
nvidia-smi -l 2
. Ou para evitar saídas repetidas do console,watch -n 2 'nvidia-smi'
Se você deseja apenas encontrar o processo que está sendo executado no gpu, pode simplesmente usar o seguinte comando:
Para mim
nvidia-smi
ewatch -n 1 nvidia-smi
são suficientes na maioria dos casos. Às vezesnvidia-smi
não mostra nenhum processo, mas a memória gpu é usada, então eu preciso usar o comando acima para encontrar os processos.fonte
No Linux Mint, e provavelmente no Ubuntu, você pode tentar "nvidia-smi --loop = 1"
fonte
Existe o Prometheus GPU Metrics Exporter (PGME) que utiliza o binário nvidai-smi. Você pode tentar isso. Depois de ter o exportador em execução, você pode acessá-lo via http: // localhost: 9101 / metrics . Para duas GPUs, o resultado da amostra é assim:
fonte
você pode usar
nvidia-smi pmon -i 0
para monitorar todos os processos na GPU 0. incluindo modo de computação, uso de sm, uso de memória, uso do codificador, uso do decodificador.fonte
Você pode usar os olhares do programa de monitoramento com seu plug-in de monitoramento de GPU :
sudo apt-get install -y python-pip; sudo pip install glances[gpu]
sudo glances
Ele também monitora a CPU, E / S do disco, espaço em disco, rede e algumas outras coisas:
fonte
Criei um arquivo em lote com o seguinte código em uma máquina Windows para monitorar a cada segundo. Funciona para mim.
O exe nvidia-smi geralmente está localizado em "C: \ Arquivos de programas \ NVIDIA Corporation" se você deseja executar o comando apenas uma vez.
fonte