My hope is that people from various disciplines will attend the course. I will assume very little in terms of background preparation (i.e., basic understanding of computers and programming in C). The goal of the course is to bring together people with strong programming expertise and skills with people with a strong need for solving compute-intensive programs that can potentially benefit from CUDA.
The aim of the course is to provide hands-on experience in developing applications software for graphics processors with massively parallel computing resources. The target audiences of the course are those who want to develop exciting applications for these processors, as well as those who want to develop programming tools and future implementations for these processors. The initial part of the course focuses on a popular programming interface for graphics processors. The course continues with a closer view of the internal organization of graphics processors and how it impacts performance. Finally, implementations of applications and algorithms on graphics processors will be discussed.
The course will be using NVIDIA processors and the CUDA™ programming tools. There will be several programming assignments. In addition students will have to propose and complete a final project. Each programming assignment will involve successively more sophisticated programming skills.
The course will require a basic understanding of computer organization and general C programming knowledge.
This course is available to graduate students outside of Electrical and Computer Engineering; it should be of particular interest to those in other research fields who need substantial, low-cost computing power available with modern Graphics Processing Units.