Feb 20, 2020
Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.
DSP programmers: You’ve told us that the only thing worse than seeing your DSP workloads crash is having to send us the memory dump for analysis. And you’re right: It is a headache, or used to be, anyway. Now, with the latest version of the Qualcomm Hexagon DSP SDK, you can analyze your own crash dump immediately, without all that delay.
That support for process domain dump is just one of the improvements we’ve made in Hexagon DSP SDK 3.5, available now. I’ll describe several of the changes in this post.
DSP programming: It’s catching on
Early on, device manufacturers and developers ported audio workloads like multimedia and speech processing to Hexagon. They liked running math-intensive operations in parallel on the digital signal processor, with its lower power requirements, lower clock speeds and higher performance.
The growing popularity of Qualcomm Snapdragon and our Hexagon DSP helped pave the way for heterogeneous programming on mobile devices. Over time, new use cases evolved, with companies like Pelican and MuseAmi moving imaging and computer vision workloads to our Hexagon DSP.
And over the last couple of years, DSP programming and the Hexagon Vector eXtensions have attracted many of the most prominent use cases in technology:
- AI/Machine learning — For object detection and recognition, and filters and face detection in cameras
- Automotive — On-board camera processing for differentiated in-vehicle experiences like 360-degree surround view and highway auto-pilot
- Camera — 8K video recording quality in mobile processors and advanced features like video bokeh
- Computer vision, imaging and video – Offloading compute-intensive tasks to dedicated hardware
- Deep learning — Efficient convolutions for deep neural networks (DNNs)
- IoT — Security cameras, sensors and drones
- Robotics — iRobot and drones that rely heavily on computer vision, AI and low power consumption
- Security — Face unlock and fingerprint unlock
- Smartphone apps — For offloading tasks like picture/video processing and real-time language translation
- Voice assistants — Always-on senses that would drain the battery if run on the CPU
So we’ve updated the Hexagon SDK to better accommodate that innovation. And more.
4 improvements you can use right now in the Hexagon DSP SDK 3.5
You’ll find greater flexibility and higher performance in this version of the SDK.
Support for UserPD Dump
I described this earlier and I think you’ll find it makes a big difference. Don’t send us your crash dump anymore. There’s no need to.
If you make a change to your DSP customization that causes a crash, you can now analyze the dump and debug your code yourself. We’ve made the user process domain accessible so you no longer need to send the dump to us and wait for us to send our analysis back to you. And, because we often needed both the dump and your proprietary code to resolve the problem, you’ll be pleased from the point of view of privacy as well.
Additional math in Qualcomm Hexagon Libraries (QHL)
The new use cases I mentioned above offload more math to our Hexagon DSP. Rather than make you port your own algorithms to the DSP, we’ve expanded our support in the QHL for math and signal processing libraries (including BLAS, FFT/IFFT, GEMM and conv), for both Hexagon scalar and vector.
CMake cross-compile option
In the past, you’ve had to use our Snapdragon LLVM Compiler for programming our Hexagon DSP. To let you keep your options open, the SDK now supports a cross-compile option for CMake-based, open source libraries.
asyncdspq API for image processing tasks
The Hexagon DSP has to synchronize all of the tasks from different modules with its clock. That means that tasks queued simultaneously — say, from sensors and the camera — are delayed while waiting for the next clock cycle. Starting with our UBWCDMA camera feature, the asynchronous DSP queue (asyncdspq) reduces that delay for multimedia post-processing on Hexagon.
It’s a move toward asynchronous inter-process communications (IPC) that you’ll continue to see as the Hexagon SDK evolves.
Look for more AI and camera workloads to be offloaded to our Hexagon DSP, with implementations for higher-quality upstream video and surround sound in areas like entertainment and gaming. For one thing, the performance boost — up to 7 teraOPS available for running machine learning models — and lower power consumption of the DSP are too tempting to pass up. For another, we’re working to make the tools and libraries in the Hexagon DSP SDK more accessible to manufacturers and developers with each new release.
Meanwhile, download the Hexagon DSP SDK (available for Windows and Linux) and start offloading tasks in your apps. Send me any questions in the Comments section below, or have a look through the Hexagon DSP SDK support forum.