Visualizar um tópico

Compreender a exibição de execução de threads do GPUView é fundamental para ver onde os threads estão ativos e onde eles executam funcionalidades específicas de vídeo.

O diagrama a seguir é uma captura de tela de uma fração de milissegundo de tempo mostrando apenas os threads ativos que abrangem dois processos: o processo System e o processo ocioso GPUView. Nesta visão, há três tópicos mostrados.

Captura de ecrã do processo ocioso GPUView com threads ativos.

Com cada thread, o nome está no lado esquerdo e uma área retangular cinza no lado direito é onde os intervalos de execução são mostrados. Toda esta área é conhecida como a Área do Fio.

Nome do tópico

Captura de tela mostrando um nome de thread com ID, módulo e função.

Na elipse vermelha no gráfico anterior, o ID do thread aparece entre parênteses seguido do módulo e da função que gerou o thread. Neste caso, o thread 432 criado por dxgmms1.sys na posição 0x37DC0. Caso os símbolos estejam carregados, o GPUView exibirá o nome simbólico em vez do número de deslocamento.

Área de Execução de Threads

Captura de tela da área de execução de thread no GPUView.

A área cinza à direita do nome, a Área de Execução de Thread, representa o tempo em que um thread pode ser executado. Neste caso, o thread foi executado duas vezes durante esse período de tempo.

Intervalo de execução do thread

Captura de tela de intervalos de execução de thread em GPUView.

Neste caso, os retângulos brancos representam quando o fio realmente correu. Este diagrama mostra dois intervalos de execução de thread.

Texto de detalhes

Captura de tela do texto de detalhes acima da área de execução do thread.

No lado direito, logo acima da Área de Execução do Thread, são fornecidos detalhes sobre a execução do thread. O primeiro número é o número de intervalos de execução durante este período. O segundo número, denominado iTime, é a quantidade de tempo que os DPCs foram executados neste thread. O terceiro item é o tempo total do intervalo de execução e o último item é a porcentagem do tempo da janela de visualização que o thread executou.

Detalhes do Intervalo de Execução

Captura de tela mostrando detalhes de um intervalo de execução de thread.

Cor de Fundo

GPUView define a cor de fundo do intervalo de execução para mostrar a relação do processador. No caso do diagrama anterior, o processo ocioso tem dois threads, indicando que é uma máquina de dois núcleos. Um processador recebeu a cor branca e o outro verde brilhante. À medida que as alternâncias de thread ocorrem, o GPUView pinta o plano de fundo com as informações do processador, mostrando que, quando o thread do sistema foi executado, foi no primeiro processador.

GPUView atualmente exibe oito cores de processador exclusivas e suporta até 32 processadores exclusivos.

Prioridade do thread

O número exibido no início de cada Intervalo de Execução é a prioridade do thread.

Interrupções de hardware ou DPC

Interrupções de hardware ou chamadas de procedimento adiado podem ser executadas em qualquer thread a qualquer momento. GPUView exibe essas informações como tempo de eclosão cruzada no Intervalo de Execução. As interrupções de hardware são mostradas em crosshatches vermelhos e os DPCs são mostrados em azul.

Captura de tela de interrupções de hardware e DPC na GPUView.

No diagrama anterior, um DPC era executado no primeiro núcleo ocioso e, pouco tempo depois, uma interrupção de hardware ocorreu no segundo núcleo ocioso.

Perfilagem de execução aninhada

Com algumas APIs, GPUView mostrará o tempo gasto em funções específicas. Isso é conhecido como Execução Aninhada no Intervalo de Execução. Uma parte significativa do kernel de vídeo registra eventos que denotam quando o thread entrou ou saiu de uma rotina específica.

Captura de ecrã da perfilação de execução aninhada no GPUView.

No diagrama anterior, a seta mais à esquerda aponta para o tempo de execução aninhado que é azul. O azul é uma cor reservada que denota o código do kernel do vídeo. A segunda seta aponta para o tempo de execução aninhado que é vermelho. A cor vermelha é reservada para o tempo de execução do código do kernel do driver de vídeo.

Pontos de caminhada de pilha

Captura de ecrã dos Pontos de Caminhada de Pilha abaixo dos Intervalos de Execução.

Se a caminhada de pilha estiver habilitada para o rastreamento, o GPUView os mostrará como pontos logo abaixo do Intervalo de Execução. No diagrama anterior, há três pontos Stack Walk para os dois intervalos.

Tempo de não execução

Se um thread for criado ou destruído dentro do tempo da janela de visualização, GPUView mostrará a inexistência através de uma linha horizontal. No diagrama a seguir, a hora de início do Viewport é representada pela linha vertical à direita do nome do thread. A linha horizontal, referenciada pela seta vermelha, entre ela e a Área de Execução representa o tempo em que o segmento não existiu.

Captura de tela do tempo de não execução no GPUView.