OpenCL: The Hardware Evolution and the Software Revolution
Computer hardware is evolving in ways that prompt changes to how software is written for performance. The era of a single increasingly fast processor in a system gave way to the homogeneous parallel programming era, with multiple cores and processors from the same vendor in a system. The next evolutionary step upon us is the heterogeneous parallel programming era, with multiple cores and processors from different vendors in the same system. Heterogeneous compute systems can be faster than homogeneous systems and may require a fraction of the energy.
The Khronos OpenCL specification is a standard for parallel heterogeneous computing that enables software to leverage CPUs, GPUs, FPGAs, or other accelerators detected in a system. It provides a set of abstractions that can obtain peak performance on physical hardware across processor architectures. OpenCL standardizes a common device programming language so that developers can write software to run on any supported processor. Today, OpenCL is available on everything from a mobile device to a supercomputer, opening a world of opportunities for business and researcher.
This talk will motivate the OpenCL standard and present its opportunities and challenges. A survey of performance gains and energy savings will be provided so that the potential of the parallel heterogeneous compute era can be understood. The recent announcements from Khronos at GDC 2015, including Vulkan and OpenCL 2.1, will be echoed.
AJ Guillon is a Khronos member and actively contributed to the new OpenCL C++ kernel language, provisionally released as part of OpenCL 2.1. He has dedicated himself to solving the hardest problems in parallel programming and software engineering. AJ is the founder and CTO of YetiWare Inc, a local startup company that is commercializing a distributed heterogeneous compute operating system for next-generation cloud analytical platforms.
AJ is an alumni of the University of Toronto where he completed his Honors Bachelor of Science with a strong focus on mathematics, operating system design, and computer science theory. His passions include big, fast computers and the mathematics that powers them. AJ is a masters swimmer, water polo player, and enjoys rock climbing when time permits.