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.
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.
- Download the OpenCL University Kit v2.0 (Zip, 9.95MB)
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)