- For Attendees
- For Presenters
- For Volunteers
- Seoul
- For Exhibitors & Sponsors
- Registration
- For the Media
Courses
Introduction to OpenCL by Example
Wednesday, 15 December | 7:00 午後 - 8:45 午後 | 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.




