18 Nov Qualcomm: Don’t Confuse Heterogeneous Computing (HC) With Heterogeneous Multiprocessing (HMP)
One of the hottest technology topics, whether it’s smartphones, tablets, PCs, workstations or cloud datacenters, is heterogeneous computing, or specialized computing for specialized workloads, software, and specific usage models. Even last week, we saw announcements from AMD and the HSAF, NVIDIA and CUDA 6, and continued industry education from Qualcomm on their Hexagon DSP engine. With industry advancement sometimes comes confusion, and MediaTek is doing just that by using a new term, “Heterogeneous Multi-Processing” (HMP), which could be easily confused with heterogeneous computing (HC). Let me try and clarify the differences.
MediaTek recently published a paper referring to Heterogeneous Multiprocessing (HMP) Technology. While there’s nothing inherently wrong with HMP, it’s not, by definition, heterogeneous computing. HMP is only about CPUs, not the GPU, DSP, connectivity, multimedia, or camera “engines” required to deliver the best smartphone experience. I think Qualcomm’s QMC’s Co-President, Murthy Renduchintala, clearly expressed the benefits of true mobile heterogeneous computing at their Uplinq event which I wrote on here.
One area of HC that Qualcomm is really leaning into lately is their HexagonDSP, and for good reason. All things equal, for certain workloads at a given level of performance, if you can program a DSP to do something, it will generally do that function at a much lower power draw.
One of my favorite Qualcomm examples (see below) of how a DSP helps in computer vision used in a smartphone or tablet camera. Qualcomm compares five computer vision workloads plotting time and energy compared to a quad core CPU, single CPU and the Hexagon DSP. Based on Qualcomm’s tests, it shows that the DSP burns less energy and does it as fast as or faster than the CPU in five computer-vision tasks.
The other thing I need to point out is that it takes a lot of software work and investment to deliver a complete, heterogeneous solution. Qualcomm provides a good example of the investment it takes to deliver a large, multi-layered cake of software.
Qualcomm has built specific SDK’s to provide native access to Snapdragon, Hexagon, and Adreno; connections to emerging heterogeneous computing environments like OpenCL and Google RenderScript, and even have heterogeneous compute domain libraries for augmented reality, computer vision, contextual awareness, facial processing and air gestures. This is a huge software investment but required to provide a total heterogeneous computing solution for OEMs, ODMs, and ISVs. You can find some interesting mobile heterogeneous computing ISV examples in videos from Pelican Imaging with their “Lytro-like” smartphone camera capability, MuseAmi for computer vision and pattern matching, and ArcSoftshowing how they use the CPU, DSP, ISP and CPU in their imaging app.
So does the benefits of heterogeneous computing (HC) make multi-processing (HMP) and CPUs a bad choice? No, it does not, and HMP can be part of a heterogeneous computing solution. CPUs are an integral part of a heterogeneous platform, but they’re not the only important part.
Hopefully, this helps clear up some of the confusion between HC and HMP.