Heavy computational workloads have traditionally been processed on a CPU, but technology is shifting to a new computing paradigm that relies more on the GPU or an APU. OpenCL™ is the widely adopted industry standard for running parallel tasks on CPUs, APUs and GPUs using the same code. Check out some of the resources below.
Heterogeneous System Architecture, 1st Edition
Heterogeneous Systems Architecture, or HSA, is a new compute platform infrastructure that presents a next-generation hardware platform and associated software, and allows processors of different types to work efficiently and cooperatively in shared memory from a single source program. HSA also defines a virtual ISA for parallel routines or kernels, which is vendor and ISA independent thus enabling single source programs to execute across any HSA compliant heterogeneous processer from those used in smartphones to supercomputers.
The book, Heterogeneous System Architecture, is edited by Wen Mei Hwu. Professor Hwu is the Sanders-AMD Endowed Chair in the Department of Electrical and Computer Engineering, University of Illinois at Urbana-Champaign. The book begins with an overview of the evolution of heterogeneous parallel processing, associated problems, and how they are overcome with HSA. Later chapters provide a deeper perspective on topics such as the runtime, memory model, queuing, context switching, the architected queuing language, simulators, and tool chains. Finally, three real world examples are presented, which provide an early demonstration of how HSA can deliver significantly higher performance thru C++ based applications. Contributing authors are HSA Foundation members who are experts from both academia and industry. Some of these distinguished authors are listed here in alphabetical order: Yeh-Ching Chung, Benedict R. Gaster, Juan Gómez-Luna, Derek Hower, Lee Howes, Shih-Hao HungThomas B. Jablin, David Kaeli, Phil Rogers, Ben Sander, I-Jui (Ray) Sung.
Heterogeneous Computing with OpenCL™ 2.0
The book, Heterogeneous Computing with OpenCL 2.0, 1st Edition, teaches OpenCL and parallel programming for complex systems that may include a variety of device architectures: multi-core CPUs, GPUs, and fully-integrated Accelerated Processing Units (APUs). This fully-revised edition includes the latest enhancements in OpenCL 2.0 including: Shared virtual memory to increase programming flexibility and reduce data transfers that consume resources; Dynamic parallelism which reduces processor load and avoids bottlenecks; Improved imaging support and integration with OpenGL
Designed to work on multiple platforms, OpenCL will help you more effectively program for a heterogeneous future. Written by leaders in the parallel computing and OpenCL communities, this book explores memory spaces, optimization techniques, extensions, debugging and profiling. Multiple case studies and examples illustrate high-performance algorithms, distributing work across heterogeneous systems, embedded domain-specific languages, and will give you hands-on OpenCL experience to address a range of fundamental parallel algorithms.
For an earlier version of OpenCL, the book Heterogeneous Computing with OpenCL, 2nd Edition, Revised OpenCL 1.2 Edition, written by leaders in the parallel computing and OpenCL communities, will give you hands-on OpenCL 1.2 experience to address a range of fundamental parallel algorithms. The authors explore memory spaces, optimization techniques, graphics interoperability, extensions, and debugging and profiling. Intended to support a parallel programming course, Heterogeneous Computing with OpenCL includes detailed examples throughout, plus additional online exercises and other supporting materials.
OpenCL™ University Kits
OpenCL is the industry standard for cross-platform, parallel programming of modern processors, targeting devices across the mobile/embedded space to personal computers, servers, and even supercomputers. OpenCL applications are architecture- and vendor-neutral, important both to industry and academia where code reuse and platform independence drive research and innovation.
Whether you are a game developer, an engineer, a chemist, a biologist, a physicist, etc., this is a great time to explore how to get more performance from the computers you probably already have.
It’s not a MOOC – you get actual college credit for it. (4 to be exact)