OnQ Blog

DSP libraries for computer vision and GEMM in Hexagon SDK 3.1


Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.

Have you started DSP programming with the Qualcomm Hexagon SDK 3.1 yet? When we released the kit, I posted about the compiler for C++11/14 that we included so you can move code traditionally run on the CPU to the DSP, without the need to rewrite all of that code.

That’s a pretty good reason for you to download Hexagon SDK 3.1 and try your hand at DSP programming. Are you ready for two more?

Libraries for computer vision and convolutional networks

Because the libraries are generic, you can use them on the Hexagon DSP across different, unique frameworks. As an example, we’re making libraries for computer vision (FastCV software development kit) available in the SDK, and for machine learning applications, the SDK includes a standard library for matrix computation you can use to accelerate the execution of many common neural network frameworks. For example, Torch, Caffe or Tensorflow.

Want to quickly test and compare the benefit of a DSP implementation of computer vision against a CPU implementation? One easy way is to replace a CPU library with a DSP library. FastCV based computer vision libraries supporting Hexagon and Hexagon Vector eXtensions (HVX) are engineered to be compatible and interchangeable with FastCV computer vision libraries that we have released for the CPU and floating point co-processor. You’ll find FastCV libraries for the CPU in the FastCV Computer Vision SDK. And in the Hexagon SDK you’ll find API-compatible computer vision libraries optimized for Hexagon and HVX.

Hexagon SDK 3.1 also includes general matrix-matrix multiplication (GEMM) libraries for convolutional networks used in machine learning. Starting with upcoming devices powered by the Qualcomm Snapdragon 820 and 835 processors, you can use those GEMM libraries to replace ones that typically target the floating-point co-processor to the CPU. While you wait for those processors to appear in commercial devices, you can use the SDK to generate dynamic Hexagon DSP code modules and execute them on the included simulator.

HVX supports fixed-point matrix multiply acceleration on the DSP, so if your algorithm can be limited to fixed-point, then take advantage of the much higher throughput and lower power consumption on HVX. On the other hand, if you require floating-point matrix multiplication, then you should probably keep that execution on the CPU co-processor.

Get your massively parallel head start

Download the Hexagon SDK 3.1 now and see how you can speed up image processing, computer vision and machine learning in your apps. The Hexagon DSP is designed to be your ticket to high performance and low power consumption, and the SDK is a great way to build heterogeneous programming that’s ready to run when devices with Snapdragon 820 and 835 processors are available to consumers.

Let me know in the comments below or in the support forum what else you need to get going.


Qualcomm Snapdragon, Qualcomm Hexagon and FastCV are products of Qualcomm Technologies, Inc.