Intel® Performance Counter Monitor - Uma forma melhor de medir o uso da CPU

URL curto desta página: www.intel.com/software/pcm

Índice

Contribuidores (em ordem histórica)

Roman Dementiev, Thomas Willhalm, Otto Bruggeman, Patrick Fay, Patrick Ungerer, Austen Ott, Patrick Lu, James Harris, Phil Kerly, Patrick Konsor

Apresentação do Intel® PCM (Performance Counter Monitor)

O Intel® PCM versão 2.0 já está disponível e adiciona suporte para os processadores Intel® Xeon® série E5 baseados na microarquitetura Intel de codinome Sandy Bridge EP/EN/E. Veja a seção Recursos do Intel® PCM versão 2.0 abaixo para ver uma descrição resumida dos novos recursos.

A complexidade dos sistemas de computação aumentou tremendamente nas últimas décadas. Recursos como subsistemas de cache hierárquico, memórias não uniformes, multithreading simultâneo e execução fora da ordem tem um enorme impacto sobre o desempenho e a capacidade de computação dos processadores modernos.

 

Figura%201%20%u201CUso%20da CPU%u201D%20mede%20apenas%20o%20tempo%20em que%20um thread%20está%20sagendado%20em%20um%20núcleo
 Figura 1: "Uso da CPU" mede apenas o tempo em que um thread está agendado em um núcleo

 

Os software que entendem e se ajustam dinamicamente de acordo com o uso dos recursos dos processadores modernos têm vantagens de potência e de desempenho. O Intel® Performance Counter Monitor fornece exemplos de rotinas em C++ e utilitários para estimar o uso de recursos internos dos mais recentes processadores Intel® Xeon® e Core™, e obter um aumento de desempenho significativo.

Quando o uso da CPU não diz qual é o uso da CPU

O número de utilização da CPU obtido do sistema operacional é uma medição que foi usada para muitas finalidades, como dimensionamento do produto, planeamento da capacidade de computação, agendamento de tarefas, etc. A implementação atual desta medição (o número que o utilitário "top" do UNIX* e o gerenciador de tarefas do Windows* informam) mostra a porção de slots de tempo que o agendador da CPU pode atribuir para a execução dos programas que estão em funcionamento ou para o próprio sistema operacional; o resto do tempo é ocioso. Para cargas de trabalho de computação, a medida de uso da CPU calculada dessa forma previa muito bem a capacidade remanescente da CPU em arquiteturas dos anos 80, que tinham um desempenho muito mais uniforme e previsível em comparação com os sistemas modernos. Avanços na arquitetura computacional tornaram este algoritmo não confiável por causa da introdução dos sistemas com múltiplos núcleos e múltiplas CPUs, múltiplos níveis de cache, memória não uniforme, multithreading simultâneo, canalização ("pipelining"), execução fora da ordem, etc.

 

Diagrama de sistema%20of%20a%20multi-core%2C%20e com múltiplos soquetes%20
 Figura 2: A complexidade dos modernos sistemas multi-core e com múltiplos processadores

 

Um exemplo importante do uso não linear da CPU em processadores com a Tecnologia Hyper-Threading Intel® A Tecnologia Hyper-Threading Intel® é um recurso que pode aumentar o desempenho em até 30%. Entretanto, os usuários finais que não estão cientes deste recurso podem ficar facilmente confusos com o uso da CPU reportado: Considere um aplicativo que roda um único thread em cada núcleo físico. Nesse caso, o uso reportado da CPU é 50%, mesmo que o aplicativo possa usar até 70 -100% das unidades de execução. Os detalhes são explicados em [1].

Um outro exemplo é o uso da CPU para cargas de trabalho que fazem uso intensivo da memória em sistemas multi-core. O fluxo de teste de largura de banda já satura a capacidade do controlador de memória com um número de threads menor do que o número de núcleos disponíveis.

Camada de abstração para unidades de monitoração de desempenho

A boa notícia é que os processadores Intel já têm a capacidade de monitorar eventos de desempenho dentro do processador. Para obter uma indicação mais precisa sobre o uso dos recursos da CPU, nós usamos os dados dinâmicos obtidos das chamadas unidades de monitoração de desempenho (PMUs - Performance Monitoring Units) implementadas nos processadores Intel. Nós nos concentramos no conjunto de recursos avançados disponível na atual série de processadores Intel® Xeon® 5500, 5600, 7500, E5, E7 e Core i7 [2-4].

 Nós implementamos um conjunto básico de rotinas com uma interface de alto nível. Estas rotinas podem ser chamadas de um aplicativo C++ e fornecem várias formas de medição do desempenho da CPU em tempo real. Ao contrário de outras estruturas existentes, como PAPI* e Linux* "perf", nós suportamos não apenas PMUs core, mas tambem PMUs uncore dos processadores Intel (inclusive o recente processador Intel® Xeon® série E7). Uncore é a parte do processador que contém o controlador integrado de memória e o Intel® QuickPath Interconnect para os outros processadores e para o hub de E/S. No total, são suportadas as seguintes medições:

  • Núcleo: instruções desativadas, marcações de clock do núcleo transcorridas, frequência do núcleo incluindo a tecnologia Intel® Turbo Boost, acertos e erros do cache L2, acertos e erros do cache L3 (incluindo ou excluindo rastreamentos).
  • Uncore: bytes lidos do controlador de memória, bytes gravados no controlador de memória, tráfego de dados transferidos pelos links do Intel® QuickPath Interconnect.

O Intel® PCM versão 1.5 (e mais recentes) também suporta os processadores Intel® Atom™ mas os contadores como os de memória e de largura de banda do Intel® QPI e de erros do cache L3 mostrarão sempre 0 por que não há cache L3 no processador Intel® Atom™ e não há controlador de memória incorporado no chip ou links Intel® QPI.

O Intel® PCM versão 1.6 suporta medição de desempenho no núcleo (como instruções por ciclo de clock e erros de cache L3) da segunda geração da família de processadores Intel® Core™ (microarquitetura Intel® de codinome Sandy Bridge) e suporte experimental para algumas microarquiteturas Intel® mais antigas (por exemplo, Penryn): para habilitá-lo, defina PCM_TEST_FALLBACK_TO_ATOM no cpucounter.cpp.

Eu quero ver estes contadores!

Como atrativo adicional, o pacote contém utilitários gráficos e de linha de comando fáceis de usar que são baseados nestas rotinas Eles estão prontos para uso por usuários que não podem ou não querem integrar as rotinas em seus códigos, mas querem monitorar e entender os limites da capacidade da CPU em tempo real.

A figura 3 mostra a captura de tela do utilitário de linha de comando na plataforma Windows*. A versão Linux* conta com o módulo kernel MSR que é fornecido com o kernel Linux, esta facilidade não está disponível no Windows. Para o Windows, uma implementação de exemplo de um driver do Windows fornece uma interface similar.

 

Captura de tela%20da%20ferramenta de linha de comando do Intel%20PCM%20%20line%20
 Figura 3: Versão da linha de commando do Intel® Performance Counter Monitor

 

Mas há muito mais por vir. Para o sistema operacional Linux, o pacote inclui um adaptador que se conecta ao utilitário ksysguard do KDE*. Com o uso deste daemon, é possível colocar em um gráfico as várias medições em tempo real. A Figura 4 mostra uma captura de tela em que algumas das medições são mostradas durante o processamento de uma carga de trabalho;

Consute as Figuras 9 e 10 abaixo para ver o PCM versão 2.0 destas capturas de tela.

 

Captura de tela %20do%20ksysguard%20com%20Intel%20PCM
Figura 4: O utilitário ksysguard de KDE no Linux pode mostrar os contadores de desempenho em forma de gráfico usando um plug-in (PCM v1.7)

 

Uma vez que estes utilitários fornecem uma visão direta sobre o sistema, eles podem até mesmo ser usados para encontrar e entender rapidamente os gargalos de desempenho em tempo real. (Porém, ao contrário do Analisador de desempenho VTune™ Intel®, eles não indicam que partes do aplicativo estão causando o problema de desempenho).

Desde a versão1.5, o pacote do Intel® Performance Counter Monitor contém um serviço Windows*, baseado no Microsoft .Net* 2.0 ou melhor, que cria contadores de desempenho que podem ser mostrados no programa Perfmon fornecido com o sistema operacional Microsoft Windows*. O perfmon da Microsoft mostra muitos contadores de desempenho úteis no SO Windows*, como atividade do disco, uso da memória, carga da CPU. Mais informações sobre o perfmon para Windows* 7 e Windows* 2008/R2 podem ser encontradas aqui (mas o perfmon está agora disponível para muitas versões do Windows). Leia o arquivo Windows_howto.rtf para saber como instalar e remover o serviço para o Intel® PCM.

Para todos os controladores de hardware mencionados em plataformas baseadas no Nehalem e no Westmere, um contador perfmon correspondente é criado e, portanto, todos os recursos suportados pelo perfmon estão também disponíveis para estes contadores, como o registro ao longo do tempo em um arquivo ou em um banco de dados. Para o processador Intel® Atom™ os contadores perfmon para memória e largura de banda e erros de cache L3 do Intel® QPI mostrarão sempre 0 pelas razões mencionadas acima. Em uma futura atualização do Intel® Performance Counter Monitor o serviço mostrará apenas os contadores disponíveis.

 

PCM+Service+screenshot.png
Figura 5: Perfmon do Windows* mostrando dados do monitor do contador de desempenho Intel® v1.7

 

Intel® Performance Counter Monitor nos seus programas

Graças à camada de abstração que a biblioteca fornece, é muito fácil monitorar os parâmetros do processador no seu aplicativo. Antes de poderem ser usados, os contadores de desempenho precisam ser iniciados. Depois disso, o estado do contador pode ser capturado antes e depois da seção de código de interesse. Diferentes rotinas capturam os contadores para obter informações de núcleos, soquetes, ou do sistema inteiro, e armazenam as informações de estado me estruturas de dados correspondentes. Rotinas adicionais fornecem a possibilidade de computar as medições com base nestes estados. O fragmento de código a seguir mostra um exemplo de uso:

PCM * m = PCM::getInstance();

// program counters, and on a failure just exit

if (m->program() != PCM::Success) return;

SystemCounterState before_sstate = getSystemCounterState();

     [run your code here] 

SystemCounterState after_sstate = getSystemCounterState();

  cout << "Instructions per clock:" << getIPC(before_sstate,after_sstate)

  << "L3 cache hit ratio:" << getL3CacheHitRatio(before_sstate,after_sstate)

  << "Bytes read:" << getBytesReadFromMC(before_sstate,after_sstate)

  << [and so on]...

Agendamento da detecção de recursos da CPU

Para avaliar o impacto potencial de se ter informações precisas sobre utilização, nós implementamos um agendador simples que executou 1000 tarefas de computação intensa e 1000 tarefas de uso intenso de largura de banda da memória, em um único thread. O desafio era a existência de uma carga de segundo plano não previsível no sistema, uma situação de certa forma típica nos modernos sistemas de múltiplos componentes, com muitos componentes de terceiros. A Figura 6 mostra uma possível agenda de um agendador que não sabe da existência da atividade em segundo plano.

Agendador%20sem o%20Intel%20PCM
 Figura 6: Agendador sem o Intel® Performance Counter Monitor

Se o agendador puder detectar (usando as rotinas fornecidas) que uma boa parte da largura de banda da memória está sendo usada por um processo diferente, ele poderá ajustar o agendamento de forma correspondente. As nossas simulações demonstraram que tal agendador executa 2000 tarefas 16% mais rapidamente do que um agendador genérico que não consegue fazer aquela detecção.

Agendador%20com o%20Intel%20PCM
 Figura 7: Agendador usando o Intel® Performance Counter Monitor

Recursos do Intel PCM versão 2.0

O Intel PCM versão 2.0 adiciona suporte para os processadores Intel® Xeon série E5 baseados na microarquitetura Intel de codinome Sandy Bridge EP/EN/E. Este processador tem um novo uncore com muitas opções de monitoração.

Para obter informações gerais sobre os processadores Intel® Xeon® E5 consulte esta página.

Para obter informações técnicas sobre o Intel® Xeon® E5 consulte esta página.

É mostrado abaixo um diagrama de blocos do novo processador do Guia de monitoração de desempenho de uncore da família de processadores Intel® Xeon® E5-2600.

Diagrama de blocos do Intel Xeon série E5
 Figura 8: Diagrama de blocos do Intel® Xeon® série E5

O uncore do processador Xeon série E5 tem múltiplas "caixas" similares ao processador Xeon E7 (microarquitetura Intel de codinome Westmere-EX). O Intel PCM v 2.0 suporta Intel® QPI e métricas de memória para o novo processador.

Quando se compara a saída do 'pcm.exe 1' versão 1.7 com a versão 2.0 em um sistema baseado no Xeon E7 (Westmere-EX), as principais diferenças são:

  • A versão 2.0 imprime uma coluna 'TEMP' para cada núcleo (e soquete para o processador Xeon série E5). Os valores 'TEMP' são valores de temperatura em 1 grau Celsius em relação à temperatura TjMax (espaço térmico livre): 0 corresponde à temperatura máxima.
  • A versão 2.0 mostra também o núcleo C-state e a residência do encapsulamento. Este valor é uma porcentagem do tempo que o núcleo (ou o encapsulamento inteiro) gasta em um nível particular do C-state. Quanto maior o nível, maior a economia de energia.

Recursos específicos do Intel® Xeon® série E5

As informações abaixo do PCM versão 2.0 se aplicam ao processador Intel® Xeon® série E5.

O PCM versão 2.0 adiciona mais informações Intel® QPI:

  • a velocidade do(s) link(s) QPI
  • a porcentagem de largura de banda QPI de entrada (recebida) usada para dados
  • o número de bytes de tráfego de dados e não dados de saída (transmitidos) para cada link, juntamente com a porcentagem de uso do link de transmissão

Note que a disponibilidade das informações do Intel® QPI pode depender do suporte das unidades de monitoração de desempenho do uncore do Xeon E5 no BIOS e das configurações do BIOS.

O PCM versão 2.0 adiciona também informações sobre o uso de energia:

  • Uso de energia por soquete
  • Uso de energia pela DRAM Se o BIOS não suportar este recurso, então o consumo da DRAM será reportado como zero.

Utilitário PCM-power

Para o processadores Intel® Xeon® série E5, o PCM versão 2.0 fornece também o utilitário pcm-power O arquivo de projeto MSVS Windows deste utilitário está no diretório PCM-Power_Win.

 O utilitário pcm-power mostra, para todos os casos:

  • Para cada soquete e porta Intel® QPI, a porcentagem de clocks QPI gastos nos estados de energia baixa L0p e L1. O estado de economia de energia L0p tem metade das vias QPI desabilitadas. No estado L1, todas as vias estão no modo de espera. O guia de monitoração do desempenho do uncore acima mencionado tem mais informações sobre estas métricas (veja a tabela 2-102). Note que a disponibilidade das informações do Intel® QPI pode depender do suporte das unidades de monitoração de desempenho do uncore do Xeon E5 no BIOS e das configurações do BIOS.
  • Para cada soquete, mostra a energia usada, o número de Watts e o espaço térmico livre.
  • Para a DRAM, mostra a energia e o número de Watts usados, se a plataforma suportar este recurso. O valor mostrado será 0 se a exibição da energia da DRAM não for suportada.

A opção '-m' do pcm-power mostra informações do estado de potência da PMU (Performance Monitoring Unit) do IMC (Integrated Memory Controller). As opções válidas são:

  • opção '-m 0' que mostra as residências 'CKE off' rank 0 e rank 1 da DRAM
    • 'CKE off' é um estado de economia de energia da DRAM de modo que quanto maior a porcentagem de tempo gasto no modo 'CKE off', menos energia a DRAM usa.
    • Rank 0 e rank 1 são dois dos níveis da DRAM.
    • Esta opção é a exibição padrão da PMU do IMC se não for fornecida nenhuma outra opção '-m'.
  • opção '-m 1' que mostra as residências 'CKE off' rank 2 e rank 3 da DRAM
  • opção '-m 2' que mostra as residências 'CKE off' rank 4 e rank 5 da DRAM
  • opção '-m 3' que mostra as residências 'CKE off' rank 6 e rank 7 da DRAM
  • opção '-m 4' que mostra as residências auto atualizáveis da DRAM
    • o modo 'self-refresh' (auto atualizável) é outro modo de economia de energia da DRAM
  • a opção '-m -1' omite a saída PMU do IMC
    • Esta opção é útil para diminuir a saída se você não quiser informações da DRAM

A opção '-p' do pcm-power mostra informações do estado de potência da PMU da PCU (power control unit - unidade de controle de potência). As opções válidas são:

  • opção '-p 0' que mostra as residências de frequência
    • Esta opção usa o recurso 'frequency banding' da PMU da PCU para mostrar a porcentagem de tempo que os núcleos gastam em 3 'bandas' de frequência.
    • As bandas padrão são 10, 20 e 40. Você pode suprimir cada banda com '-a band0', '-b band1' e '-c band2'. Cada banda é multiplicada por 100 MHz. As bandas padrão então representam a porcentagem de tempo em que os núcleos estão na frequência:
      • Band0: freq >= 1 GHz
      • Band1: freq >= 2 GHz
      • Band2: freq >= 4 GHz
    • Esta é a opção -p padrão.
    • Em um sistema ocioso, o comando './pcm-power.x "sleep 5" -p 0 -a 0 -b 12 -c 27' produz a seguinte saída:
       S0; PCUClocks: 3994206932; Freq band 0/1/2 cycles: 98.52%; 92.61%; 0.02%
       O que significa que no soquete 0, para 3994206932 pulsos de clock da PCU, o processador gastou:
      • 98,52% na banda 0: freq >= 0 GHz,
      • 92,61% na banda 1: freq >= 1,2 GHz,
      • 0,02% na banda 2: freq >= 2,7 GHz, O soquete mal atingiu a frequência nominal (2,7 GHz) ou o modo turbo (2,8 GHz ou mais)
  • opção '-p 1' que mostra as residências de frequência C-state
    • A unidade é o número de núcleos do soquete que estavem em C0, C3 ou C6 durante o intervalo de medição.
    • Em um sistema ocupado, você pode obter:
       S0; PCUClocks: 26512878934; core C0/C3/C6-state residency: 7.28; 0.00; 0.72
       O que significa que, para o soquete 0, durante o intervalo, em média 7,28 núcleos estavam em C0 (o modo de potência total), 0,0 núcleos estavem em C3 (um estado de baixa potência) e 0,72 núcleos estavam no estado C6 (um estado de potência ainda mais baixo).
  • a opção '-p 2' mostra residências Prochot (suspensas) e ciclos de limite de frequência térmica
    • Por exemplo, em um sistema ocupado, você pode obter:
       S0; PCUClocks: 50540355190; Internal prochot cycles: 0.00 %; External prochot cycles:0.00 %; Thermal freq limit cycles:0.00%
       Então o processador não atingiu nenhuma suspensão térmica.
  • a opção '-p 3' mostra os ciclos de limite de frequência {Thermal,Power,Clipped}
    • Em um sistema ocupado, você pode obter:
       S0; PCUClocks: 26724849741; Thermal freq limit cycles: 0.00 %; Power freq limit cycles:2.36 %; Clipped freq limit cycles:89.63 %
       Então, para o soquete 0:
      • a frequência foi limitada por fatores térmicos em 0,0% do tempo Este dado se baseia no evento da PCU 0x4 FREQ_MAX_LIMIT_THERMAL_CYCLES.
      • o uso de potência limitou a frequência em 2,36% do tempo Este dado se baseia no evento da PCU 0x5 FREQ_MAX_POWER_CYCLES.
      • o uso de corrente limitou a frequência em 89,63% do tempo Este dado se baseia no evento da PCU 0x7 FREQ_MAX_CURRENT_CYCLES.
  • a opção '-p 4' mostra os ciclos de limite de frequência {OS,Power,Clipped}
    • Em um sistema ocupado, você pode obter:
       S0; PCUClocks: 26170529847; OS freq limit cycles: 6.09 %; Power freq limit cycles:2.39 %; Clipped freq limit cycles:91.51 %
       Então, para o soquete 0:
      • a frequência foi limitada pelo sistema operacional em 6,09% do tempo. Este dado se baseia no evento da PCU 0x6 FREQ_MAX_OS_CYCLES.
      • o uso de potência limitou a frequência em 2,39% do tempo Este dado se baseia no mesmo evento da opção '-p 3', segundo evento.
      • o uso de corrente limitou a frequência em 91,51% do tempo Este dado se baseia no mesmo evento da opção '-p 3', terceiro evento.
  • a opção '-m -1' omite a saída PMU da PCU

Atualizações de plug-ins para Linux Ksysguard e Windows* Perfmon GUI

Além das ferramentas de linha de comando, os plug-ins gráficos do Linux Ksysguard e do Windows* Perfmon foram estendidos com métricas essenciais relacionadas a energia (C-states, espaço térmico livre, energia do processador e da DRAM).

Captura de tela do Ksysguard
 Figura 9: Plug-in Ksysguard do Intel PCM version 2.0 mostrando as métricas de energia.

Captura de tela do plug-in Windows* Perfmon
Figura 10: Plug-in Windows* Perfmon do Intel PCM version 2.0 mostrando as métricas de energia.

Lista de mudanças

 

Versão 1.0

  • Lançamento inicial

Versão 1.5

  • Integração no Windows* perfmon
  • Suporte para o processador Intel® Atom™

Versão 1.6

  • Suporte para o Intel® Xeon® série E7 (codinome da microarquitetura Intel: Westmere-EX)
  • Métrica de desempenho do on-core da segunda geração de processadores Intel® Core™ (microarquitetura Intel de codinome Sandy Bridge)
  • Suporte altamente experimental de algumas das microarquiteturas Intel anteriores (por exemplo, Penryn). Para habilitar, defina PCM_TEST_FALLBACK_TO_ATOM no cpucounter.cpp
  • Plug-in Linux KDE ksysguard aprimorado
  • Novas opções para o utilitário pcm de linha de comando
  • Suporte para mais de 64 núcleos no Windows 7 e no Windows Server 2008 R2
  • Suporte de Diretriz de compartilhamento da PMU para impedir colisões com outros agentes de monitoração de desempenho do processador (por exemplo, o Analisador de desempenho VTune™)

Versão 1.7

  • O Intel PCM é agora distribuído sob licença da BSD. Veja o arquivo license.txt no zip.
  • Suporta modelos adicionais de processadores com a microarquitetura Intel de codinome Nehalem.
  • Novas métricas: impressão de data e hora via instrução RDTSCP, residência de núcleo ativo C0 e algumas outras métricas derivadas.
  • Modo ou facilidades estendidas de configuração personalizada de núcleo
  • Correção de bugs

Versão 2.0

  • Suporte do Xeon série E5 (baseado na microarquitetura Intel de codinome Sandy Bridge EP/EN/E)
  • Saída em formato CSV para o utitário pcm de linha de comando (opção -csv)
  • Suporte de métricas básicas de energia (a disponibilidade varia dependendo da arquitetura do processador): C-states do núcleo e do encapsulamento, energia do processador de da memória DRAM, espaço térmico livre
  • Um novo utilitário de linha de comando (pcm-power) para fornecer maior capacidade de monitoração de potência e energia no Xeon série E5 (microarquitetura Intel de codinome Sandy Bridge EP/EN/E)
  • Estatística da residência de frequência (bandas)
  • Energia do processador e da DRAM
  • Estatísticas do estado CKE de suspensão da DRAM
  • Estatísticas de auto atualização da DRAM
  • Estatísticas do estado de economia de energia da QPI
  • Estatísticas dos C-states do núcleo
  • Estatísticas sobre as causas da diminuição da frequência
  • Ferramenta experimental de visualização OpenGL 3D para o Xeon série E5 de 2 soquetes (microarquitetura Intel de codinome Sandy Bridge EP)

Versão 2.1

  • Métrica de desempenho do on-core da terceira geração de processadores Intel® Core™ (microarquitetura Intel de codinome Ivy Bridge)

Versão 2.2

  • Suporte de SGI UV 2 (até 256 soquetes)
  • Suporte para métricas de uncore para a microarquitetura Intel de codinome Sandy Bridge E (soquete único)
  • Adição de estatísticas de transição de frequência para a ferramenta pcm-power
  • Correção de bugs

Versão 2.3

  • Suporte para Apple Mac OS X 10.7 ("Lion") e OS X 10.8 ("Mountain Lion")
  • Support para FreeBSD
  • Nova ferramenta para monitoração do tráfego de memória por canal na família de processadores Intel Xeon.

Versão 2.3.5

  • Suporte para o driver Linux perf driver experimental (veja Makefile e LINUX_HOWTO.txt)
  • Métricas de cache fíxo para o Intel Xeon E5 baseado na microarquitetura Intel de codinome Sandy Bridge-EP e Sandy Bridge-E de acordo com a errata
  • Adicionadas métricas de residência C1 de núcleo
  • Documentação e mensagens de erro aprimoradas

Versão 2.4

  • Suporte para métricas de largura de banda de memória na segunda, terceira e quatra gerações dos processadores Intel® Core™ usando contadores integrados de controlador de memória (Linux).
  • Suporte para métricas de largura de banda de memória em sistemas de servidor adicionais baseados nos processadores Intel® Xeon® E5.

Versão 2.5

  • Suporte para a quarta geração dos processadores Intel® Core™ (previamente com o codinome Haswell)
  • Novo utilitário (pcm-tsx) para monitoração das métricas de Intel® Transactional Synchronization Extensions (Intel® TSX) (sucesso transicional (ciclos totais / transicionais / abortados) e eventos TSX personalizados)
  • Novo utilitário (pcm-pcie) para a monitoração de tráfego de PCIe nos processadores Intel® Xeon® E5
  • Velocidade dos contadores de desempenho de leitura aumentada em um fator de até 3X com o uso da nova chamada PCM::getAllCounterStates
  • Suporte para o Windows 2012 adicionado

Versão 2.5.1:

  • Suporte para métricas de largura de banda de memória na segunda, terceira e quatra gerações dos processadores Intel® Core™ usando contadores integrados de controlador de memória  (Apple OS X).
  • Suporte para métrica de on-core para o processador Intel® Atom™ série S1200 (com codinome anterior de Centerton)
  • Correção de bugs

Versão 2.6:

  • Suporte para os processadores Intel® Xeon® série E5 (nome anterior da microarquitetura: Ivybridge-EP)
  • Suporte para o processador Intel® Core™ i5-4350U (nome anterior da microarquitetura: Haswell ULT)
  • Suporte para o processador Intel® Atom™ série C2000 (nome anterior da microarquitetura: Avoton)
  • Suporte para o processador Intel® Atom™ série C2000 (nome anterior da microarquitetura: Avoton)
  • APU de suporte para a programação de eventos “off-core response” da PMU. Um exemplo de uso é o novo utilitário pcm-numa.
  • Correção de bugs

Referências

Para obter respostas a suas perguntas e para fazer comentários sobre o Intel PCM e seus casos de uso, nós recomendamos o fórum Ajuste de software, otimização de desempenho e monitoração da plataforma.

[1] Drysdale, Gillespie, Valles "Performance Insights to Intel® Hyper-Threading Technology"

[2] Manual do desenvolvedor de software para as arquiteturas Intel® 64 IA-32, Volume 3B: Guia de programação do sistema, Parte 2

[3] Guia de programação do uncore do processador Intel® Xeon® série 7500

[4] Peggy Irelan e Shihjong Kuo "Performance Monitoring Unit Sharing Guide"

[5] David Levinthal "Performance Analysis Guide for Intel® Core™ i7 Processor and Intel® Xeon™ 5500 processors"

Intel, Xeon, Core e VTune são marcas comerciais da Intel Corporation nos Estados Unidos e em outros países. * Outras marcas e nomes podem ser propriedade de outras empresas. Os números dos processadores Intel não são indicação de desempenho. Os números dos processadores indicam as diferenças de recursos dentro de cada família de processadores, e não entre famílias de processadores diferentes. Vá para: http://www.intel.com/products/processor_number

Qualquer código fonte de software impresso neste documento é fornecido sob uma licença de software e só pode ser usado ou copiado de acordo com os termos de tal licença. O texto da licença de software está incluído na amostra de código.

A tecnologia Intel® Turbo Boost exige um sistema habilitado para a Tecnologia Intel® Turbo Boost. Consulte o fabricante do seu PC. O desempenho varia de acordo com o hardware, o software e a configuração do sistema. Para obter mais informações, visite o site http://www.intel.com.br/content/www/br/pt/architecture-and-technology/turbo-boost/turbo-boost-technology.html

Os resultados foram estimados com base na análise interna da Intel e são fornecidos apenas para fins de informação. Qualquer diferença no design ou na configuração do hardware ou software do sistema pode afetar o desempenho real.

Este software está sujeito às regulamentações administrativas de exportação dos EUA e a outas leis dos EUA e não pode ser exportado ou re-exportado para certos países (Burma, Cuba, Irã, Coreia do Norte, Sudão e Síria) ou para pessoas ou entidades proibidas de receberem exportações dos EUA (incluindo Partes Negadas, Nacionalidades Especialmente Designadas e entidades contidas na lista do Bureau of Export Administration (Agência de administração de exportações) ou envolvidas com tecnologia de mísseis ou com armas nucleares, químicas ou biológicas).

Licença e download

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.