Educational institutions that offer courses in OpenCL programming to prepare developers for a changing marketplace

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 university resources below.

Heterogeneous System Architecture, 1st Edition

hsa-bookHeterogeneous 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.

OpenCL™ University Kit

The OpenCL University Kit v2.0 contains materials for teaching OpenCL in a university setting.  Developed in collaboration with the Northeastern University Computer Architecture Research lab, these slides may be used in their entirety as a series of lectures, or incorporated into an existing OpenCL or parallel-computing course.  The University Kit is a companion for the textbook Heterogeneous Computing with OpenCL 2.0, with the flow of materials corresponding to chapters in the textbook.

The topics covered in these materials include the OpenCL host API and kernel language, OpenCL’s execution and memory models, modern GPU architecture, and kernel performance optimizations.  Students need only basic knowledge of C/C++ programming to understand the materials. A C/C++ compiler and an OpenCL implementation (such as the AMD APP SDK) are needed to run the code samples.

Visit the OpenCL University Kit webpage, or download the v2.0 of the University Kit below.

Heterogeneous Computing with OpenCL™ 2.0

OpenCL2Book 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.

The previous version, Heterogeneous Computing with OpenCL, 2nd Edition, Revised OpenCL 1.2 Edition, teaches OpenCL and parallel programming for the earlier version of OpenCL.

OpenCL™ at Oregon State University

Oregon State University is taking its desktop parallel programming course online through its award-winning Ecampus program. This course is targeted towards:

  • Computer Science students or recent graduates who want to see how to apply what they have been learning to the new multicore-based and GPU-based programming platforms.
  • Mid-career CS people who could use some extra knowledge and experience to boost their careers and/or want to know more about OpenCL™.

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)

Learn more and sign up here.