You are on page 1of 32

1

Steven Brightfield Director, Product Management Qualcomm Technologies Inc.

Hexagon DSP Access

Hexagon is a product of Qualcomm Technologies, Inc.

Who needs access?

Utilizing Hexagon DSP Now

Panel Session: Gaining Access with the Hexagon DSP

Using the Hexagon SDK for SnapdragonTM processors


Gaining Access with Hexagon DSP - Steve Brightfield, Director, Qualcomm Technologies, Inc.

Hexagon DSP The Core Benefits - Rick Maule, Senior Director, Qualcomm Technologies, Inc. Introducing the Hexagon SDK -- Ramesh Chandrasekhar, Director, Qualcomm Technologies, Inc. Hexagon SDK Future Tools Directions - Taylor Simpson, Senior Director, Qualcomm Technologies, Inc. Hexagon SDK Enabling New Use Cases Kuntal Sampat, Director, Qualcomm Technologies, Inc. Hexagon SDK Demonstrations, Where to get the SDK, Q&A -- Panel
Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
5

Qualcomm Technologies is

#1
Sources: DSP shipments - Forward Concepts Nov. 2012

In DSP Core shipments

Hexagon DSP OEM Design Customization


Accelerating use of DSP customization in smartphones, tablets, auto and consumer devices
Top Tier OEMs Devices launched or announced with custom DSP features

10+
Source: Qualcomm Technologies Inc. data

50+
7

Hexagon DSP customization spans ecosystems


Hexagon DSP is designed to enable feature portability across segments
Feature support spans segments These features span devices and can interoperate Smartphones Tablets HDTVs, Set-top Boxes

Smartphone driven feature integration can rapidly Span Snapdragon supported product families

Automotive

IoE

Source: Qualcomm Technologies, Inc. data

Hexagon DSP embedded customization spans HLOS


Hexagon DSP designed to enable feature portability across HLOS platforms QNX
Android Features developed on Android platforms can be rapidly deployed on Snapdragon supported HLOS platforms

Linux

Windows

Source: Qualcomm Technologies, Inc. data

SDKs APIs Prolers

Tools Training Development Platforms

Access is key
10

Hexagon DSP Architecture Innovation


VLIW
! 4-instruction issue/cycle ! Increases performance ! Low complexity design ! Reduces power, area

Architecture designed to deliver high performance at low power dissipation

Hardware Multi-Threading
! 3 Simultaneous Hardware Threads ! Enhances concurrency ! Reduces cache miss penalties ! Reduces Power ! Increases instructions/VLIW packet ! Increases Performance

Innovative instruction Set

Hexagon DSP

! 8,16, 32bit fixed point, 32bit FP datatypes ! More work/instruction ! Reduces power ! Better scheduling by compiler ! Improves performance ! Reduces power
11

Computer Vision Offload ARM/Neon to Hexagon DSP


!11)4>?
!"#$%&'%()*%+,-'.) /+0+)!11,-2+'-3&
4+,,)5%+'"6%) 7%'%2'

5+:'4;)4+,,)*3"'%6

;%G"$
!*8H;%G"$) 5+:'4;)<-=6+6.
5%+'"6%) 7%'%2' 5"&2'-3&

!11)7D>
!*8)9&,.) 5+:'4;)<-=6+6.
5%+'"6%) 7%'%2' 5"&2'-3&

Augmented Reality Java App finding objects in image using FastCVTM Feature Detect Comparison of Feature Detect run on: ! App CPU (ARM/Neon) ! App DSP (Hexagon)

@%A+#3&)BC7D>EF) 5+:'4;)<-=6+6.
5%+'"6%) 7%'%2' 5"&2'-3&

CPU Utilization (%)

Detection Time (%)

Total Device Power (%)

FastCV is a product of Qualcomm Technologies, Inc.

52% Less CPU

7% Less Time
* Power measured at the device battery

32% Less Power*

12

Source: Qualcomm Technologies internal measurements.

Hexagon SDK Overview: Tools in the Box


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( !"#$%&'($,>4(:#"-<1$8*"(5@$%"( Use Case Example Code Templates

Hexagon Tool Box

! Use Case Templates:


! Audio Use Case: Adding audio post processing ! Base Heterogeneous Compute Use Case: The Calculator ! Imaging Use Case: Decimation ! Vision Use Case: Edge Detection

!C(,"8<%( )&&*+(
13

Hexagon Code Generation Tools


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

! Hexagon C/C++ Compiler designed to provide simple code porting ! GCC compiler ! Cross compiler hosted on x86 ! C99 and C++TR1 standards support ! Support for Hexagon data types and special instructions ! Designed to generate efficient code for Hexagon processor ! VLIW packets ! Hardware loops ! Addressing modes ! Assembler ! Shuffle instructions in packet ! Enforce packet restrictions ! Linker ! Create static binaries or shared libraries ! Code and data layout through linker scripts !C(,"8<%( )&&*+(
14

Hexagon Code Generation Roadmap


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

! Next Generation LLVM compiler technology release planned for Q413 ! Unified cross and on-target compilation ! Increasing adoption by the mobile industry ! Key enabler for heterogeneous computing ! State-of-the-art modular compiler designed to enable advanced performance and code size features ! Automatic vectorization and parallelization ! Link-time optimization (LTO) ! Software pipelining ! Improved developer productivity ! Precise and understandable compiler warnings ! Cost-effective way to find and fix bugs earlier in development ! Warnings specifically for common Hexagon issues (e.g., memory alignment) ! Faster build times with integrated assembler and new linker

!C(,"8<%( )&&*+(
15

Hexagon Code Analysis Tools


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

! Simulator ! Timing approximate or untimed mode ! Support for all Hexagon cores ! Supports debugger connection ! Co-simulation support ! Detailed trace and profiling support ! Profiler ! GUI based graphical profile of Hexagon code execution ! Identify areas for optimization ! Tracks many processor events (e.g., cache behavior) ! Resource Analyzer ! Stack size ! Buffer sizes !C(,"8<%( )&&*+(
16

Hexagon Docs
!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box


! Integrated in the SDK as html ! Installation ! SDK User Guide ! Examples ! APIs, Library ! Signing Tools ! Test Frameworks ! Software Debug Tools ! Available for reference on developer.qualcomm.com ! Download as pdfs. ! PRMs ! Tools User Guides ! User Forums ! FAQs !C(,"8<%( )&&*+(
17

! SDK Documentation

Utility API and Libraries


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

Utility APIs: ! Functions for diagnostic messaging, memory allocation ! Facilitates code portability and shared object reuse ! Symbols from the standard libraries libc and libgcc ! APIs are Hexagon specific Library Support: ! Libraries of common DSP algorithms ! FIR, IIR, FFT

!C(,"8<%( )&&*+(
18

Hexagon IDE Support


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

Hexagon specific IDE feature support ! Integration with code generation tools ! Audio projects using APPI/CAPI templates ! Framework for integrating libraries with the aDSP ! Unit test framework for testing libraries ! Test framework for audio testing ! Hexagon profiling tools ! Specialized editors ! Assembly editor ! IDL file editor ! Unit test case file editor

!C(,"8<%( )&&*+(
19

Code Signing Tools


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

! Test Signature Generation for code signing ! Dynamic shared objects are digitally signed and authenticated for hardware execution ! Command-line utility to generate: ! Digital signatures for aDSP dynamic shared objects ! Test signatures (TestSigs) for development. ! Test private key, root certificate generation for HW ! Boards supporting test signature code signing ! APQ8074 DragonBoardTM ! MSM8974 Mobile Dev. Platform Smartphone ! MSM8974 Mobile Dev. Platform Tablet

!C(,"8<%( )&&*+(
20

Test Frameworks
!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( !

Hexagon Tool Box

Unit Test Framework: ! Framework designed to enable module unit testing ! Quality Tests (qtests) and are specified ! Auto-run as part of build/test process ! Executes the aDSP Binary on the Simulator System Test Framework: ! Define and call test functions from the HLOS ! Executes tests on the Hexagon aDSP. ! Script based testing mechanisms. ! Executes the aDSP Binary on the Simulator Executes on Android or Windows Simulator Supports Android execution on the HW: ! APQ8074 DragonBoard ! MSM8974 Mobile Dev. Platform Smartphone ! MSM8974 Mobile Dev. Platform Tablet !C(,"8<%( )&&*+(
21

Software Debug Tools


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

Remote Debug Monitor: ! A debugger without the use of a JTAG hardware interface ! The Debug Agent and Remote Debug Driver implement a shared memory based transport mechanism ! Designed to enable a debugger (ex. GDB) running on a host PC to communicate with a remote stub running on the aDSP RTOS Logging: ! Can send diagnostic messages from the aDSP to the AP CPU and view them on the Android side via logcat. ! Messages sent on the aDSP are sent over to adspmsgd driver on android. The adspmsgd driver is library that reads the messages.

!C(,"8<%( )&&*+(
22

Hardware Debug Tools


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

! JTAG Enabled Proprietary HW Debug and Trace ! Third party multi-core, cross triggered debug/trace ! Multiple providers ! JTAG GDB Debug ! Multi-core, debug only GDB feature set ! Third party vendor anticipated to come in Q413 ! Remote Software Debug Monitor Feature ! Feature Supported on HW: ! APQ8074 DragonBoard now ! MSM8974 Mobile Dev. Platforms targeted release in Q4

!C(,"8<%( )&&*+(
23

Audio Module Development Using the Hexagon SDK


Hexagon SDK Designed To Enable Faster Development
Manual Development Process ! Build time integration ! Separate tools for edit, test, debug ! ISV algorithm needs to be re-built with OEM code for commercialization ! No support for tuning Hexagon SDK Development Process ! Dynamic Loading of audio codecs and audio post processing ! IDE based development of audio codecs and post processing ! ISV algorithm only need to be dropped on to file system after OEM signature ! Qualcomm Technologies Audio Tuning Tool Targeted for Q413

Hexagon SDK Seminar: Audio Processing Module Development Using SDK (From Develop to Platform)
Hilton Hotel Room 2601 Wed. Sept. 4th 1PM 2:30 Thur. Sept 5th 1PM 2:30 Presented by: Shahrad Payandeh/ Architect Intrinsyc Corp.

24

Use Case Example: Audio Use Cases


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+(

Hexagon Tool Box

Audio Use Case Templates: ! APPI-based pp module for a FIR filter. ! APPI-based pp modules applies a gain to audio. ! APPI-based pp modules empty shell example. ! CAPI-C-based encoder/decoder module ! CAPI-based encoder/decoder module empty shell

Hexagon SDK Seminar: Audio Processing Module Development Using SDK (From Develop to Platform) Hilton Hotel Room 2601 Wed. Sept. 4th 1PM 2:30 Thur. Sept 5th 1PM 2:30 Presented by: Shahrad Payandeh/Architect Intrinsyc Corp.

!C(,"8<%( )&&*+(
25

Expansion of Hexagon DSP use cases beyond audio


Image Enhancement

Camera, Still, Video HexagonV4 based products

Computer Vision & Augmented Reality


HexagonV4 based products

Video Voice Audio

HexagonV5 based products

26

Use Case Example: Computer Vision Use Case


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( Computer Vision applications DSP-accelerated: ! DSP Optimized FastCV dynamic library support ! Integrated with FastCV SDK for Android ! Designed to enable ADSP acceleration of FastCV libs ! Snapdragon800/200 support ! FastCV SDK for Android on the QDevNet website

Hexagon Tool Box

Hexagon SDK Seminar: Accelerating Computer Vision Applications with the Hexagon DSP Hilton Hotel Room 2601 Wed. Sept. 4th 11 AM- 12:30 Thur. Sept. 5th 3PM 4:30 Eric Gregori Senior Software Engineer / Embedded Vision Specialist BDTI Inc. !C(,"8<%( )&&*+(
27

Use Case Example: Image Processing Use Case


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( Hexagon SDK Seminar: A Seminar on using the Hexagon SDK for Image processing with Heterogeneous Computing
Hilton Hotel Room 2601 Wed. Sept. 4th 3PM - 4:30 Thur. Sept. 5th 11AM -12:30 Jun Li Software Architect/ Bsquare

Hexagon Tool Box


! Image Histogram Use Case

!C(,"8<%( )&&*+(
28

Hexagon SDK Overview: Reviewing Tools in the Box


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( ! Use Case Examples:
! ! ! ! Audio Use Case: Adding audio post processing Base Heterogeneous Compute Use Case: The Calculator Imaging Use Case: Decimation Vision Use Case: Edge Detection

Hexagon Tool Box

Use Case Example Code Templates

http://developer.qualcomm.com

!C(,"8<%( )&&*+(
29

Use Case Example: Base Heterogeneous Compute Example


!"#$%&'( )&&*+( !"#$%&'( ,&-+( ./*012(345( $'6(7089$90"+( :-*0;+"(( 4*<%=0'+( >0%'0'%(( )&&*+( )"+1( ?9$@"A&9B+( >C(,"8<%(( )&&*+( ! The Calculator

Hexagon Tool Box

Lets see the demo......

http://developer.qualcomm.com

!C(,"8<%( )&&*+(
30

Tools and resources for developers


Develop Distribute Download Discuss http://developer.qualcomm.com

developer Download the Hexagon SDK at the Qualcomm Developers Network website program

31

Thank you

FOLLOW US ON:
For more information on Qualcomm, visit us at: www.qualcomm.com & www.qualcomm.com/blog
2013 Qualcomm Technologies, Inc. All rights reserved. Qualcomm, Hexagon, Snapdragon and DragonBoard are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Uplinq, FastCV and QDevNet are trademarks of Qualcomm Incorporated. All Qualcomm Incorporated trademarks are used with permission. Other products and brand names may be trademarks 32 or registered trademarks of their respective owners.