Heterogeneous computing

Heterogeneous computing refers to systems that use more than one kind of processor or cores. These systems gain performance or energy efficiency not just by adding the same type of processors, but by adding dissimilar coprocessors, usually incorporating specialized processing capabilities to handle particular tasks.[1]

Usually heterogeneity in the context of computing referred to different instruction set architectures (ISA), where the main processor has one and the rest have another, usually a very different architecture (maybe more than one), not just a different microarchitecture (floating point number processing is a special case of this not usually referred to as heterogeneous). E.g. ARM big.LITTLE is an exception where the ISAs of cores are the same and heterogeneity refers to the speed of different microarchitectures of the same ISA,[2] then making it more like a symmetric multiprocessor system (SMP).

In the past heterogeneous computing meant different ISAs had to be handled differently, while a modern example, Heterogeneous System Architecture (HSA) systems,[3] eliminate the difference (for the user); use multiple processor types (typically CPUs and GPUs[4]), usually on the same integrated circuit, to provide the best of both worlds: general GPU processing (apart from its well-known 3D graphics rendering capabilities, it can also perform mathematically intensive computations on very large data sets), while CPUs can run the operating system and perform traditional serial tasks.

The level of heterogeneity in modern computing systems is gradually increasing as further scaling of fabrication technologies allows for formerly discrete components to become integrated parts of a system-on-chip, or SoC. For example, many new processors now include built-in logic for interfacing with other devices (SATA, PCI, Ethernet, USB, RFID, Radios, UARTs, and memory controllers), as well as programmable functional units and hardware accelerators (GPUs, cryptography co-processors, programmable network processors, A/V encoders/decoders, etc.).

Recent findings show that a heterogeneous-ISA chip multiprocessor that exploits diversity offered by multiple ISAs, can outperform the best same-ISA heterogeneous architecture by as much as 21% with 23% energy savings and a reduction of 32% in Energy Delay Product.[5] The recent announcement by AMD on its pin-compatible ARM and x86 SoCs, codename Project Skybridge, suggests a heterogeneous-ISA (ARM+x86) chip multiprocessor in the making.[6]

Challenges in heterogeneous computing

Heterogeneous computing systems present new challenges not found in typical homogeneous systems.[7] The presence of multiple processing elements raises all of the issues involved with homogeneous parallel processing systems, while the level of heterogeneity in the system can introduce non-uniformity in system development, programming practices, and overall system capability. Areas of heterogeneity can include:[8]

Example platforms

Heterogeneous computing platforms can be found in every domain of computing—from high-end servers and high-performance computing machines all the way down to low-power embedded devices including mobile phones and tablets.

See also

References

  1. Shan, Amar (2006). Heterogeneous Processing: a Strategy for Augmenting Moore's Law. Linux Journal.
  2. A Survey Of Techniques for Architecting and Managing Asymmetric Multicore Processors, ACM Computing Surveys, 2015.
  3. "Hetergeneous System Architecture (HSA) Foundation".
  4. S. Mittal and J. Vetter (2015), A Survey of CPU-GPU Heterogeneous Computing Techniques, ACM Computing Surveys.
  5. Venkat, Ashish; Tullsen, Dean M. (2014). Harnessing ISA Diversity: Design of a Heterogeneous-ISA Chip Multiprocessor. Proceedings of the 41st Annual International Symposium on Computer Architecture.
  6. "AMD Announces Project SkyBridge: Pin-Compatible ARM and x86 SoCs in 2015, Android Support".
  7. Kunzman, D.M. (2011). Programming Heterogeneous Systems. International Symposium on Parallel and Distributed Processing Workshops.
  8. Flachs, Brian (2009). Bringing Heterogeneous Processors Into The Mainstream, (PDF). Symposium on Application Accelerators in High-Performance Computing (SAAHPC).
  9. Agron, Jason; Andrews, David (2009). Hardware Microkernels for Heterogeneous Manycore Systems. Parallel Processing Workshops, 2009. International Conference on Parallel Processing (ICPPW).
  10. Gschwind, Michael (2005). A novel SIMD architecture for the Cell heterogeneous chip-multiprocessor (PDF). Hot Chips: A Symposium on High Performance Chips.
This article is issued from Wikipedia - version of the 12/3/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.