About this site

This Web site teaches you how to effectively debug GPU programs. It also discusses common errors in GPU programming. We hope students can learn from these errors and become better programmers. 

Debugging any program can be time consuming and frustrating. But debugging GPU programs can be particularly difficult because of the parallel processing nature of GPU programming and the complexity of writing programs for two processors: CPU and GPU. Many of our students told us that they spent hours or even days to fix a program. We believe a more systematic and disciplined debugging approach can save them a lot of time. 

However, most textbooks and GPU programming guides do not provide sufficient coverage on debugging GPU programs. They rarely discuss errors in GPU programming. Therefore when students encounter errors in their own GPU programs, they can't easily find a reference that guides them in the debugging process. This project is an attempt to address this issue by providing materials for teaching and learning how to debug GPU programs. 

  • A classification of common GPU program bugs
  • Debugging methods for systematically finding bugs
  • Checklists that directly assist the debugging process
  • Examples of common errors

The materials on this site are grouped into two areas: 3D graphics programming and GPGPU (General Purpose Computing on GPU) programming. Each area has its own libraries, programming languages, and programming tools. As a result, each area also requires different debugging techniques. 

This web site is designed primarily to support college level courses on computer graphics, heterogeneous computing, parallel computing, or high performance computing. Anyone interested in learning GPU programming will also benefit from it. The target audience of the materials on this web site is beginning or intermediate level GPU programmers. We assume that the readers of this web site has some experience and can write complete programs in C/C++, OpenGL, Direct3D, OpenCL, or CUDA. 

How to use this site?  

For students

Students can use this web site as a guide for debugging their GPU programs. They will find debugging tutorials and checklists particularly helpful. 

For instructors

Instructors may use this web site to supplement their own teaching materials. For example, the list of common 3D computer graphics program bugs is organized based on 3D pipeline stages, the same way most computer graphics textbooks are organized. Instructors may provide this web site as a reference to their students for learning debugging techniques.