Old Well

Department of Computer Science
College of Arts and Sciences
The University of North Carolina at Chapel Hill

COMP 790-058: GPGPU: General Purpose Computation using Graphics Processors

Instructors: Dinesh Manocha and Avneesh Sud

Time and Place: M,W 2:00-3:15pm, SN011 (tentative)
Office Hours: by appointment, SN225/332
Prerequisites: COMP136 or equivalent; COMP122 or equivalent; MATH 166 or equivalent OR Instructor's approval; Some knowledge of OpenGL/DirectX/Cg will be useful, but not essential.
Textbook: Course Notes and In-Class Handouts
Line Line


Line The modern graphics processor (GPU) is a high performance parallel architecture, with multiple cores and high memory bandwidth and is capable of sustaining computation rates an order of magnitude higher than that of a CPU. In addition, the performance and functionality of GPUs has been increasing at a faster pace than Moore's Law. Although the primary application of GPUs has been fast rendering of geometric primitives (e.g. polygons), the performance and functionality of today's GPUs make them attractive as co-processors for general-purpose computations. Over the last few years, many new algorithms and applications that exploit the inherent parallelism and vector processing capabilities of GPUs have been proposed. GPUs have been widely used for many non-graphics applications. These algorithms exploit the high memory bandwidth and multiple fragment processors for fast computation. See www.gpgpu.org and www.cs.unc.edu/Events/Conferences/GP2/ for more detailed examples and recent work in these areas.

This seminar course will cover algorithmic and system issues for General Purpose Computation using GPUs and use them for a number of applications. We will review the current state of the art and investigate many open issues. Topics include:

Lectures will be given by instructors, other faculty in the department, visitors and senior graduate students. Depending on the interests of the students, we may cover topics of interests in related areas.




Here is a list of lecture topics (subject to changes). Schedule and information on each topic (e.g. readings, web pointers) will be added during the semester before each class.



Line The class grade of each student is determined by

The assignments will be designed to familiarize the students with basics and develop program for general purpose computation on the GPU. The student should gain useful insights into the features and limitations of GPU programming by hands on experience. The CUDA-based assignments will cover topics such as:



The class projects shall explore more open ended problems in GPGPU and challenge the students to design innovative solutions. Class projects may be done in groups.

Student Project List. Line



Line Here are just some possible locations to find GPGPU software/libraries and algorithmic toolkits you may need:

High-Level Shading Languages

GPGP Languages

Shader Conversion

Debugging Tools

Utility Code

Benchmarking Tools




For more information, contact Dinesh Manocha, dm@cs.unc.edu, OR Avneesh Sud, sud@cs.unc.edu.

Copyright 2007. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the author.

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.