Title: Heterogeneous computing: choosing the right hardware for the job
In the broad sense, heterogeneous computing refers to systems that use more than one kind of processor or cores. Different processors in a heterogeneous system incorporate specialized processing capabilities to handle particular tasks, which allow designers to maximize some performance metric, such as latency, throughput, or energy efficiency. Modern technologies available in the market include traditional multi-core general purpose CPUs, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and general-purpose graphics processing units (GPUs). Mixing and matching traditional and unconventional cores break away from the conventional evolutionary processor design path, posing new challenges and opportunities in high-performance computing.
With the widely advertised end of Moore's Law, heterogeneous computing has been recognized as a short-term enabler for coping with the ever-increasing and evolving demands of Big Data, Internet-of-Things, machine learning, etc. The recent disruptive merging of Intel and Altera is just one example on the market trends in this regards. Understanding the fundamental concepts and trade-offs associated with each technology is not only crucial to current technology but also to be prepared to use future hardware and design tools. This talk will present a general overview of the main concepts related to heterogeneous and specialized computing architectures, and discuss experiences, case studies, and ongoing work related to the use of these technologies in multiple application domains.