Introductory Tutorial to OpenCL for HPC at SAAHPC’10

Event is now over

Checkout some of our upcoming events over here.

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.