Courses

Thursday, 16 December | 9:00 AM - 10:45 AM | Room 308B/C

Presented in English / 영어로 발표 됨

Introduction to OpenCL by Example

Wednesday, 15 December | 7:00 pm - 8:45 pm | Room 308B/C

The rapidly changing capabilities of modern graphics processing units (GPUs) require that developers understand how to combine parallel-programming techniques with the traditional interactive rendering pipeline exposed by OpenGL and Direct3D. This course demonstrates how to combine traditional rendering APIs with advanced parallel computation using OpenCL (Open Computing Language), a cross-platform API for programming parallel systems such as GPUs. The course presenters are experts on general-purpose GPU computation and advanced rendering from academia and industry, and have presented papers and tutorials on the topic at SIGGRAPH, Graphics Hardware, Supercomputing, and elsewhere.

The first section reviews the basics of the OpenCL API, including a "Hello World" application written in OpenCL. Attendees with laptops will be able to try the examples on their own during the course. The second section covers more advanced cases, including how to write applications that interact with standard graphics APIs. The final section includes performance-optimization "tips and tricks" for writing OpenCL applications.

Level

Intermediate

Intended Audience

Developers who want to use OpenCL to leverage GPUs and multi-core systems with an open, cross-platform API.

Presentation Language

Presented in English / 영어로 발표 됨

Prerequisites

None

Syllabus

Session A:

Introduction 
       - Why OpenCL is important for graphics

OpenCL overview
       - Compute/memory model overview

OpenCL basics
       - Simple applications
           - "hello world" (vec add)
           - "C" code
           - OpenCL kernel
           - host code
       - Simple convolution filter
       - Graphics API interop basics
          - vertex animation example (buffer <-> VBO)
          - post-processing example (image <-> PBO)
       - Simple SAT implementation

Morning Session B:

OpenCL continued:
       - Simple SAT implementation reprise
       - Multi-wave optimization
       - Image histogram
           - basic implementation
           - optimized implementation
           - example application
       - Cloth simulation

Conclusion & Q&A

Justin Hensley
Advanced Micro Devices, Inc.

Derek Gerstmann
University of Western Australia

Jason Yang
Advanced Micro Devices, Inc.

Instructor Bios

Justin Hensley
Justin Hensley is a senior member of the technical staff in AMD's Office of the CTO focusing on parallel programming using graphics processors. Since joining AMD, he has been involved with projects such as face recognition, depth extraction, and game physics. Recently, he has been involved with driving the compute requirements of next-generation graphics processors. He received his PhD in computer science from the University of North Carolina at Chapel Hill in 2007. He also holds an MS in electrical engineering and a BS in electrical engineering and computer science engineering from the University of California, Davis.

Derek Gerstmann
Derek Gerstmann is a research fellow at the University of Western Australia focusing on visualization and data analysis for the BioImaging Initiative, co-funded by the Western Australian Supercomputer Program (WASP) and the Centre for Microscopy, Characterisation and Analysis (CMCA). His knowledge and experience in parallel and distributed computation comes from a diverse professional career, including engineering positions at AMD/ATI, Apple Computer, and Weta Digital. He received his MSc from the National Centre for Computer Animation (NCCA) at Bournemouth University and his BSc from the University of Washington.

Jason Yang
Jason Yang is a member of the technical staff in AMD's Office of the CTO currently focused on GPGPU research. Major projects he has been involved in include H.264 and VC-1 shader decoding and custom anti-aliasing with edge detection. Recently, he worked on AMD's Stream Computing SDK. He received his PhD in computer science and his BS in electrical engineering and computer science from the Massachusetts Institute of Technology in 2005 and 1999 respectively.