A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ferramentas para otimização Modulo II. Agenda  Compilador Microsoft®  Compilador Intel®  Intel® VTune™

Apresentações semelhantes


Apresentação em tema: "Ferramentas para otimização Modulo II. Agenda  Compilador Microsoft®  Compilador Intel®  Intel® VTune™"— Transcrição da apresentação:

1 Ferramentas para otimização Modulo II

2 Agenda  Compilador Microsoft®  Compilador Intel®  Intel® VTune™

3 Ferramentas Compilador Microsoft®

4  Microsoft EVC 3.0 IDE  IDE padrão para PocketPC/Smartphone 2002 SDK  Vem com compilador 3.0  Suporte apenas para ARM genérico  Microsoft EVC 4.2 IDE [Para PocketPC/Smartphone 2003]  Possui SDK para PocketPC 2003 e Smartphone 2003  Não possui SDK para PocketPC/Smartphone 2002  Suporte interno para extensões DSP e co-processador iMPT  Suporta programação para Intel® XScale™  Não suporta rotinas intrinsecas WMMX nem outras extensões WMMX  Compilador ECV 4.2 pode ser instalado na IDE 3.0  Compilador para microprocessador Intel® XScale™ pode ser instalado no ambiente EVC 3.0

5 Suporte interno no compilador eVC 4.2 Função internaInstrução Assembly XScale™Descrição void _SmulAdd_SL_ACC( int Arg1, int Arg2 ); MIA ( ) acc0, Rm, RsMIA multiplica o valor no registrador Rs pelo valor no Registrador Rm e soma o resultado ao acumulador de 40 bits void _SmulAddPack_2SW_ACC( int Arg1, int Arg2 ); MIAPH ( ) acc0, Rm, RsA instrução MIAPH faz duas multiplicações de 4 inteiros de 16 bits dois a dois e soma os resultados ao acumulador de 40 bits void _SmulAddLo_SW_ACC( int Arg1, int Arg2 ); MIABB ( ) acc0, Rm, RsFaz uma multiplicação de 16 bits utilizando as metades menos significativas de Rm e Rs e soma ao acumulador de 40 bits void _SmulAddHi_SW_ACC( int Arg1, int Arg2 ); MIATT ( ) acc0, Rm, RsFaz uma multiplicação de 16 bits utilizando as metades mais significativas de Rm e Rs e soma ao acumulador de 40 bits void _SmulAddLoHi_SW_ACC( int Arg1, int Arg2); MIABT ( ) acc0, Rm, RsFaz uma multiplicação de 16 bits usando a metade menos significativa de Rm e a metade mais significativa de Rs e soma ao acumulador de 40 bits

6 Suporte interno no compilador EVC 4.2 Função internaInstrução Assembly XScale™Descrição void _SmulAddHiLo_SW_ACC( int Arg1, int Arg2 ); MIATB ( ) acc0, Rm, RsFaz uma multiplicação de 16bits usando a metade menos significativa de Rm e a metade mais significativa de Rs e soma ao acumulador de 40 bits void _WriteCoProcessor( __int64 Arg1, int Arg2 ); MAR ( ) acc0, Rm, RsMove os 40 bits menos significativos de Arg1 ao acumulador de 40 bits, Arg2 é o número de co-processador, deve ser 0 __int64 _ReadCoProcessor( int Arg1 ); MRA ( ) acc0, Rm, RsRetorna o valor do co-processador. O Arg1 é o número do co-processador, deve ser 0 void _PreLoad( unsigned long *addr ); PLD ( ) acc0, Rm, RsEssa instrução é utilizada para carregar previamente dados na memória Cache

7 Instalando o Compilador 4.0 no IDE EVC 3.0 Instale IDE Microsoft EVC 3.0 Instale IDE Microsoft EVC 4.2 – Note o diretório de instalação, ele é diferente do IDE 3.0 Inicie o IDE EVC 3.0, escolha Tools -> Options na barra de menus Escolha a aba Directories Na List Box “Show Directories”, escolha “Include Files” Dê um duplo clique no espaço em branco com a caixa vermelha Clique no botão “...” Ache o diretório com os arquivos de include do compilador 4.2, aperte OK Desenvolvendo para sistemas PocketPC/Smartphone 2002

8 Instalando o Compilador 4.0 no IDE EVC 3.0 Selecione o novo diretório adicionado e com a seta para cima carregue este diretório até o topo da lista – Isto fará com que ele seja procurado primeiro

9 Instalando o Compilador 4.0 no IDE EVC 3.0  Vá até o diretório:  C:\Arquivos de Programas\Microsoft Embeeded Tools\EVC\wce300  Copie o diretório bin  Renomeie o diretório copiado para obin  Localize o diretório bin do compilador 4.2  Selecione todos os arquivos bin para serem copiados  Copie-os sobre os arquivos do diretório wce300\bin  Se você precisar voltar à versão antiga  Renomeie o diretório bin para nbin  Renomeie o diretório obin para bin  Remova a referência do diretório 4.2 do Include File

10 Ajustando opções específicas para o microprocessador Intel® XScale™ no compilador 4.0  Vá até Project -> Settings  Certifique-se de que o módulo selecionado é o módulo do projeto  As opções do compilador são:  /QRxscale – o processador é o Intel® XScale™  /QRxscalesched – usa características do pipeline do Intel® XScale™  /QRdsp – usa extensões DSP da ARM

11 Qual compilador Microsoft está sendo usado?  Vá até Project-> Settings na barra de menu  Clique na aba C/C++  Na List Box “Category” escolha “Customize”  Desmarque “Supress startup banner”  Durante a compilação você verá o texto do compilador  Para VCC++ 3.0, a versão é  Para VCC++ 4.0, a versão é

12 Ferramentas Compilador Intel®

13 Compilador Intel  Integrado ao IDE Microsoft eVC  Suporte a Intrínsecas  Inclui vector analysis (com a chave /QTPxsc3)  Geralmente produz melhor compilação de todo o código (ganho de 8 a 10%)  Possui bibliotecas superiores – para programas de algoritmo intensivo, especialmente ponto flutuante, o ganho pode facilmente ser de 2x Usar o Compilador Intel e as Intrínsecas Wireless MMX é uma maneira fácil de incorporar desempenho Wireless MMX em uma aplicação

14 Opções do Compilador Intel® XScale™ Use /O3 – Digite manualmente na caixa “Additional Options” – Em alguns casos raros, a otimização é tão agressiva que a execução do programa falha – troque por /O2 A opção /O2 é encontrada em File->Settings, aba C++ Selecione o pushbutton /Qipo – Faz otimizações inter- procedurais – Pode causar algum aumento no tamanho do código

15 Usando o compilador Intel®  Depois da instalação, 3 novos itens aparecerão no menu “Tools”  “Compiler Options” habilita a seleção de chaves adicionais de otimização que não fazem parte do conjunto Microsoft  Habilita/Desabilita o compilador Intel®  Fornece documentação sobre as opções e outras características do compilador

16 Ferramentas Comparações entre os Compiladores

17 Dados de Aplicações sem WMMX O dado é o tempo em segundos A biblioteca de ponto flutuante faz grande diferença AplicaçãoGargaloMS 3.0MS 4.0Intel 1.1 PrimeMemória Mortgage Calculator Aritmética de ponto flutuante GapiDrawEscrita a memória Digital PersonaUso intensivo da CPU SpeechworksUso intensivo da CPU sem dados

18 Ferramentas Intel® VTune™ Ferramenta de Análise de Desempenho

19 VTune™ – Ferramenta de Análise Estatística de Desempenho para Intel® XScale™ Recolhe amostras em intervalos regulares de tempo, determinando qual função consome mais recursos da CPU (baseado no tempo) Determinando qual função causa a utilização mais ineficiente do processador (baseado em eventos) Usa a PMU encontrada apenas nos processadores Intel ®

20 VTune™ – Outros benefícios  Mede desempenho sem instrumentação  Apenas depura símbolos necessários  Mostra no código fonte quais são os “HotSpots” existentes na função  Dá conselhos de ajuste de desempenho

21 VTune™ - Performance Tuning Advice

22 O que é amostragem estatística?  Amostragem significa que a informação é obtida sobre o processo, a thread e o módulo atual com a localização no módulo quando o evento ocorre  Eventos ocorrem em algum intervalo  Baseado em um intervalo de tempo  Baseado no número de eventos de uso ou travamento de recursos  Supõe-se que a cada intervalo o código em execução é o mesmo, ou seja, não mudou desde o último evento

23 VTune™ - Hot Spot View Exibe quais funções usam mais a CPU. Note a escala e a diferença entre o timer e o timer event

24 VTune – Análise de eventos  O VTune habilita a captura de dados estatísticos de eventos  Eventos são capturados pela PMU, tipicamente representam travamento de recursos, por exemplo:  Travamento por dependência de dados  Perda de cache de instruções  Perda de cache de dados  Buffer de dados não disponível

25 VTune – Análise de eventos  Depois de um número de eventos pré-definidos, uma amostra é obtida  Determinada pela calibração, NÃO PULE ESTE PASSO!  Falha na escolha da calibração apropriada resulta em interferência entre ISR e a aplicação  Até 2 eventos podem ser capturados em conjunto com amostras baseadas em tempo. No PXA27x (Bulverde) até 4 eventos.

26 Eventos PMU para Intel® XScale™ Número Definição Número Definição 0x0 Fracasso na cache de instruções 0x7 Instrução executada 0x1 Cache de instruções não pode entregar a instrução 0x8 Travamento devido a lotação da D-Cache 0x2 Travamento por dependência de dados 0x9 Sequência contígua do evento 0x8 0x3 Fracasso em instrução TLB 0xa Acesso a Data cache 0x4 Fracasso em dado TLB 0xb Fracasso na Data cache 0x5 Desvio de instrução executado 0xc Data cache write-back 0x6 Fracasso em predição de desvio 0xd Software mudou PC

27 Hotspots baseados em tempo e eventos Tempos e eventos são apresentados no mesmo gráfico. A escala em cada é completamente diferente

28 Preparando seu código para uma execução do VTune™  Em Project->Settings  Tenha certeza que projeto (topo) está selecionado  Pressione a guia C++  Na caixa Debug Info, selecione Program Database

29  Vá para a guia Link  Tenha certeza que a caixa Generate debug info está marcada Preparando seu código para uma execução do VTune™

30 VTune ™ - Como o Data Collector trabalha  O Data Collector é utilizado para ajustar intervalos de amostra na PMU  Executa-se a aplicação, as interrupções são direcionadas pela PMU para colher dados  ISR coleta um histórico de amostras, informações sobre qual módulo, qual processo, qual linha de execução (thread) Requer uma construção especial de uma imagem ROM para plataformas baseadas em WinCE Data Collector Aplicação em teste com informações de Debug Informações ISR  Arquivos da Saída:  Arquivo de amostra (.rsf) – Dados de amostra das interrupções da PMU  Arquivo de módulo (.rmf) – Lista dos módulos e localizações

31 Depois de coletar os dados  Use o ActiveSync para copiar os arquivos.rsf e.rmf para o Host  Use um diretório próximo à raiz com nome simples, exemplo: c:\vtune  Converta usando buildtbxxsc  Será necessário os utilitários de conversão no mesmo diretório da conversão  Associe o arquivo.tb5 com o VTune  C:\Arquivos de programas\Intel\VTune\Shared\Bin\VtuneEnv.exe

32 Depois de coletar os dados  Os utilitários de conversão:  Tbsutil.dll  Convert5.exe  Builtbxxsc.exe  Copie estes arquivos de C:\Arquivos de programas\Intel\VTune\RDC for XSC2\Host para o seu diretório de conversão

33 Abrindo o arquivo no VTune Você terá de responder isto o tempo todo Marque “Do not import, just view the file” e pressione OK

34 Associação com arquivo binário  Quando você entrar nos Hotspots, você será perguntado para associar com o arquivo binário  O VTune usa isto para encontrar a localização das funções junto do módulo  Procure o diretório do seu projeto, então entre no diretório ARMV4Dbg ou ARMV4Rel  Selecione o binário do seu projeto

35 Entendendo os modos de visão do VTune™  O VTune habilita a observação de dados coletados por Process, Thread, Módulo ou HotSpot  No modo Process (processos), o VTune apresentará as amostras de todos o processos do dispositivo  No modo Thread (linhas de execução), ele apresentará todas as threads dependentes do processo escolhido  No modo Module (módulo), ele apresentará todas as amostras de cada módulo que estavam em execução. Um módulo é um código executável carregado em um local. Quando seu programa chama uma DLL, ele continua no mesmo processo e thread, mas em um módulo diferente  No modo HotSpot é apresentado como todas as amostras estão distribuídas por função para o módulo selecionado

36 Dicas do VTune™  Associe o arquivo.tb5 com o VTune  Isso torna mais fácil a abertura do arquivo  Você pode ordenar os dados por ascendência ou descendência  O VTune permite que você organize os dados em uma planilha, útil para captar dados para análises futuras  Você não pode salvar as informações, mas você pode recortar e colar em uma outra planilha

37 Dicas do VTune™  Considere o uso de “Print Screen” para captar marcas significativas  Cole no PowerPoint  Antes da otimização  Depois da otimização  Certifique-se em qual modo de visão você está  Processos - Thread - Módulo  Seja cuidadoso sobre o que foi medido, quando o VTune executa a aplicação a medida funciona melhor  Executando a aplicação manualmente, ou executando uma aplicação que requer interação do usuário com o VTune, gera uma variação nos resultados, aparece VTIdle (VTune fica ocioso)

38 Dicas do VTune™ - Seja cuidadoso na forma de interpretar os dados  Gráficos de barras no módulo Process possuem abscissa com unidades em 100, que não são unidades de medida, nem são porcentagem!  As porcentagens das funções são as porcentagem do módulo, não do processo, e não de tudo; desse modo todas as porcentagens de tempo das funções em um módulo somam 100  Os eventos estão em número de interrupções, é preciso multiplicar esse número pelo número de eventos acontecidos por interrupção  Diferentes eventos são desenhados em escalas completamente diferentes no mesmo gráfico  Os clocks estão em ticks ou em milissegundos, isso pode ser confuso

39 Dicas do VTune™ - Ligação incorreta ou quebrada de símbolos  Seja cuidadoso em recompilações  Separe os diretórios de resultados do VTune para diferentes experimentos, também separe os diretórios de projetos  O VTune utiliza informações do  Arquivo executável (.exe)  Diretório do projeto  Copie o arquivo.exe do PDA em um diretório separado, aponte o Vtune para aquele arquivo.exe  Seja cuidadoso ao sobrescrever os arquivos.rsf,.rmf,.tb5, apague os arquivos.sdb (arquivos de símbolo), force o VTune a recriar as informações de símbolos

40 Dicas do VTune™ - Interrupções imprecisas  Sempre tenha em mente como o VTune obtém o dados  É possível que uma função gere 99% dos eventos, mas após a próxima função ser chamada a interrupção ocorre, ela será responsabilizada por todos os eventos. Ao longo de todo o processo de medida isso não é um problema a não ser que haja coincidência específica entre a amostragem e as chamadas das funções  A natureza imprecisa do VTune faz o ponto exato no fonte ser incerto  Considerando as incertezas nas informações obtidas  Contínua útil para aproximações

41 VTune™ - Imagens com Suporte  Requer PMU encontrada em XScale™  Não trabalha em SA1110  Requer modificação no Windows CE para a BSP  A imagem ROM deve ser construída para suportar PMU  Para Windows CE  Placa Lubbock, intrínseco  Recarga especial no PocketPC somente no IPAQ 3950  Viewsonic PC V35 (PPC 2002)  Todos PPC 2003 e SmartPhones 2003  Axim X3 PPC 2003  Mitac 8390 SmartPhome 2003

42 Módulo II LaboratórioObjetivos: - Instalar o compilador Microsoft 4.2 na IDE do eVC Usar o Compilador Intel C++ for Intel XScale Processor - Obter métricas iniciais de performance


Carregar ppt "Ferramentas para otimização Modulo II. Agenda  Compilador Microsoft®  Compilador Intel®  Intel® VTune™"

Apresentações semelhantes


Anúncios Google