A System Approach to Mobile Heterogeneous Computing
In my last blog, I explained how Qualcomm Technologies, Inc. is defining heterogeneous computing and why processor diversity is so important. The next logical question is how do you put together these diverse processing units in a SoC and make them work well together.
We looked at that issue in a recent webinar, which explained how the entire system, including the processing unit architecture, system architecture, and software infrastructure must evolve to deliver the best mobile heterogeneous computing solutions. The two most important points that I took from the webinar are: the importance of taking a system approach and of implementing heterogeneous computing right for mobile.
Qualcomm Technologies, Inc.’s system approach for heterogeneous computing
In general, Qualcomm Technologies, Inc. takes a holistic system approach when designing mobile-optimized heterogeneous computing systems. That means we look at the whole system, including processing unit architecture, system architecture, and software infrastructure, when building a product. The image below depicts the approach.
Applying a system approach to heterogeneous computing is essential since heterogeneous computing encompasses the entire system, which has three layers: all the diverse processing units, the system architecture, and software of the SoC. In fact, there are also dependencies between each of these layers, represented by the arrows in the image. The holistic view of the system allows architects to evaluate key constraints, requirements, and dependencies and then make the most appropriate choices for mobile. Since we custom design the entire system, we can make the appropriate design tradeoffs and use that insight to deliver a more synergistic solution. This custom design approach is pretty unique to us. In contrast, other chipset vendors typically license a bunch of third-party processing units and then glue them together. As you can imagine, these processing units may not necessarily fit together well and were not necessarily designed for the same constraints or market segment.
Evolving the entire system is necessary to make the processing units more accessible and programmable to application developers. Take a look at the webinar to see some great examples of how Qualcomm Technologies Inc. is evolving the processing unit architecture, system architecture, and software infrastructure.
Doing heterogeneous computing right for mobile
By taking a system approach, we are doing heterogeneous computing right for mobile and have a unique perspective that can help the rest of the industry. For example, we carefully consider the special power and thermal constraints of mobile devices in our implementation of heterogeneous computing. The webinar mentioned features such as shared virtual memory, cache coherency, and context switching that must be implemented with mobile in mind, rather than taking the classic CPU approaches found in PC design. In addition, we are striving to maintain processor diversity while evolving the architecture for heterogeneous computing features since it is the diversity that provides the benefits. If all the processors look the same, we will end up with a homogeneous system. We don’t want that.
We are taking these insights and helping define open standards for heterogeneous computing. For example, Qualcomm Technologies, Inc. is actively participating in Khronos for OpenCL. In addition, Qualcomm Technologies, Inc. is a founding member of the Heterogeneous System Architecture Foundation.
Want to learn more? Check out this brief video recapping some of the webinar’s concepts. Also, watch for future blogs and webinars from Qualcomm and finally, don’t miss Murthy Renduchintala’s keynote at Uplinq 2013 for his perspective on mobile heterogeneous computing.