The student will learn about the GPU as part of the PC architecture. Then they will learn about development of GPU software using CUDA C and OpenCL. Various optimization issues will be discussed. The concepts and the effects of optimization will be demonstrated with case studies.