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/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.
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.
Here are just some possible locations to find GPGP software/libraries
and algorithmic toolkits you may need:
High-Level Shading Languages
GPGP Languages
Shader Conversion
Debugging Tools
Utility Code
Benchmarking Tools
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.
For more information, contact
Dinesh Manocha,
dm@cs.unc.edu, OR
Avneesh Sud,
sud@cs.unc.edu.