Resolving the Challenges in Heterogeneous Computing
August 28, 2018
Story
Programmers have historically faced major challenges in implementing applications in their existing programming languages.
Programmers have historically faced major challenges in implementing applications in their existing programming languages. Not the least of which were multiple native instruction set architecture (ISA) inherent in heterogeneous processors. Today, those concerns are being put to rest, thanks to the introduction of Heterogeneous System Architecture (HSA).
A complex System on Chip (SoC) is at the heart of most electronic products today. Typically comprised of a wide range of IP blocks, often from different vendors, these blocks include everything from general-purpose processors (CPUs) to Deep Neural Networks (DNNs). Each is often designed and programmed in different, proprietary languages, creating a tech “Tower of Babel” for developers. Understandably, a solution had to be found, one that efficiently and cost-effectively addresses today’s growing hardware diversity.
The Move Toward Heterogeneous Architectures
Heterogeneous System Architecture has successfully addressed programming multiple different processors and exploiting the power of heterogeneity. Developers have grown increasingly aware of heterogeneous chips and their potential to dramatically reduce the power needed to perform complex compute applications. When programs are optimized for specialized heterogeneous systems, each system processor can execute code using the least power required for that particular function. The result is more performance at lower power than non-heterogeneous systems.
But there is another benefit to HSA, one that finally allows developers to design and program increasingly complex heterogeneous systems much faster. It helps to ensure that the right processor is used at the right time for the right task. Combined with cache-coherent shared virtual memory, HSA systems realize high-bandwidth access to memory, increased application performance and reduced power consumption.
Best of Both Worlds
Heterogeneous computing combines the best of general purpose computing and specialized computing. It specifies how a CPU can “talk” to an accelerator and often finds both integrated onto the same silicon die. So heterogeneous processors—such as CPUs, GPUs, DSPs, FPGAs, specialized accelerators and others—can finally be integrated and cooperate to achieve an ideal balance of performance and power consumption for a given application. Understandably, most designers today favor greater integration in the systems they build. While this adds a level of difficulty to the design process, the benefits of this approach—speed, fewer devices and lower overall cost—outweigh the inherent challenges.
Creating a Uniform Standard
HSA computing standards have made major strides since HSAF was founded in 2012. Today, there are not only royalty-free open specifications available but also fully operational production systems. HSA has become increasingly attractive to systems designers. It simplifies heterogeneous programming, creating standards that allow different types of processors to be programmed using many common programming languages including C/C++, Python, OpenCL, Java, etc. HSA ingeniously uses a single source file and automatically distributes parts of an application to the best processor to do the actual computing.
Survey Underscores HSA’s Broad Appeal
In a recent survey of HSA Foundation members, 100 percent indicated their systems have HSA features and 80 percent are now HSA-compliant. Respondents also cited improved SoC design and programming processes, greater interoperability between blocks from different IP suppliers, higher performance and lower power consumption. Most companies indicated they would continue to use multiple programming languages including ISO C++, ISO C11/C99, OpenMP 3.1/4.0 with C, and several others. Respondents also indicated a need to develop solutions for technologies that include Global Debug, further defining the memory model, security, virtualization and extensions to HSAIL.
Boon to Users
Heterogeneous systems are at the core of a variety of technological disruptions. Tablets, smartphones and scientific computers were all created as specialized systems. Going forward, heterogeneous architectures are playing a vital role in creating the next generation of disruptive devices. This includes 46 percent of desktops and mobile devices; 69 percent of servers, IoT, and embedded devices and 92 percent of AI and computer vision systems.
China and Beyond
The recently concluded Heterogeneous Computing Standards & International AI Conference, held in Xiamen, China is helping to lay the groundwork for heterogeneous computing standards not only in China but worldwide. The conference brought together industry leaders to discuss processors, software, applications, machine learning, and fintech for heterogeneous systems in artificial intelligence applications. And the subsequent series of China Regional Committee (CRC) Technical Symposiums this year have proposed the first version of standards and reviewed a number of additional proposals with all working groups providing input on the overall framework, key content and new features. The goal here is for key scientists and companies from China to adopt and adapt these technologies and that these specifications be incorporated worldwide.
Lastly, the HSA Foundation will join in the World Artificial Intelligence Conference (WAIC 2018) to be held in Shanghai West Bund September 17-19 (http://www.waic2018.com/index-en.html) and co-host the WAIC 2018 | Heterogeneous Computing Summit Forum on September 19 as an important part of the 3-day event. Themed on "Heterogeneous Computing, Standards Establishment and AI Empowerment," the forum will invite global companies, world-renowned experts, Chinese officials, and representatives from industry, universities and research institutes to introduce the latest developments in global heterogeneous computing, release the latest results of China's heterogeneous computing standards research and share the typical applications of deep integration of heterogeneous computing and AI.
About the HSA Foundation
The HSA (Heterogeneous System Architecture) Foundation is a non-profit consortium of SoC IP vendors, OEMs, Academia, SoC vendors, OSVs, and ISVs, whose goal is making programming for parallel computing easy and pervasive. HSA members are building a heterogeneous computing ecosystem, rooted in industry standards, which combines scalar processing on the CPU with parallel processing on the GPU while enabling high bandwidth access to memory and high application performance with low power consumption. HSA defines interfaces for parallel computation using CPU, GPU and other programmable and fixed function devices while supporting a diverse set of high-level programming languages, and creating the foundation for next-generation, general-purpose computing.