Introductory Tutorial to OpenCL for HPC at SAAHPC’10

This event is now over

We've collected some of the more interesting items from this event for you:

July 12, 2010
University of Tennessee Conference Center, Knoxville, Tennessee


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.


  • 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


  • Benedict R. Gaster, OpenCL™ Architect, Products Group, AMD Inc.
  • Lee Howes, Research Engineer, Office of the CTO, AMD Inc.


you may register for this tutorial on the AMD Developers website here.