40
Embedded Applications : Migrating to Intel x86 Architecture Naveen G V Software & Services group

Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Embed Size (px)

Citation preview

Page 1: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Embedded Applications : Migrating to Intel x86 Architecture

Naveen G VSoftware & Services group

Page 2: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice2

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 © 2015, Intel Corporation. All rights reserved. Intel, Pentium, Xeon, Xeon Phi, Core, VTune, Cilk, and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries.

Optimization Notice

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. Microprocessor-dependent 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

2

Page 3: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice3

Agenda

• Introduction

• About Intel Architecture

• Application porting considerations

• Taking advantage of Intel Software Tools for application migration

• Summary

• References

Page 4: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice4

Intel® Architecture for IoT/Embedded Delivering Growth Beyond the PC & Server

Page 5: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Intel Architecture for Embedded products

The foundation for all computing

Page 6: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice6

Enabling Exceptional Experiences

Silvermont Microarchitecturein Next Generation Intel Products

Page 7: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Core Block Diagram

7

Page 8: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Core Block Diagram

8

Page 9: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Silvermont Architecture Highlights

9

Better Performance Better Power EfficiencyFull Advantage of Intel

22nm SoC Process Technology

Out of Order Execution engine

New multi-core and system fabric architecture

New IA instructions extensions (Core™ Westmere level)

New security and virtualization technologies

Wide dynamic operating range

Enhanced active and idle power management

3-D Tri-gate transistors tuned for SoC products

Architecture and design co-optimized with the process

Building upon Intel's Strengths and Expertise in Defining Microarchitecture

Page 10: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice10

Part 1 – Execute code correctly on one Intel® architecture (IA) core:

1. Port code to target OS.

2. Execute code correctly on one IA core.

3. Optimize for power and performance on one IA core.

Migration Guide Steps

Port Software to Intel Architecture

Tackle the Migration in Manageable Steps

Adopt Technologies

Part 2 – Implement additional IA benefits:

4. Apply technology updates: Multi-core, Virtualization…

5. Optimize code for power and multi-core IA performance.

Page 11: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice11

SW Tools – Often drive decisions of the architecture conversion, such as OS and real-time support, and cost requirements.

Applications / Libraries – Programming language, OS and processor architecture support, APIs.

OS’s / Device Drivers / Graphics Drivers – Processor/platform/tools support, real-time, embedded requirements.

Firmware - Other architectures provide boot loaders for free. Intel provides commercial solutions from IBVs and solutions to assist boot loader development.

JTAG (On-chip debuggers) – Used for board bring up and useful for all types of software debugging, especially time critical.

Embedded Products – Software Stack

Processor / Chipset

JTAG

Firmware

OS / Device Drivers

Applications / Libraries

SW Tools

Various levels of software in the system stack from controlling the hardware to performing end-application functions

Page 12: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice12

Embedded Application Migration Planning

Feasibility study

Survey the current SW stack to determine portability of existing code and available solutions for migration.

Determine scope and effort of the based on survey of the SW stack.

Understand requirements and available solutions throughout the SW stack.

Project plan

Address feasibility study findings, choose solutions, and ensure to include any training that may be required.

Apply to the recommended steps in the Migration Guide.

Project goals & requirements will drive the feasibility, scope and effort required for the SW migration

Page 13: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice13

Application Migration : Considerations

Assembly language code.

May not use OS abstraction layer. Makes changing OS’s more difficult.

May interface directly to devices instead of using OS APIs.

May assume (hard code) endianness memory architecture.

Serial code (not multi-core ready).

Page 14: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice14

Intel® Architecture – Instruction set

Instructions Instructions supported from Intel® Architecture are different compare to non IA, for some

instructions there is no one-to-one (RISC to Intel architecture) equivalent. Refer to Intel® 64

and IA-32 Architectures Software Developer Manuals.

Alignment • Intel architecture instructions vary in size and therefore do not require alignment.

• Pointer alignment, E.g. 1 byte aligned on x86

• Structure size and alignment. E.g. a struct with 3 characters on IA is 3 bytes;

Vector Oriented

Instructions

Intel architecture uses Intel® Streaming SIMD Extensions (Intel® SSE). Refer to Software

Development Migration Tools.

Signed vs. unsigned

char

char is signed on x86 . CHAR_MIN and CHAR_MAX have different values on x86. gcc

compiler can force all char types to be signed: -fsigned-char

Page 15: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice15

Byte order (Endianness)

Intel architecture is little-endian.

Bit Fields Intel architecture is “normal bit ordered” aka “up bit ordered.”

(MSB is 0 for big-endian, LSB is 0 for little-endian – always the case for Intel architecture).

Divide-by-zero On Intel architecture, executing this operation is fatal.

Calling Conventions

Specified by ABI

For Intel architecture, arguments are passed on the stack and registers for Intel® 64.

Intel architecture has fewer registers , also local variables may be stored on the stack as

well.

Intel® Architecture - Instruction set

Calling Conventions

Specified by ABI

For Intel architecture, arguments are passed on the stack and registers for Intel® 64.

C-function’s calling conversion: IA uses left most argument first.

Page 16: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice16

Application Migration : Best Known Methods • Rewrite assembly code in high level language, and use translation tools

as needed.

• Use endian checker tools and refer to https://software.intel.com/en-

us/c-compilers/biendian

• For high level programming languages, simply recompile for IA as

required using Intel® C++ Compiler

• Adopt multi-core supported libraries, such as Intel® Integrated

Performance Primitives and Intel® Math Kernel Library.

• Implement multithreading using Intel® Cilk™ Plus and Intel® Threading

Building Blocks

• Analyze the performance of your application using Intel® VTune™

Amplifier

Page 17: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Porting Alternatives to Intel Architecture

Manual Conversion

Use Bi-Endian Compiler

Recompile

If Performance is a higher priority than TTM/$, then manual conversion obtains the most efficient code, but requires the most work.

If the program is specified cleanly in bi-endian features, the compiler can generate code correctly while maintaining high-performance

If code is endian neutral, it may just need a recompile. For example the EEMBC benchmarks are endian-agnostic

Multiple migration options to address endianness

17

Page 18: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Intel® C++ Compiler Standard Edition for Embedded Systems with Bi-Endian Technology

• Special compiler that enables faster architecture migration to Intel® Architecture

• Maintains Endianness of code

• Inserts bswap instructions into binary when

necessary

What is it?

The Bi-Endian Compiler enables applications to execute with big-endian semantics on little-endian processors

18

Page 19: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Bi-Endian Compiler FunctionalityCode specified as Big-Endian…

Behaves as though executing on a Big-Endian machine

bswaps inserted at crucial points

– E.g. after variable stores and loads

When possible instruction bswap is eliminated to increase performance

– E.g. variables without address taken and not part of a union

Code specified as Little-Endian…

Runs as native code

No byte swaps necessary

Minimal performance impact

Intelligently inserts byte swaps only when necessary

Can mix & match Big-Endian and Little-Endian code

Bi-Endian Compiler compilation phases

Reduced implementation and validation effort

19

Page 20: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Who is using Bi-Endian Compiler?

Networking & Telecommunication

• Porting code from non-IA (e.g. PPC) to IA

• Manual code migration was not an option

• Large source code base

• Difficult to debug

• Required big resource commits

Delayed or canceled product releases

• Millions of lines of legacy code ported to IA

• Today, customers successfully use Bi-Endian Compiler to release products based on IA

20

Page 21: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

• Multiple OS and Cross Compilation Support

• HOST OS: Windows*, Linux*

• TARGET OS: Linux*, WindRiver Linux*, Yocto Project, Tizen*, Android*, customized Linux* and more

• Integration with major IDE for different targets

• Eclipse* Integration on Linux*

• WindRiver Linux Workbench Integration

• Android NDK Integration

• Windows* Visual Studio* integration for Android

• No source-level changes for quick & simple gains

• Just recompile for a quick ROI!

• Source and binary compatibility

• Compatible with GNU compiler

• Can mix and match files as needed21

Intel® C++ Compiler- Compatibility

Page 22: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Code generation tuned for latest micro architecture, Latest Instructions for newest IA

processors (SSE, AVX, AVX2)

Support the newest Intel Architecture features

Latest Instructions for newest IA processors (SSE, AVX, AVX2)

Code generation tuned for latest micro architecture

Advanced optimization features

Highly Optimized Compiler libraries – (libirc, libimf, libsvml, etc)

Good optimization report helps performance tuning

22

Intel® C++ Compiler- Performance

Page 23: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Advanced Optimizations & Standards Support

Maximum application performance through advanced optimization features:

Interprocedural Optimization (IPO)

Profile-Guided Optimization (PGO)

Full support for Intel Streaming SIMD Extensions 3, Intel SSE 4

Automatic Vectorizer

Runtime support for Intel® processor generations: processor dispatch

ISO and ANSI C/C++ compatible

Source and binary compatible with GCC, including most GNU C language extensions

23

Page 24: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Auto-VectorizationSIMD – Single Instruction Multiple Data

• Scalar mode– one instruction produces

one result

• SIMD processing– with SSE or AVX instructions

– one instruction can produce multiple

results

+

a[i]

b[i]

a[i]+b[i]

+

c[i+7] c[i+6] c[i+5] c[i+4] c[i+3] c[i+2] c[i+1] c[i]

b[i+7] b[i+6] b[i+5] b[i+4] b[i+3] b[i+2] b[i+1] b[i]

a[i+7] a[i+6] a[i+5] a[i+4] a[i+3] a[i+2] a[i+1] a[i]

for (i=0;i<=MAX;i++)

c[i]=a[i]+b[i];

24

a

b

a+b

+

Page 25: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

SIMD Instruction Enhancements

70 instr

Single-Precision Vectors

Streaming operations

144 instr

Double-precision Vectors

8/16/32

64/128-bit vector integer

13 instr

Complex Data

32 instr

Decode

47 instr

Video

Graphics building blocks

Advanced vector instr

SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2

8 instr

String/XML processing

POP-Count

CRC

AES-NI

7 instr

Encryption and Decryption

Key Generation

AVX

~100 new instr.

~300 legacy sse instr updated

256-bit vector

3 and 4-operand instructionsIntel® Atom

Saltwell

25

Intel® Atom

SilvermontSandy bridge

Ivy bridge

Page 26: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

• Intel C++ Compiler does not provide real bin utilities like “ld”, “ar”, but provide the driver to invoke the “ld” or “ar” automatically

• icc/icpc: first calls real Intel compiler(mcpcom) for compilation, then invokes the GNU “ld” if necessary

• xild: first calls real Intel compiler for optimization, then invokes GNU “ld”

• xiar: first calls real Intel compiler for optimization, then invokes GNU “ar”

26

Intel C++ Compiler works with GNU binary utilities

Page 27: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

• Change the compilation command using predefined platform

configuration with –platform option

• <prefix, e.g. i586-poky-linux>-gcc icc -platform=<val>

• <prefix, e.g. i586-poky-linux>-g++ icpc -platform=<val>

• <prefix, e.g. i586-poky-linux>-ar xiar -qplatform=<val>

• <prefix, e.g. i586-poky-linux>-ld xild -qplatform=<val>

• This normally can be changed with environment variable like CC,

CXX, AR, LD, or in the Makefile

27

Porting from GCC to ICC compiler (I)

Page 28: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

• Starting from Intel C++ Compiler 15.0 (Intel System Studio 2015), use –gnu-prefix and --sysroot option

• icc –gnu-prefix=i586-poky-linux- --sysroot=<val>

• icpc –gnu-prefix=i586-poky-linux- --sysroot=<val>

• xiar –qgnu-prefix=i586-poky-linux- --sysroot=<val>

• xild –qgnu-prefix=i586-poky-linux-

• More details on –gnu-prefix and –sysroot, refer to compiler documents, and online articles

28

Porting from GCC to ICC compiler (II)

Page 29: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Image/signal processing, data compression and cryptography library Intel® Integrated Performance Primitives (Intel® IPP)

Enhances Developer Productivity

Optimized image, signal and data processing routines

Thread-safe functions

Industry Leading Performance

Instruction set-level optimizations (SIMD)

Efficient parallelism on multicore platforms

Support for Latest Processor Architectures

Optimized for current multi-core processors

Applications benefit seamlessly

29

Cross Platform and Operating System Support

Multi OS:

• Windows*

• Linux*

• OSX*

•Android*

•VxWorks*

Multi Platform:

•Mobile and Embedded (Intel® Quark, Intel® Atom™)

•Tablet (Intel® Atom™, Intel® Core™)

•Ultrabook/PC (Intel® Core™)

•Servers and Workstations (Intel® Xeon® and Intel® Xeon® Phi™)

Cross platform support and optimized for current and future processors

Page 30: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Fastest and most used math libraryIntel® Math Kernel Library (Intel® MKL)

30

Highly optimized threaded math routines

Optimizations using Intel® AVX and the new Intel® Advanced Vector Extensions 2 (Intel® AVX2)

Use Intel® MKL on embedded Linux* targets in communications, medical, industrial, and other segments

Use Intel MKL with Intel® C++ Compiler and GCC*

#1 used math libraryin the world

Source: Evans Data 2011-2013 WW Developer

Surveys

Unleash processor performance with Intel MKL

Page 31: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

C++ template library for task parallelismIntel® Threading Building Blocks (Intel® TBB)

31

Generic Parallel Algorithms

• parallel_for• parallel_reduce• parallel_for_each• parallel_do• parallel_invoke• parallel_sort• parallel_deterministic_r

educe• parallel_scan• parallel_pipeline• pipeline

Concurrent Containers

• concurrent_unordered_map• concurrent_unordered_multimap• concurrent_unordered_set• concurrent_unordered_multiset• concurrent_hash_map

• concurrent_queue• concurrent_bounded_queue• concurrent_priority_queue• concurrent_vector• concurrent_lru_cache

(preview)

Thread Local Storage

• combinable• enumerable_thread_spe

cific

Task Scheduler

• task• task_group• structured_task_group• task_group_context

• task_scheduler_init• task_scheduler_obser

ver• task_arena

Threads

• Thread

Timers and Exceptions

• tick_count• tbb_exception• captured_exceptio

n• movable_exceptio

nMemory Allocation

• tbb_allocator• scalable_allocator

• cache_aligned_allocator• zero_allocator

• aligned_space• memory_pool (preview)

Synchronization Primitives

• atomic• mutex• recursive_mutex• spin_mutex• spin_rw_mutex• speculative_spin_mutex• speculative_spin_rw_mutex

• queuing_mutex• queuing_rw_mutex• null_mutex• null_rw_mutex• reader_writer_lock• critical_section• condition_variable• aggregator (preview)

Flow Graph

• graph• continue_node• source_node• function_node• multifunction_node• overwrite_node• write_once_node• limiter_node• buffer_node• queue_node• priority_queue_node• sequencer_node• broadcast_node• join_node• split_node

• indexer_node

Parallel algorithms and data structures

Threads and synchronization

Memory allocation and task scheduling

Simplify Parallelism with a Scalable Parallel Model

Page 32: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Performance ProfilerIntel® VTune™ Amplifier for Systems

Get the Tuning Data You Need

− Low overhead “hotspot” analysis with call stacks

− Advanced analysis for cache, branching, …

Find Answers Fast

− Powerful analysis & data mining

− Results mapped to C/C++ or Java source

Easy to Use

− Remote analysis from the User Interface

− Windows or Linux Host analyzes Linux or Android target

32

Optimize Your Software Performance after porting application on IA

Page 33: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Energy and Power Profiler for System Software DevelopersIntel® Energy Profiler

Optimize Software for Extended Battery Life

Find the Cause of Wake Ups That Waste Energy

− Interrupts mapped to the IRQ/device

− Timers mapped to the scheduling process

− Data correlated with Android Wake Locks

Available now for Linux and Android

33

Requires specific SOCs. On Android, a rootable OS is required with version

compatible device drivers. See release notes for details.

Get Actionable Data to Extend Battery Life

Page 34: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice34

Debug & Trace

Intel® System Debugger

UEFI, OS, driversthrough JTAG

System Software

Intel® Debug Extensions for

WinDbg*

Windows* stackWinDbg* over JTAG

Build & Optimize

Intel® C++

Compilerincl. Intel® Graphics

Technology offload

Intel® Integrated

Performance Primitives

Intel® Math Kernel Library

Intel® Threading Building Blocks

Eclipse*-based,Visual Studio*

Intel-enhanced GDB*

IDE support

Systems, Embedded Applications

Intel® Energy Profiler

Intel® Frame Analyzer

Intel® Platform Analyzer

Intel® System Analyzer

Intel® Inspector

Intel® VTune™ Amplifier

Analyze

CPU/GPU workloads

In real-time

Code performanceon CPUtime-, event-based

System-wide power efficiencyWake-up, sleep-state, frequency, temp.

Graphics performanceOpenGL ES, DirectX

Application robustness memory leaks

Performance

Power

Correctness

CPU/GPU workloads

offline and detailed

Composer Edition

Professional Edition

Ultimate Edition

What’s Included in Intel® System Studio

Page 35: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice35

Intel® System Studio: Editions, Components, and Operating Systems

Target Operating Systems Linux* 1, 2 Android* 2 Windows* VxWorks* 3 FreeBSD*

Category Component

Co

mp

ose

r E

dit

ion

Pro

fess

ion

al

Ed

itio

n

Ult

ima

te

Ed

itio

n

Co

mp

ose

r E

dit

ion

Pro

fess

ion

al

Ed

itio

n

Ult

ima

te

Ed

itio

n

Co

mp

ose

r E

dit

ion

Pro

fess

ion

al

Ed

itio

n

Ult

ima

te

Ed

itio

n

VxW

ork

s*

Ed

itio

n

Fre

eB

SD

E

dit

ion

Host Operating SystemsLinux*

Windows*Linux*

Windows*Windows*

Linux*Windows*

Linux*FreeBSD*

Integrated Development EnvironmentEclipse*,

Workbench*Eclipse* Visual Studio* Workbench* Eclipse*

Compiler & Libraries

Intel® C++ Compiler

Intel® Integrated Performance Primitives

Intel® Math Kernel Library

Intel® Threading Building Blocks

System & Application Debuggers

Intel® System Debugger 4 7

Intel® Debug Extensions for WinDbg* 4

Intel®-enhanced GDB* Application Debugger

Intel® Debugger for Heterogeneous Compute

Performance, Power &

Correctness Analyzers

Intel® VTune™ Amplifier 6

Intel® Energy Profiler

Intel® Inspector

System Analyzer

Platform Analyzer 5

Frame Analyzer 5

1 Linux*, Embedded Linux, Wind River* Linux*, Yocto Project*2 Linux* and Android* target support available in a single product3 Available from Wind River* with VxWorks*

4 Via Intel® ITP-XDP3 probe, OpenOCD*, Intel® SVT Closed Chassis Adapter* and EDKII* for UEFI*5 Available for Windows* host6 Also available for OS X* host as a separate download7 Intel® System Debugger provides VxWorks* OS awareness – available with Ultimate Editions

NewNew

New

New

Page 36: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice36

Embedded Applications : Migrating to Intel x86 Architecture

Intel provides the building blocks you need to develop hardware and software for the Internet of Things

Intel System Studio is a complete tools suite to build and optimize your appication on Intel Architecture

– Increases performance with expertly optimized compiler and libraries

– Enhances power efficiency and performance with enhanced analyzers

– Improves developer productivity with expanded usability and capabilities

Migrate smarter code — smarter to IA, with Intel System StudioLearn more at: http://intel.ly/system-studio

Page 37: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice

Educating with Webinar series about “2016” toolsExpert talks about the new features

Series of live webinars Sept 22nd – Oct 21st , 2015

Attend live, or watch after the fact.

http://tinyurl.com/webinars-intel2016

37

Topics Time

(Asia) - Tuesdays

Time (USA) –

Wednesdays

Migrating embedded applications to Intel x86 Architecture Oct 13th , 11 PM (PST) Oct.14th , 9AM (PST)

Get Deep System Insight for 6th Generation Intel® Core™ Processors Oct 20th, 11PM (PST) Oct 21st , 9AM (PST)

Page 38: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice38

References

PowerPC* to Intel® Architecture Migration

White Paper: Operating system, migration, and software considerations for porting software from PowerPC* to Intel® architecture. (v.001, Dec. 2011) http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/powerpc-ia-migration-paper.html

Translation of PowerPC*/AltiVec* SIMD Macros to IA32/SSE

Resource: Migrate existing vector-oriented C/C++ PowerPC* AltiVec* code to the Intel x86 streaming SIMD extensions. http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/translation-powerpc-altivec-sse.html

Tool for Translating PowerPC*/AltiVec* SIMD Macros to IA32/AVX

Software: Tool for translating PowerPC*/AltiVec* SIMD macros to IA32/AVX using the same Motorola interface. http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/translation-powerpc-altivec-2-avx.html

Convert Commercial Automation Systems to Intel® Architecture

White Paper: Convert commercial automation systems from PowerPC* to Intel® architecture, improving performance and security. (v.001, Aug. 2011) http://www.intel.com/content/www/us/en/intelligent-systems/embedded-systems-training/ia-commerical-automation-paper.html

Using DSP Software Conversion Tools for Intel® Processors

Presentation: Describes tools that simplify DSP software conversion to Intel® processors, including the use of VSIPL* and AltiVec*. (April 2009) http://www.intel.com/content/www/us/en/intelligent-systems/software/altivec-ppc-ia-conversion-tools.html

Moving AltiVec* Signal Processing Apps to Intel® Processors

Webinar details AltiVec* SIMD macros translator migration to Intel® processors, with a review of challenges, tools, and utilities. (v.1, May 2009) http://www.intel.com/content/www/us/en/intelligent-systems/software/altivec-ppc-ia-conversion-tools-demo.html

Page 39: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel

Copyright © 2015, Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Optimization Notice39

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 © 2015, Intel Corporation. All rights reserved. Intel, Pentium, Xeon, Xeon Phi, Core, VTune, Cilk, and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries.

Optimization Notice

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. Microprocessor-dependent 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

39

Page 40: Embedded Applications : Migrating to Intel x86 … Applications : Migrating to Intel x86 Architecture ... Intel’s compilers may or may not optimize to the same degree for non-Intel