As taught in: July 12, 2010 @ SAAHPC’10, University of Tennessee Conference Center, Knoxville, Tennessee

Level: Beginner


AMD offered an introductory tutorial to OpenCL™ that was held alongside the 2010 Symposium on Application Accelerators in High Performance Computing (SAAHPC’10).


Benedict R. Gaster – OpenCL™ Architect, Products Group, AMD Inc.

Lee Howes – Research Engineer, Office of the CTO, AMD Inc.

Course Presentation

» View Presentation [PDF 8.16MB]

If you are interested in using this course material, in whole or in part, for use in your own training class, please credit AMD where appropriate.

» Download source presentation [PPT 5.12MB]

Course Description

OpenCL™ is a standard for programming heterogeneous computers built from CPUs, GPUs and other processors. It includes a framework to define the platform in terms of a host (e.g. a CPU) and one or more compute devices (e.g. a GPU) plus a C-based programming language for writing programs for the compute devices. Using OpenCL™, a programmer can write task-based and data-parallel programs that are targeted at HPC.

In this tutorial, we will introduce OpenCL™. This will be a “programmer’s introduction” where we cover the ideas behind OpenCL™ but also show how these ideas are translated into source code. We will do this through a series of progressively more challenging examples–thereby providing examples that experienced programmers will need to become productive OpenCL™ programmers.

The course syllabus is as follows:

  • ATI Stream Computing
    • Hardware Overview
    • Software Ecosystem Overview
  • Heterogeneous Computing and the Origins of OpenCL™
  • OpenCL™ Overview
    • Platform Model
    • Execution Model
    • Memory Model
    • Programming Model
  • Exploring the Spec with Code: Embarrassingly Parallel
    • Vector Addition: The Basic Platform Layer
    • Sorting: Kernel Programming Language
  • Exploring the Spec with Code: Interacting Work-Items
    • Optimizing Sort: Work-Groups and the Memory Model
  • A Survey of the Rest of OpenCL™
    • Runtime Layer, Event Model, C++ Wrapper API
  • Simulating the Ocean

Related Resources

OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.