Seminar on GPGPU Programming
3D computer live action computer games with flashy graphics and accurately rendered gore have inadvertently brought a super computer onto your desk. GPGPU refers to the process of off-loading General Purpose (GP...) computing tasks from the CPU to the computer graphics hardware, the Graphics Processing Unit (...GPU). GPGPU can in many cases offer a hundredfold increase in performance, tenfold decrease in price and threefold increase in power efficiency over traditional CPU in many scientific computing efforts. On this seminar we will study existing GPGPU hardware and software solutions, survey the kinds of applications where significant speedups are possible, and exercise GPGPU computing on a challenge problem.
- Course code: T-106.5800 Seminar on Software Techniques
- Credits: 3
- Responsible teacher: prof. Heikki Saikkonen
- Assistants: Kenneth Oksanen, Timo Lilja
- Registration: By sending e-mail to Timo Lilja (firstname.lastname@example.org). Number of students is limited, we will inform you before the seminar begins whether you are accepted. Remember to include your student number!
- Time and place: Thursdays 14-16 at room A232 (third lecture period, first meeting on Jan 21st, last March 4th)
- Requirements: Mandatory attendance, presentation and a GPGPU programming project which is due April 20th, 2010 at 23:59
Optimization and best practices
Matrix multiplication in Cuda
GPGPU success and failure stories
Optimization of ray tracing for Cuda
Cuda and OpenCL API comparison
GPGPU IDEs and development tools
GPGPU and high-level languages
Particle simulation and efficient graphics output
Fermi, Fastra and Notes on simulating double precision FP
- Documentation on NVidia Cuda/OpenCL and generic OpenCL
- Running CUDA and OpenCL in course server
- Generic tips and tricks on Running NVidia's Cuda and OpenCL
- Project implementation comparisons
The task is to port a two-dimensional wave equation simulation in either Cuda or OpenCL. Further instructions can be found here .