SlideShare a Scribd company logo
1 of 36
Development and
optimization
Android* x86 applications
Pavel Chupin
Staff Software Engineer
October 2013
Agenda
• Where we are on Android*
• Tools to start development on IA
• Get full speed with Android* NDK
• Tips and tricks on porting from ARM* to IA

• Resources and contacts

2
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Devices

3
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Devices details
Model number
(codename)
Atom Z2460
(platform
Medfield)[4][5]
Atom Z2480
(platform
Medfield)
Atom Z2420
(Lexington)[15]

Availabili
Utilizing devices
ty
Lenovo K800, Orange San
L1: 32kB Instruction
32-bit Dual-channel
Diego, Lava XOLO X900,
1.6 GHz single-core
PowerVR SGX 540 @
+ 24kB Data, L2:
400 MHz LPDDR2Q2 2012 MegaFon Mint, ZTE Grand X IN,
Saltwell
400 MHz
512kB
800 (6.4 GB/sec)
Ramos W32, XOLO x910,
Senkatel Maximus
L1: 32kB Instruction
32-bit Dual-channel
2 GHz single-core
PowerVR SGX 540 @
Motorola RAZR i, XOLO X1000,
+ 24kB Data, L2:
400 MHz LPDDR22012
Saltwell
400 MHz
Casper Via A6108
512kB
800 (6.4 GB/sec)
CPU

CPU cache

GPU

Memory
technology

L1: 32kB Instruction
32-bit Dual-channel
Xolo X500, Yolo, Acer Liquid
1.2 GHz single-core
PowerVR SGX 540 @
+ 24kB Data, L2:
400 MHz LPDDR2Q1, 2013 C1, Asus FonePad, Etisalat ESaltwell
400 MHz
512kB
800 (6.4 GB/sec)
20, Prestigio Multiphone 5430

L1: 32kB Instruction
32-bit Dual-channel
PowerVR SGX 545 @
+ 24kB Data, L2:
400 MHz LPDDR2Q4 2012
533 MHz
512kB (per core)
800 (6.4 GB/sec)

Asus VivoTab, Asus VivoTab
Smart, HP Envy x2, HP ElitePad
900, Dell Latitude 10 Lenovo
Thinkpad Tablet 2, Lenovo
IdeaTab Lynx, Samsung Series
5 Slate Acer Iconia W510 ZTE
V98, Acer Iconia W3, Samsung
ATIV Tab 3

Atom Z2560
1.6 GHz dual-core
(Clover Trail+)[41] Saltwell

L1: 32kB Instruction
PowerVR SGX 544
+ 24kB Data, L2:
MP2 @ 400 MHz
512kB (per core)

32-bit Dual-channel
533 MHz LPDDR2Q2 2013
1066 (8.5 GB/sec)

ASUS FonePad Note FHD 6,
Asus Memo Pad FHD 10,
Samsung Galaxy Tab 3 10.1inch

Atom Z2580
2 GHz dual-core
(Clover Trail+)[46] Saltwell

L1: 32kB Instruction
PowerVR SGX 544
+ 24kB Data, L2:
MP2 @ 533 MHz
512kB (per core)

32-bit Dual-channel
533 MHz LPDDR2Q2 2013
1066 (8.5 GB/sec)

Lenovo K900, ZTE Grand X2 In

Atom Z2760
(Cloverview,[23]
platform Clover
Trail[24]

1.8 GHz dual-core
Saltwell

4
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Next gen: Silvermont™ architecture

•

22nm SoC process using 3-D Tri-gate transistors
Out of order execution
Scalable up to 8x cores
SIMD support up to SSE4.2
Up to ~3x peak performance at ~5x lower power over
the current-generation Intel® Atom™ processor core*
Will appear in 2013
Coming soon

•

*More details here:

•
•
•
•
•

http://newsroom.intel.com/community/intel_newsroom/blog/2013/05/06/intel-launcheslow-power-high-performance-silvermont-microarchitecture

5
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Agenda
• Where we are on Android*
• Tools to start development on IA
• Get full speed with Android* NDK
• Tips and tricks on porting from ARM* to IA

• Resources and contacts

6
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Beacon Mountain Preview v0.6.1
A Development Environment for Native Android* Apps
on ARM* & Intel® Atom™ Devices

Intel & Third-Party Tools
Host Support for
Microsoft Windows* 7 & 8
and Apple OS X*
Android* Support for Jelly
Bean 4.2 and up

Free download at:
intel.com/software/BeaconMountain
7
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Beacon Mountain Preview v0.6.1
A Development Environment for Native Android* Apps
on ARM* & Intel® Atom™ Devices






Comprehensive Android* Development Environment
For Intel® Atom™ & ARM* Smartphones, Tablets
App Tools for Design, Code, Debug & Acceleration
Update Notifications and Optional installation
Helps Shorten the Android* App Development Cycle

Intel Tools for x86
 Intel® Hardware Accelerated Execution
Manager
 Intel® Graphics Performance Analyzers
System Analyzer
 Intel® Integrated Performance Primitives
Preview
 Intel® Threading Building Blocks
 Intel® Software Manager

Third-Party Tools for ARM/x86
 Google* Android* SDK (ADT Bundle)
 Android* NDK
 Eclipse* Integrated Development
Environment
 Android* Design
 Cygwin* (for Microsoft* Windows operating
systems)

Free and Easy installation:
intel.com/software/BeaconMountain
8
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Intel Tools
Supporting Intel® AtomTM Devices
Intel® Hardware Accelerated Execution Manager

A hardware-assisted virtualization engine that uses Intel® Virtualization Technology to speed
up Android* emulation in a host environment.

Intel® Graphics Performance Analyzers System Analyzer

Optimize OpenGL* ES 1.0/2.0 workloads by providing a real-time view of over two dozen critical
system metrics covering the CPU, GPU, and the OpenGL* ES API.

Intel® Threading Building Blocks

C++ template library of pre-tested algorithms and features allow developers to efficiently
thread C++ mobile applications for performance, while lowering system energy.

Intel® Integrated Performance Primitives Preview

A library of pre-optimized image processing functions supporting Intel® smartphone and tablet
platforms running Android* OS. The preview release is a subset of the full Intel IPP product.

Intel® Software Manager

A utility that pushes messages about tool updates and other communications to developers.
9
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Third-Party Tools

Supporting Intel® Atom™ & ARM* Devices

Google* Android* SDK (ADT Bundle for Microsoft Windows*)
API libraries and developer tools to build, test, and debug apps for Android
Android* NDK for x86
Supports implementation of application code using native C++/C

Eclipse* Integrated Development Environment
Part of the ADT bundle. Provides an integrated environment to build applications
Android* Design
Stencils, icons, styles and more to use within apps without restriction
Cygwin*
Linux-like environment for mixing Java and C/C++ code on Windows* systems
Oracle* Java SE Development Kit
A tool for building applications and components using Java1
10

1

Beacon Mountain checks your system to ensure you have the JDK installed. If you don’t, Beacon Mountain
directs you to the Oracle site to download the correct version
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Faster Android* Emulation using an IA-based host
PC
Pre-built Atom Images
• Android* SDK manager has x86 emulation
images built-in
• To emulate an Atom-based Android* phone,
install the “Intel Atom x86 System Image”
available in the Android* SDK Manager

Much Faster Emulation
• Intel® Hardware Accelerated Execution Manager
(HAXM) for Mac and Windows uses Intel®
Virtualization Technology (VT) to accelerate
Android* emulator by 2-4x
• Intel VT is already supported in Linux* (KVM) for
x86.

See www.intel.com/software/Android*
for demo videos & installation tips

11
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.

Intel x86 Atom
System Image

Intel x86
Emulator
Accelerator
Intel® Graphics Performance Analyzers
System Analyzer for Android

• Real-time system-level
performance analysis for Intelbased Android* devices
• Immediate experiments and
overwrites enable developers to
isolate CPU and GPU
performance problems
• Metrics for CPU, GPU, API,
memory, network, power, etc.

12
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
For on-device app testing: Intel® GPA System
Analyzer
Real-time Remote Performance and Power Profiling
Real-timecharts:
•
•
•
•

CPU metrics
Graphics API level metrics
Processor graphics hardware metrics
Power metrics

Data
Android*
Smart
Phone

Intel® GPA System
Analyzer running on
a PC

USB adb Connection
Wi-Fi Connection
Download Intel® GPA for FREE at intel.com/software/GPA

13
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Intel® C++ Compiler for Android*
• Based on Intel® C/C++ Compiler XE 13.0
for Linux*
• Integrates into the Android* NDK as
additional toolchain which can be used from
the command-line
• Supports Intel® Atom™ processor
optimization

FREE
for
limited
time

Available on http://software.intel.com/c-compiler-android

14
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Agenda
• Where we are on Android*
• Tools to start development on IA
• Get full speed with Android* NDK
• Tips and tricks on porting from ARM* to IA

• Resources and contacts

15
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Android* Native Development Kit
(NDK)
Why use it?
• Performance intensive tasks
• signal-processing, complex algorithms, physics
simulation, graphics, etc.

• Take advantage of direct CPU/HW access
• write hot code using SIMD instructions

• Reuse code
• e.g. from PC segment

• Start from here:

http://developer.android.com/tools/sdk/ndk/index.html

16
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
NDK Application Development
C/C++
Code

APP_ABI := all
or APP_ABI := x86

SDK APIs

Java
calls

ndkbuild

Makefile

GDB
debug

through JNI

Java
Android* ApplicationsApplication
Java
Framework

JNI
Native Libs
Bionic C Library

17
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.

NDK APIs
Fat binaries build and install
libs/x86/mylib.so
myapp.apk
libs/arm/mylib.so
libs/arm-v7a/mylib.so
libs/mips/mylib.so
libs/x86/mylib.so
libs/?/mylib.so

18
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.

libs/arm-v7a/mylib.so
NDK compiler
• x86 is supported from NDK r6
• Get latest and greatest NDK-r9 (July 2013)!
• Support for Android* 4.3 (API level 18)
• GCC-4.8 included with Silvermont™ tuning available
(-march=slm/-mtune=slm switches)
• Bugfixes

19
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Android* C++ support

By default, libstdc++ is used. It lacks:
- Standard C++ Library support (except some headers)
- C++ exceptions support
- RTTI support
Fortunately, you have other libs available with the NDK:
Choose which library to
compile against in your
Makefile (Application.mk
file):

Runtime

Exceptions RTTI

STL

system

No

No

No

gabi++

Yes

Yes

No

stlport

Yes

Yes

Yes

APP_STL := gnustl_shared

gnustl

Yes

Yes

Yes

Postfix the runtime with
_static or _shared

For using C++ features, you also need to enable these in your Makefile:
LOCAL_CPP_FEATURES += exceptions rtti
20
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Why should I update GCC x86
compiler?
EEMBC® CoreMark® example
(higher = better)
base:

•

-O2 -ffast-math -mfpmath=sse -m32 -march=atom

•

base + if conversion

•

-O2 -ffast-math -mfpmath=sse -ftree-loop-if-convert
-m32 -march=atom

•

•

peak
•

-Ofast -funroll-loops -mfpmath=sse -m32 march=atom

for 4.4 and 4.5 versions “-Ofast” is replaced with O3 -ffast-math

http://software.intel.com/en-us/blogs/2013/05/28/why-should-i-update-gccx86-compiler-or-gcc-compiler-performance-on-intel-atom-from
21
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Recommended GCC compiler options
Optimization level:

•
•

use -O2 at least, -Ofast for peak

Architecture:

•
•
•
•

-march=atom –mtune=atom –mssse3 to target Atom
-march=slm –mtune=slm –msse4.2 to target Silvermont
Note: -march=atom turns on -mmovbe which is not supported on all
x86. To avoid add –mno-movbe.

Math:

•
•
•

-ffast-math – fast but less accurate. Usually you don’t care
-mfpmath=sse – use sse for FP calculations instead of i387

Even more performance:

•
•

-flto

•

-funroll-loops

More: http://software.intel.com/blogs/2012/09/26/gcc-x86performance-hints
22
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Recommended ICC compiler options
• Optimization level:
•

-O2 is default, -fast for peak (implies -static)

• Architecture:
•
•

-xATOM_SSSE3 to target Atom
-xATOM_SSE4.2 to target Silvermont (not available yet in
13.0)

• Math:
•
•

-no-prec-div – fast but less accurate. Usually you don’t care
-mfpmath=sse – use sse for FP calculations instead of i387

• Even more performance:
•
•

-O3
-ansi-alias

• -ipo
• -auto-p32
• -parallel
23
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Agenda
• Where we are on Android*
• Tools to start development on IA
• Get full speed with Android* NDK
• Tips and tricks on porting from ARM* to IA

• Resources and contacts

24
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Compatibility
“I want my app to run on all architectures”

• You already done for Java & HTML
• NDK based apps usually just needs a recompilation

APP_ABI := all

Application.mk

25
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Target compiler options
• NDK-build system Android.mk file evaluated for
each architecture
• Variable TARGET_ARCH_ABI describes actual
architecture

TARGET_ARCH_ABI

x86
armeabi
armeabi-v7a

ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_CFLAGS
:= -mtune=atom -mssse3
endif
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS
:= -march=armv7-a
Endif

mips

Android.mk

26
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Compiler macros
• Directly inside source code
• No runtime overhead
• Works with all build configurations
#ifdef __i386__
strlcat(buf, "__i386__", sizeof(buf));
#endif
#ifdef __arm__
strlcat(buf, "__arm__", sizeof(buf));
#endif
#ifdef __mips__
strlcat(buf, "__mips__", sizeof(buf));
#endif

source.c

27
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Porting Native (C/C++) Android* Apps to x86
http://software.intel.com/en-us/articles/ndk-android-application-portingmethodologies/

Native Apps
• Optimized NDK for Intel Atom
based devices available on
http://developer.android.com/sdk/n
dk/index.html since July’11.
• For most apps, changing the
make file and a recompile should
be sufficient to port to Intel Atom
devices.
• If ARM-specific features are used,
Intel SSE equivalents should be
added (build flag)
• Developer recompiles, repackages and publishes.

28
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Memory Alignment
By default
struct TestStruct {
int mVar1;
long long mVar2;
int mVar3;
};

Easy fix
struct TestStruct {
int mVar1;
long long mVar2 __attribute__ ((aligned(8)));
int mVar3;
};

29
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
ARM* NEON to Intel® SSE
• Single Instruction Multiple Data (SIMD)
• Most ARM NEON functions have a 1:1 equivalent in
Intel® SSE
• Intel provides C++ header file to do the mapping
// VADD.I8 d0,d0,d0
int8x8_t
vadd_s8(int8x8_t a, int8x8_t b);
#ifdef USE_MMX
#define vadd_s8 _mm_add_pi8
//MMX
#else
#define vadd_s8 _mm_add_epi8
#endif
NEONtoSSE.h
http://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intelmmxsse-automatic-porting-solution-tips-and-tricks

30
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Agenda
• Where we are on Android*
• Tools to start development on IA
• Get full speed with Android* NDK
• Tips and tricks on porting from ARM* to IA

• Resources and contacts

31
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Beacon Mountain on the Web
Your Source for Beacon Mountain Information & Support

 Free Download
 Product Brief
 Support Form

Follow us

@IntelSoftware

Free download at:
intel.com/software/BeaconMountain
32
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
For More Information on Individual Tools
PRODUCT

URL

Intel® Hardware Accelerated Execution
Manager

http://software.intel.com/
en-us/articles/intelhardware-acceleratedexecution-manager

Intel® Graphics Performance Analyzers

www.intel.com/software/gp
a

Intel® Threading Building Blocks

software.intel.com/vcsource
/tools/threading-buildingblocks

Intel® Integrated Performance Primitives

software.intel.com/intel-ipp

Intel® Software Manager

www.software.intel.com

Google* Android* SDK

www.developer.android.com

Android* NDK for x86

www.developer.android.com

Eclipse* Integrated Development Environment

http://www.eclipse.org/

Android* Design

www.developer.android.com

Cygwin*

http://cygwin.com/

Oracle* Java SE Development Kit

www.oracle.com

33
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Single entry point to remember 
http://software.intel.com/android/

34
Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the property of their respective owners.
Legal Disclaimer & Optimization Notice
INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY
ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS
DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR
IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY OR WARRANTIES
RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY
PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
Software and workloads used in performance tests may have been optimized for performance only on
Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using
specific computer systems, components, software, operations and functions. Any change to any of
those factors may cause the results to vary. You should consult other information and performance
tests to assist you in fully evaluating your contemplated purchases, including the performance of that
product when combined with other products.
Copyright © , Intel Corporation. All rights reserved. Intel, the Intel logo, Xeon, Xeon Phi, Core,
VTune, and Cilk are trademarks of Intel Corporation in the U.S. and other countries.

Optimization Notice

35

Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for
optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and
SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or
effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessordependent optimizations in this product are intended for use with Intel microprocessors. Certain
optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer
to the applicable product User and Reference Guides for more information regarding the specific
instruction sets covered by this notice.
Notice revision #20110804
Copyright© 2013, Intel Corporation. All rights reserved.
2012,
*Other brands and names are the property of their respective owners.
Павел Чупин_Development and optimization android x86 applications от Intel

More Related Content

Viewers also liked

Where the money is – Security of CBS.
Where the money is – Security of CBS.Where the money is – Security of CBS.
Where the money is – Security of CBS.
Positive Hack Days
 
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
Milena Silvester
 
Easytalk english-guide 2011-10-03
Easytalk english-guide 2011-10-03Easytalk english-guide 2011-10-03
Easytalk english-guide 2011-10-03
celikel
 
Cv y portfolio daniel dominguez ramírez
Cv y portfolio   daniel dominguez ramírezCv y portfolio   daniel dominguez ramírez
Cv y portfolio daniel dominguez ramírez
Daniel Domínguez
 
How Direct Marketing Applies in a Multichannel Marketing World
How Direct Marketing Applies in a  Multichannel Marketing WorldHow Direct Marketing Applies in a  Multichannel Marketing World
How Direct Marketing Applies in a Multichannel Marketing World
amdia
 

Viewers also liked (18)

Ito_Clower
Ito_ClowerIto_Clower
Ito_Clower
 
Where the money is – Security of CBS.
Where the money is – Security of CBS.Where the money is – Security of CBS.
Where the money is – Security of CBS.
 
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
17 latour, bruno_-_reagregando_o_social_uma_introdução_a_teoria_do_ator-rede
 
Curso de lider coach
Curso de lider coachCurso de lider coach
Curso de lider coach
 
Easytalk english-guide 2011-10-03
Easytalk english-guide 2011-10-03Easytalk english-guide 2011-10-03
Easytalk english-guide 2011-10-03
 
Cv y portfolio daniel dominguez ramírez
Cv y portfolio   daniel dominguez ramírezCv y portfolio   daniel dominguez ramírez
Cv y portfolio daniel dominguez ramírez
 
Cajas para, vinos y licores tot red
Cajas  para, vinos y licores tot redCajas  para, vinos y licores tot red
Cajas para, vinos y licores tot red
 
How Direct Marketing Applies in a Multichannel Marketing World
How Direct Marketing Applies in a  Multichannel Marketing WorldHow Direct Marketing Applies in a  Multichannel Marketing World
How Direct Marketing Applies in a Multichannel Marketing World
 
Publicidad de Emplazamiento
Publicidad de EmplazamientoPublicidad de Emplazamiento
Publicidad de Emplazamiento
 
Ensayo Diseñadores Gráficos Venezolanos e internacionales.
Ensayo Diseñadores Gráficos Venezolanos e internacionales.Ensayo Diseñadores Gráficos Venezolanos e internacionales.
Ensayo Diseñadores Gráficos Venezolanos e internacionales.
 
Tuneup utilities
Tuneup utilitiesTuneup utilities
Tuneup utilities
 
Proyecto ultimo corregido
Proyecto ultimo corregidoProyecto ultimo corregido
Proyecto ultimo corregido
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
Aves magacinedicion5
Aves magacinedicion5Aves magacinedicion5
Aves magacinedicion5
 
Lean sigma cambio acelerado qce_jf
Lean sigma  cambio acelerado qce_jfLean sigma  cambio acelerado qce_jf
Lean sigma cambio acelerado qce_jf
 
ECODISEÑO EMPRENDIMIENTOAnexo 41 laboratorio de emprendimiento c3+d mxp.lab
ECODISEÑO EMPRENDIMIENTOAnexo  41 laboratorio de emprendimiento c3+d mxp.labECODISEÑO EMPRENDIMIENTOAnexo  41 laboratorio de emprendimiento c3+d mxp.lab
ECODISEÑO EMPRENDIMIENTOAnexo 41 laboratorio de emprendimiento c3+d mxp.lab
 
HACIA UNA FORMACIÓN CIENTÍFICA EN Y PARA LA CIVILIDAD: LA ARGUMENTACIÓN EN EL...
HACIA UNA FORMACIÓN CIENTÍFICA EN Y PARA LA CIVILIDAD: LA ARGUMENTACIÓN EN EL...HACIA UNA FORMACIÓN CIENTÍFICA EN Y PARA LA CIVILIDAD: LA ARGUMENTACIÓN EN EL...
HACIA UNA FORMACIÓN CIENTÍFICA EN Y PARA LA CIVILIDAD: LA ARGUMENTACIÓN EN EL...
 
Construcción industrializada con elementos prefabricados de hormigón
Construcción industrializada con elementos prefabricados de hormigónConstrucción industrializada con elementos prefabricados de hormigón
Construcción industrializada con elementos prefabricados de hormigón
 

More from Apps4All

Аудитория мобильного Интернета
Аудитория мобильного ИнтернетаАудитория мобильного Интернета
Аудитория мобильного Интернета
Apps4All
 
Goal number one
Goal number oneGoal number one
Goal number one
Apps4All
 
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
Apps4All
 
Александра Кочеткова Touch'anka
Александра Кочеткова Touch'ankaАлександра Кочеткова Touch'anka
Александра Кочеткова Touch'anka
Apps4All
 
Измерение мобильной аудитории: в поисках валюты рынка
Измерение мобильной аудитории: в поисках валюты рынкаИзмерение мобильной аудитории: в поисках валюты рынка
Измерение мобильной аудитории: в поисках валюты рынка
Apps4All
 
Ваща аудитория в мобильных социальных сетях
Ваща аудитория в мобильных социальных сетяхВаща аудитория в мобильных социальных сетях
Ваща аудитория в мобильных социальных сетях
Apps4All
 
Использование мобильных приложений
Использование мобильных приложенийИспользование мобильных приложений
Использование мобильных приложений
Apps4All
 
Аудитория мобильного Интернета
Аудитория мобильного ИнтернетаАудитория мобильного Интернета
Аудитория мобильного Интернета
Apps4All
 
Сурен Макарян Mobile Info
Сурен Макарян  Mobile InfoСурен Макарян  Mobile Info
Сурен Макарян Mobile Info
Apps4All
 
Игорь Еремен iVengo
Игорь Еремен iVengoИгорь Еремен iVengo
Игорь Еремен iVengo
Apps4All
 
Елена Пикунова Opera Mediaworks
Елена Пикунова Opera MediaworksЕлена Пикунова Opera Mediaworks
Елена Пикунова Opera Mediaworks
Apps4All
 
Андрей Шатров WapStart
Андрей Шатров WapStartАндрей Шатров WapStart
Андрей Шатров WapStart
Apps4All
 
Cергей Джейгало Major Domo
Cергей Джейгало Major DomoCергей Джейгало Major Domo
Cергей Джейгало Major Domo
Apps4All
 
Григорий Ситнин Z-Wave.me
Григорий Ситнин Z-Wave.meГригорий Ситнин Z-Wave.me
Григорий Ситнин Z-Wave.me
Apps4All
 
Сергей Коренев Zoomby
Сергей Коренев ZoombyСергей Коренев Zoomby
Сергей Коренев Zoomby
Apps4All
 
Сергей Быков ivi.ru
Сергей Быков ivi.ruСергей Быков ivi.ru
Сергей Быков ivi.ru
Apps4All
 
Аркадий Левин Антология русской поэзии
Аркадий Левин Антология русской поэзииАркадий Левин Антология русской поэзии
Аркадий Левин Антология русской поэзии
Apps4All
 
Алена Соснина Enaza
Алена Соснина EnazaАлена Соснина Enaza
Алена Соснина Enaza
Apps4All
 

More from Apps4All (20)

Презентация хакатона Apps4All 13-14 декабря 2013
Презентация хакатона Apps4All 13-14 декабря 2013Презентация хакатона Apps4All 13-14 декабря 2013
Презентация хакатона Apps4All 13-14 декабря 2013
 
Презентация хакатона Apps4All 13-14 декабря 2013
Презентация хакатона Apps4All 13-14 декабря 2013Презентация хакатона Apps4All 13-14 декабря 2013
Презентация хакатона Apps4All 13-14 декабря 2013
 
Аудитория мобильного Интернета
Аудитория мобильного ИнтернетаАудитория мобильного Интернета
Аудитория мобильного Интернета
 
Goal number one
Goal number oneGoal number one
Goal number one
 
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
Лучшие практики подготовки к переводу мобильных приложений к выпуску качестве...
 
Александра Кочеткова Touch'anka
Александра Кочеткова Touch'ankaАлександра Кочеткова Touch'anka
Александра Кочеткова Touch'anka
 
Измерение мобильной аудитории: в поисках валюты рынка
Измерение мобильной аудитории: в поисках валюты рынкаИзмерение мобильной аудитории: в поисках валюты рынка
Измерение мобильной аудитории: в поисках валюты рынка
 
Ваща аудитория в мобильных социальных сетях
Ваща аудитория в мобильных социальных сетяхВаща аудитория в мобильных социальных сетях
Ваща аудитория в мобильных социальных сетях
 
Использование мобильных приложений
Использование мобильных приложенийИспользование мобильных приложений
Использование мобильных приложений
 
Аудитория мобильного Интернета
Аудитория мобильного ИнтернетаАудитория мобильного Интернета
Аудитория мобильного Интернета
 
Сурен Макарян Mobile Info
Сурен Макарян  Mobile InfoСурен Макарян  Mobile Info
Сурен Макарян Mobile Info
 
Игорь Еремен iVengo
Игорь Еремен iVengoИгорь Еремен iVengo
Игорь Еремен iVengo
 
Елена Пикунова Opera Mediaworks
Елена Пикунова Opera MediaworksЕлена Пикунова Opera Mediaworks
Елена Пикунова Opera Mediaworks
 
Андрей Шатров WapStart
Андрей Шатров WapStartАндрей Шатров WapStart
Андрей Шатров WapStart
 
Cергей Джейгало Major Domo
Cергей Джейгало Major DomoCергей Джейгало Major Domo
Cергей Джейгало Major Domo
 
Григорий Ситнин Z-Wave.me
Григорий Ситнин Z-Wave.meГригорий Ситнин Z-Wave.me
Григорий Ситнин Z-Wave.me
 
Сергей Коренев Zoomby
Сергей Коренев ZoombyСергей Коренев Zoomby
Сергей Коренев Zoomby
 
Сергей Быков ivi.ru
Сергей Быков ivi.ruСергей Быков ivi.ru
Сергей Быков ivi.ru
 
Аркадий Левин Антология русской поэзии
Аркадий Левин Антология русской поэзииАркадий Левин Антология русской поэзии
Аркадий Левин Антология русской поэзии
 
Алена Соснина Enaza
Алена Соснина EnazaАлена Соснина Enaza
Алена Соснина Enaza
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Павел Чупин_Development and optimization android x86 applications от Intel

  • 1. Development and optimization Android* x86 applications Pavel Chupin Staff Software Engineer October 2013
  • 2. Agenda • Where we are on Android* • Tools to start development on IA • Get full speed with Android* NDK • Tips and tricks on porting from ARM* to IA • Resources and contacts 2 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 3. Devices 3 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 4. Devices details Model number (codename) Atom Z2460 (platform Medfield)[4][5] Atom Z2480 (platform Medfield) Atom Z2420 (Lexington)[15] Availabili Utilizing devices ty Lenovo K800, Orange San L1: 32kB Instruction 32-bit Dual-channel Diego, Lava XOLO X900, 1.6 GHz single-core PowerVR SGX 540 @ + 24kB Data, L2: 400 MHz LPDDR2Q2 2012 MegaFon Mint, ZTE Grand X IN, Saltwell 400 MHz 512kB 800 (6.4 GB/sec) Ramos W32, XOLO x910, Senkatel Maximus L1: 32kB Instruction 32-bit Dual-channel 2 GHz single-core PowerVR SGX 540 @ Motorola RAZR i, XOLO X1000, + 24kB Data, L2: 400 MHz LPDDR22012 Saltwell 400 MHz Casper Via A6108 512kB 800 (6.4 GB/sec) CPU CPU cache GPU Memory technology L1: 32kB Instruction 32-bit Dual-channel Xolo X500, Yolo, Acer Liquid 1.2 GHz single-core PowerVR SGX 540 @ + 24kB Data, L2: 400 MHz LPDDR2Q1, 2013 C1, Asus FonePad, Etisalat ESaltwell 400 MHz 512kB 800 (6.4 GB/sec) 20, Prestigio Multiphone 5430 L1: 32kB Instruction 32-bit Dual-channel PowerVR SGX 545 @ + 24kB Data, L2: 400 MHz LPDDR2Q4 2012 533 MHz 512kB (per core) 800 (6.4 GB/sec) Asus VivoTab, Asus VivoTab Smart, HP Envy x2, HP ElitePad 900, Dell Latitude 10 Lenovo Thinkpad Tablet 2, Lenovo IdeaTab Lynx, Samsung Series 5 Slate Acer Iconia W510 ZTE V98, Acer Iconia W3, Samsung ATIV Tab 3 Atom Z2560 1.6 GHz dual-core (Clover Trail+)[41] Saltwell L1: 32kB Instruction PowerVR SGX 544 + 24kB Data, L2: MP2 @ 400 MHz 512kB (per core) 32-bit Dual-channel 533 MHz LPDDR2Q2 2013 1066 (8.5 GB/sec) ASUS FonePad Note FHD 6, Asus Memo Pad FHD 10, Samsung Galaxy Tab 3 10.1inch Atom Z2580 2 GHz dual-core (Clover Trail+)[46] Saltwell L1: 32kB Instruction PowerVR SGX 544 + 24kB Data, L2: MP2 @ 533 MHz 512kB (per core) 32-bit Dual-channel 533 MHz LPDDR2Q2 2013 1066 (8.5 GB/sec) Lenovo K900, ZTE Grand X2 In Atom Z2760 (Cloverview,[23] platform Clover Trail[24] 1.8 GHz dual-core Saltwell 4 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 5. Next gen: Silvermont™ architecture • 22nm SoC process using 3-D Tri-gate transistors Out of order execution Scalable up to 8x cores SIMD support up to SSE4.2 Up to ~3x peak performance at ~5x lower power over the current-generation Intel® Atom™ processor core* Will appear in 2013 Coming soon • *More details here: • • • • • http://newsroom.intel.com/community/intel_newsroom/blog/2013/05/06/intel-launcheslow-power-high-performance-silvermont-microarchitecture 5 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 6. Agenda • Where we are on Android* • Tools to start development on IA • Get full speed with Android* NDK • Tips and tricks on porting from ARM* to IA • Resources and contacts 6 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 7. Beacon Mountain Preview v0.6.1 A Development Environment for Native Android* Apps on ARM* & Intel® Atom™ Devices Intel & Third-Party Tools Host Support for Microsoft Windows* 7 & 8 and Apple OS X* Android* Support for Jelly Bean 4.2 and up Free download at: intel.com/software/BeaconMountain 7 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 8. Beacon Mountain Preview v0.6.1 A Development Environment for Native Android* Apps on ARM* & Intel® Atom™ Devices      Comprehensive Android* Development Environment For Intel® Atom™ & ARM* Smartphones, Tablets App Tools for Design, Code, Debug & Acceleration Update Notifications and Optional installation Helps Shorten the Android* App Development Cycle Intel Tools for x86  Intel® Hardware Accelerated Execution Manager  Intel® Graphics Performance Analyzers System Analyzer  Intel® Integrated Performance Primitives Preview  Intel® Threading Building Blocks  Intel® Software Manager Third-Party Tools for ARM/x86  Google* Android* SDK (ADT Bundle)  Android* NDK  Eclipse* Integrated Development Environment  Android* Design  Cygwin* (for Microsoft* Windows operating systems) Free and Easy installation: intel.com/software/BeaconMountain 8 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 9. Intel Tools Supporting Intel® AtomTM Devices Intel® Hardware Accelerated Execution Manager A hardware-assisted virtualization engine that uses Intel® Virtualization Technology to speed up Android* emulation in a host environment. Intel® Graphics Performance Analyzers System Analyzer Optimize OpenGL* ES 1.0/2.0 workloads by providing a real-time view of over two dozen critical system metrics covering the CPU, GPU, and the OpenGL* ES API. Intel® Threading Building Blocks C++ template library of pre-tested algorithms and features allow developers to efficiently thread C++ mobile applications for performance, while lowering system energy. Intel® Integrated Performance Primitives Preview A library of pre-optimized image processing functions supporting Intel® smartphone and tablet platforms running Android* OS. The preview release is a subset of the full Intel IPP product. Intel® Software Manager A utility that pushes messages about tool updates and other communications to developers. 9 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 10. Third-Party Tools Supporting Intel® Atom™ & ARM* Devices Google* Android* SDK (ADT Bundle for Microsoft Windows*) API libraries and developer tools to build, test, and debug apps for Android Android* NDK for x86 Supports implementation of application code using native C++/C Eclipse* Integrated Development Environment Part of the ADT bundle. Provides an integrated environment to build applications Android* Design Stencils, icons, styles and more to use within apps without restriction Cygwin* Linux-like environment for mixing Java and C/C++ code on Windows* systems Oracle* Java SE Development Kit A tool for building applications and components using Java1 10 1 Beacon Mountain checks your system to ensure you have the JDK installed. If you don’t, Beacon Mountain directs you to the Oracle site to download the correct version Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 11. Faster Android* Emulation using an IA-based host PC Pre-built Atom Images • Android* SDK manager has x86 emulation images built-in • To emulate an Atom-based Android* phone, install the “Intel Atom x86 System Image” available in the Android* SDK Manager Much Faster Emulation • Intel® Hardware Accelerated Execution Manager (HAXM) for Mac and Windows uses Intel® Virtualization Technology (VT) to accelerate Android* emulator by 2-4x • Intel VT is already supported in Linux* (KVM) for x86. See www.intel.com/software/Android* for demo videos & installation tips 11 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. Intel x86 Atom System Image Intel x86 Emulator Accelerator
  • 12. Intel® Graphics Performance Analyzers System Analyzer for Android • Real-time system-level performance analysis for Intelbased Android* devices • Immediate experiments and overwrites enable developers to isolate CPU and GPU performance problems • Metrics for CPU, GPU, API, memory, network, power, etc. 12 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 13. For on-device app testing: Intel® GPA System Analyzer Real-time Remote Performance and Power Profiling Real-timecharts: • • • • CPU metrics Graphics API level metrics Processor graphics hardware metrics Power metrics Data Android* Smart Phone Intel® GPA System Analyzer running on a PC USB adb Connection Wi-Fi Connection Download Intel® GPA for FREE at intel.com/software/GPA 13 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 14. Intel® C++ Compiler for Android* • Based on Intel® C/C++ Compiler XE 13.0 for Linux* • Integrates into the Android* NDK as additional toolchain which can be used from the command-line • Supports Intel® Atom™ processor optimization FREE for limited time Available on http://software.intel.com/c-compiler-android 14 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 15. Agenda • Where we are on Android* • Tools to start development on IA • Get full speed with Android* NDK • Tips and tricks on porting from ARM* to IA • Resources and contacts 15 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 16. Android* Native Development Kit (NDK) Why use it? • Performance intensive tasks • signal-processing, complex algorithms, physics simulation, graphics, etc. • Take advantage of direct CPU/HW access • write hot code using SIMD instructions • Reuse code • e.g. from PC segment • Start from here: http://developer.android.com/tools/sdk/ndk/index.html 16 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 17. NDK Application Development C/C++ Code APP_ABI := all or APP_ABI := x86 SDK APIs Java calls ndkbuild Makefile GDB debug through JNI Java Android* ApplicationsApplication Java Framework JNI Native Libs Bionic C Library 17 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. NDK APIs
  • 18. Fat binaries build and install libs/x86/mylib.so myapp.apk libs/arm/mylib.so libs/arm-v7a/mylib.so libs/mips/mylib.so libs/x86/mylib.so libs/?/mylib.so 18 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners. libs/arm-v7a/mylib.so
  • 19. NDK compiler • x86 is supported from NDK r6 • Get latest and greatest NDK-r9 (July 2013)! • Support for Android* 4.3 (API level 18) • GCC-4.8 included with Silvermont™ tuning available (-march=slm/-mtune=slm switches) • Bugfixes 19 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 20. Android* C++ support By default, libstdc++ is used. It lacks: - Standard C++ Library support (except some headers) - C++ exceptions support - RTTI support Fortunately, you have other libs available with the NDK: Choose which library to compile against in your Makefile (Application.mk file): Runtime Exceptions RTTI STL system No No No gabi++ Yes Yes No stlport Yes Yes Yes APP_STL := gnustl_shared gnustl Yes Yes Yes Postfix the runtime with _static or _shared For using C++ features, you also need to enable these in your Makefile: LOCAL_CPP_FEATURES += exceptions rtti 20 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 21. Why should I update GCC x86 compiler? EEMBC® CoreMark® example (higher = better) base: • -O2 -ffast-math -mfpmath=sse -m32 -march=atom • base + if conversion • -O2 -ffast-math -mfpmath=sse -ftree-loop-if-convert -m32 -march=atom • • peak • -Ofast -funroll-loops -mfpmath=sse -m32 march=atom for 4.4 and 4.5 versions “-Ofast” is replaced with O3 -ffast-math http://software.intel.com/en-us/blogs/2013/05/28/why-should-i-update-gccx86-compiler-or-gcc-compiler-performance-on-intel-atom-from 21 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 22. Recommended GCC compiler options Optimization level: • • use -O2 at least, -Ofast for peak Architecture: • • • • -march=atom –mtune=atom –mssse3 to target Atom -march=slm –mtune=slm –msse4.2 to target Silvermont Note: -march=atom turns on -mmovbe which is not supported on all x86. To avoid add –mno-movbe. Math: • • • -ffast-math – fast but less accurate. Usually you don’t care -mfpmath=sse – use sse for FP calculations instead of i387 Even more performance: • • -flto • -funroll-loops More: http://software.intel.com/blogs/2012/09/26/gcc-x86performance-hints 22 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 23. Recommended ICC compiler options • Optimization level: • -O2 is default, -fast for peak (implies -static) • Architecture: • • -xATOM_SSSE3 to target Atom -xATOM_SSE4.2 to target Silvermont (not available yet in 13.0) • Math: • • -no-prec-div – fast but less accurate. Usually you don’t care -mfpmath=sse – use sse for FP calculations instead of i387 • Even more performance: • • -O3 -ansi-alias • -ipo • -auto-p32 • -parallel 23 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 24. Agenda • Where we are on Android* • Tools to start development on IA • Get full speed with Android* NDK • Tips and tricks on porting from ARM* to IA • Resources and contacts 24 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 25. Compatibility “I want my app to run on all architectures” • You already done for Java & HTML • NDK based apps usually just needs a recompilation APP_ABI := all Application.mk 25 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 26. Target compiler options • NDK-build system Android.mk file evaluated for each architecture • Variable TARGET_ARCH_ABI describes actual architecture TARGET_ARCH_ABI x86 armeabi armeabi-v7a ifeq ($(TARGET_ARCH_ABI),x86) LOCAL_CFLAGS := -mtune=atom -mssse3 endif ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) LOCAL_CFLAGS := -march=armv7-a Endif mips Android.mk 26 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 27. Compiler macros • Directly inside source code • No runtime overhead • Works with all build configurations #ifdef __i386__ strlcat(buf, "__i386__", sizeof(buf)); #endif #ifdef __arm__ strlcat(buf, "__arm__", sizeof(buf)); #endif #ifdef __mips__ strlcat(buf, "__mips__", sizeof(buf)); #endif source.c 27 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 28. Porting Native (C/C++) Android* Apps to x86 http://software.intel.com/en-us/articles/ndk-android-application-portingmethodologies/ Native Apps • Optimized NDK for Intel Atom based devices available on http://developer.android.com/sdk/n dk/index.html since July’11. • For most apps, changing the make file and a recompile should be sufficient to port to Intel Atom devices. • If ARM-specific features are used, Intel SSE equivalents should be added (build flag) • Developer recompiles, repackages and publishes. 28 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 29. Memory Alignment By default struct TestStruct { int mVar1; long long mVar2; int mVar3; }; Easy fix struct TestStruct { int mVar1; long long mVar2 __attribute__ ((aligned(8))); int mVar3; }; 29 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 30. ARM* NEON to Intel® SSE • Single Instruction Multiple Data (SIMD) • Most ARM NEON functions have a 1:1 equivalent in Intel® SSE • Intel provides C++ header file to do the mapping // VADD.I8 d0,d0,d0 int8x8_t vadd_s8(int8x8_t a, int8x8_t b); #ifdef USE_MMX #define vadd_s8 _mm_add_pi8 //MMX #else #define vadd_s8 _mm_add_epi8 #endif NEONtoSSE.h http://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intelmmxsse-automatic-porting-solution-tips-and-tricks 30 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 31. Agenda • Where we are on Android* • Tools to start development on IA • Get full speed with Android* NDK • Tips and tricks on porting from ARM* to IA • Resources and contacts 31 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 32. Beacon Mountain on the Web Your Source for Beacon Mountain Information & Support  Free Download  Product Brief  Support Form Follow us @IntelSoftware Free download at: intel.com/software/BeaconMountain 32 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 33. For More Information on Individual Tools PRODUCT URL Intel® Hardware Accelerated Execution Manager http://software.intel.com/ en-us/articles/intelhardware-acceleratedexecution-manager Intel® Graphics Performance Analyzers www.intel.com/software/gp a Intel® Threading Building Blocks software.intel.com/vcsource /tools/threading-buildingblocks Intel® Integrated Performance Primitives software.intel.com/intel-ipp Intel® Software Manager www.software.intel.com Google* Android* SDK www.developer.android.com Android* NDK for x86 www.developer.android.com Eclipse* Integrated Development Environment http://www.eclipse.org/ Android* Design www.developer.android.com Cygwin* http://cygwin.com/ Oracle* Java SE Development Kit www.oracle.com 33 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 34. Single entry point to remember  http://software.intel.com/android/ 34 Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
  • 35. Legal Disclaimer & Optimization Notice INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. Copyright © , Intel Corporation. All rights reserved. Intel, the Intel logo, Xeon, Xeon Phi, Core, VTune, and Cilk are trademarks of Intel Corporation in the U.S. and other countries. Optimization Notice 35 Intel’s compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessordependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804 Copyright© 2013, Intel Corporation. All rights reserved. 2012, *Other brands and names are the property of their respective owners.