Snapdragon Heterogeneous Compute SDK
With its multicore CPU, Qualcomm® Adreno™ GPU and Qualcomm® Hexagon™ DSP, the Qualcomm® Snapdragon™ mobile platform is designed for heterogeneous computing. All three cores (devices) put heterogeneous computing within the reach of mobile app developers and the users of their applications.
To get the most out of heterogeneous computing on Snapdragon, developers can use APIs in the Snapdragon Heterogeneous Compute SDK and the Snapdragon Power Optimization SDK to balance performance and power consumption. The SDKs complement each other in allowing for placement of workloads on the cores best suited to execute them power-efficiently.
This tutorial walks through the components of the Snapdragon Heterogeneous Compute SDK, including sample code that cumulatively demonstrates the main features developers can use.
What’s in the Snapdragon Heterogeneous Compute SDK?
The SDK is currently distributed in form of a C++ library, based on C++11, for easy integration with the development environment. It uses industry-standard libraries, like OpenCL and OpenGL to interact with the GPU, and it uses the Hexagon SDK to interact with the DSP.
The essential parts of the SDK are its API and its runtime library.
The SDK provides easy-to-use APIs that developers can embed in their apps to manage execution across the CPU, GPU and DSP.
The runtime acts as a back end for task scheduling. It abstracts low-level system calls and device interactions that developers must deal with when trying to implement heterogeneous computing or parallel computation in a mobile application.
The SDK also manages the movement of data among the compute cores for maximum efficiency, so that the choice of core does not affect the application. As shown in the diagram above, it includes four main components that can be easily integrated to the application.
On the following pages you will find more information on each of the following.
- Kernels – Introduces the concept of kernels in heterogeneous computing
- Affinity – Core selection APIs
- Patterns – Designed to simplify parallel programming
- Tasks – Units of work executed across CPU, GPU and DSP
- Buffers – Array-like data stores for any user-defined data-type
Qualcomm Snapdragon, Qualcomm Adreno and Qualcomm Hexagon are products of Qualcomm Technologies, Inc. and/or its subsidiaries.