Open Compute Language (OpenCL)
•Open standard by Khronos
•Parallel C-based language
•IEEE-754 based precision
•Supports CPUs & GPUs
•Optimized at runtime
•Works with OpenGL
•For OSX, Linux & Windows
Introductory Class (9am - 12pm) 11 January 2010
Every Thursday (6pm - 7:30pm) 14 January 2010 - 25 February 2010
Visualisation & Compute Lab
Western Australia Supercomputer Program (WASP)
The University of Western Australia - Crawley Campus - Ground Floor Physics Building
This course will concentrate on teaching students the fundamentals of OpenCL, an open standard for programming heterogenous multi-core processors using a parallel programming language (based on ANSI-C99).
The goal of the course is to give students the opportunity to:
Gain an understanding of OpenCL as a technology framework for enabling heterogenous parallel processing.
Become familiar with the tools and techniques required to develop an efficient OpenCL enabled application.
Learn techniques for adapting existing algorithms to a data and/or task parallel programming model.
Understand the different characteristics of modern multi-core hardware architectures (e.g. CPUs vs. GPUs).
Introductory Session
Monday 11 January - 9am-12pm [slides]
Evening Courses
Thursday 21 January - 6pm - 7:30pm
Thursday 28 January - 6pm - 7:30pm
Thursday 4 February - 6pm - 7:30pm
Thursday 11 February - 6pm - 7:30pm
Thursday 18 February - 6pm - 7:30pm
Thursday 25 February - 6pm - 7:30pm
Instructors
Course Description
Course Schedule
References
Khronos
The OpenCL 1.0 Specification (v1.0.48). [pdf]
The OpenCL 1.0 Quick Reference Card. [pdf]
The OpenCL 1.0 Man Pages. [web]
Vendor Documentation
NVIDIA. The CUDA Architecture. [pdf]
NVIDIA. OpenCL Programming Guide [for NVIDIA GPUS]. [pdf]
NVIDIA. OpenCL Best Practices Guide [for NVIDIA GPUS]. [pdf]
Articles & Papers
Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., and Hanrahan, P.
Brook for GPUs: Stream computing on graphics hardware.
ACM Transactions on Graphics 23, 3, 777–786. 2004. [pdf]
Gerstmann, D., Peercy, M., Segal, M.
A Performance-Oriented Data Parallel Virtual Machine for GPUs.
ACM SIGGRAPH Sketch 2006. [pdf]
Owens, J. D. Luebke, D. Govindaraju, N. Harris, M. Kruger, J. Lefohn, A. E. Purcell, T. J.
A Survey of General-Purpose Computation on Graphics Hardware.
Computer Graphics Forum, 2007, VOL 26; NUMBER 1, pages 80-113. [pdf]
Updates