4. O que a Intel fez ?
• CPU Host x86
• Tecnologia Intel® VT
• Otimizou as imagens x86
para android
• Acelerou o Android
Emulator entre 5x-10x
• Executa as instruções
x86 nativamente
• Suporte ao OpenGL 2.0
5. O que a Intel fez ?
• Suporte ao MAC,
Windows
• E Linux (KVM)
• Suporte oficial pelo
SDK Manager (Extra)
7. E para usar ?
• Windows ou Mac
• Linux
• Adicionar no campo de
• Instalar o kvm
opções do emulador:
-qemu -m <mem> enable-kvm
• Ao executar o emulador
adicionar:
-qemu –m <N> -enable-kvm
9. Intel C++ Compiler for Android
• Compartilha a base do Intel C++ Compiler
13.0
• Melhor otimização para o Atom
• Compatível com Android NDK
• Compatível com o GCC
• Melhora de performace, em muitos casos,
apenas recompilando o código
• Instalação e configuração simples e rápida
10. Quando eu posso usar?
Ambiente de desenvolvimento Host
Ambiente de Desenvolvimento Target
Computer System
Devices com Android* OS
Qualquer sistema com processador Intel
ou um sistema compatível com o
processador Intel, que suporte os
requesitos de software
Qualquer sistema com processador intel
Software
Software
•Ubuntu* 10.04 or 11.04
•Android NDK r8e
•Intel C++ Compiler for Android OS
•Jelly Bean or Ice Cream Sandwich
11. Como eu posso obter uma cópia?
• Entre em: http://software.intel.com/ptbr/c-compiler-android
• E tenha um versão grátis do compilador
• É por tempo limitado
13. Intel ® GPA – System Analyzers
• Cpu host x86
• Perfis de perfomace e
energia.
• Gráficos real-time da
CPU, GPU e energia.
• Experimentos com o
OpenGL-ES*
Disponível em: intel.com/software/gpa
14. Começando a usar
1. Instalar o APK,
conectar com o PC
Host via adb
2. Rodar o Intel® GPA System
Analyzer
Na máquina de
desenvolvimento
3. Montar o seu profile
15. mais métricas ..
• Métrica baseada no
tempo de uso:
• Processador, Memória e
I/O.
• Métricas componetes
básicos
• Vertices, Primitivas,
Fragmentos e texturas
16. Algumas métricas ..
• Métricas dos
componetes da GPU
• USSE, TA, ISP, TSP
• OpenGL
• Qnt vertices (indexado)
• Qnt drawCalls
(indexado)
20. Beacon Mountain v0.6.1
• Ambiente de desenvolvimento NDK em
ARM* e Intel® Atom™ Devices
• Ferramentas para Design,
desenvolvimento e debug
• Notificações de Update
Grátis e de fácil instalação:
intel.com/software/BeaconMountain
22. Take Away
• Beacon Mountain
• Ambiente android para desenvolvimento NDK em ARM e x86
• HAXM:
• Se sua cpu é x86 ganhe de 5x – 10x de velocidade.
• GPA:
• Ferramenta para encontrar gargalos.
• Intel C++ Compiler for Android:
• Compile uma vez para melhorar seu binário.
Descrição do problema do AVD ser lento.O emulador do Android tem que emular as instruções ARM dentro da arquitetura x86 (isso consome muito processamento) E Executar estas instruções. Com isso temos que a virtualização da CPU no emulador, ou seja a CPU do emulador rodando como um software, Tornando o processo mais lento (bem lento). Somado ao fato que outros componente também tem que ser emulados, temos um problema.
Acelerou o emulador do android de 5-10x executando as instruções x86 nativamente.Utilizando bibliotecas e as tecnologias de virtualização da Intel otimizou-se as imagens de x86, para trabalharem melhor com o HAXM e rodarem mais rápido.O HAXM somente trabalha com imagens x86Suporte ao OpenGl 2.0.
Oferece suporte de instalação a MAC, Windows e atravez do KVM, para linux também.Esta tecnologia tem suporte oficial pelo SDK Manager (MAC e Windows), na parte Extra, e é fácil de se instalar.O HAXM somente trabalha com imagens x86
QEMU (the Quick EMUlator) é um emulador open source utilizado por vários outros projetos, que tem suporte a vários devices e perifericos.Uma vantagem de arquitetura do HAXM é o fato de ele executar nos dois lados do emulador. Dentro do alvo emulado (device android) e na máquina host. Isto permite que o emulador rode mais próximo da máquina hostIsto acontece ao se utilizar funções provenientes da tecnologia de virtualização da intel (intel VT)-processadore que suportem esta função >2005-, o processador emulado utilizando o HAXM, executa suas instruções no próprio processador do host.Vale resaltar que a interface entre o QEMU e o HAXM é independende de fornnecer, porem somente a Intel implementou esta interface. (não conheço outra tecnologia parecida)\O HAXM em conjunto com as imagen x86 foram testados, e hoje funcionam com perfeita sincronia.Estas vantagens n arquitetura faz, com que o HAXM seja até 10 vezes mais rápido que o emulador padrão com arm.Ganha-se mais velocidade na execução ao emular a GPU. (o HAXM não atua nisso).
Intel C++ Composer XE 2013 - $699Otimizaçõesproprietárias que fazem a o bináriosermelhor que o do gccAtençãoespecialaocosumo de energiaE melhorutilização do processadorintruções sse2, sse3VetorizaçãoAuto-vetorização
You need the ‘android:debuggable’ flag in you manifest set to ‘true’ to be able to analyse with GPA(Automatically set by ant and eclipse while building a debug version)
Adb can be used over usb as well as over wifi (using tcp/ip)Instalação Ubuntu .. AdicionarSUBSYSTEM=="usb",ATTRS{idVendor}=="8087",MODE="0666",OWNER="root"
USSE (Universal Scalable Shader Engine), temos USSE Vertex Load e USSE Pixel Load -processando instruções de Vertices e pixel (frame) USSE Total Load Métricas secudárias são USSE Verices/Second,USS Cycles/Vertex e USS Cycles/Pixel.
USSE (Universal Scalable Shader Engine), temos USSE Vertex Load e USSE Pixel Load -processando instruções de Vertices e pixel (frame) USSE Total Load Métricas secudárias são USSE Verices/Second,USS Cycles/Vertex e USS Cycles/Pixel.
Analisa a perfomace do TSP.Caso TSP Load >, (TA Load e/ou ISP Load). USSE Pixel Load for alto, temos que reduzir o fragment shander, que deve estar complexo. Texture Unit Load for alto, temos que reduzir a textura.
1x1 Scissor Rect. Neste modo, o processamento de pixel é desligado, do pipeline redering. Resultado Esperado: Aumento do frame rate.Caso contrário: A complexidade da geometria ou vertex shader, é o gargalo.Obs: Ao utilizar o Wireframe pode-se ter uma idéia da complexidade a complexidade da geometria.No caso da complexidade não ser o gargalo, então o vertex shander, é o gargalo.Disable Anpha Blending: Neste modo, iremos reduzir o número de transparência nos objetos, estamos reduzindo as operações de combinação.Disable Alpha Test: Neste modo, deliga-se o teste de descarte alpha test, assim teremos menos pixels sendo rederizados.Disable Z-Test: Neste modo, deliga-se o teste de descarte z-test, assim temos uma analise sobre as operações no Z-buffer.Resultado Esperado: Aumenta-rá a perfomace, pois não utilizará o Z-test no pipeline.OBS: Neste caso pode-se analisar, a redundância de geometrias primitivas. Analise das primitivas em si. Deste modo, temos uma ferramente para analisar o quanto as primitivas estão impactando na qualidade da imagem, e assim tomar uma decisão.