This course examines the architecture and capabilities of modern GPUs (graphics processing unit).
The GPU has grown in power over recent years, to the point where many computations can be performed
faster on the GPU than on a traditional CPU. GPUs have also become programmable, allowing them to
be used for a diverse set of applications far removed from traditional graphics.
Course topics include architectural aspects of modern GPUs, with a focus on their
streaming parallel nature, writing programs on the GPU using GLSL, CUDA, and OpenCL,
and using the GPU for graphics and general purpose applications.
This course is hands-on; there are regular programming assignments and a final project.
- Programming knowledge of C/C++ and OpenGL.
- CIS 460/560: Introduction to Computer Graphics - or equivalent.
- CIS 501: Introduction to Computer Architecture - or equivalent.
- Homework (50%): There will be 4-5 programming assignments, including small written components. These assignments start to fill the student's toolbox of techniques and provide an understanding for implementing game rendering, animation, and general purpose algorithms on the GPU.
- Final Project (40%): This is a final project of your choice. We will meet individually with each person to discuss the scope and progress of your projects. Projects will be shown at a poster session at the end of the semester. There will be opportunities for extra credit, worth up to 5% of the course's total grade.
- Paper Presentation (10%): Each student will present one or two papers on a topic that interests them based on a short list of important papers and subject areas relevant to the GPU literature.
Advice: Use the homework to sharpen your GPU programming skills for the final project. Use the paper presentation to research your final project.
- Time: Monday and Wednesday, 1:30-3:00pm
- Location: Towne 309
None. The schedule
includes links to the relevant reading for each lecture.
- Joseph Kider (kiderj _at_ seas.upenn.edu)
- Office Hours: TBD
- Office Location: Moore 108 - SIG Lab (Back Office)
- Qing Sun (sunqing _at_ seas.upenn.edu)
- Office Hours: TBD
- Office Location: Moore 103 - SIG Lab
The following labs are available for your use. If you need access, contact Joe or Qing.
- Moore 100b Computer Lab - NVIDIA GeForce 9800s with CUDA 3.1 configured for Visual Studio 2005 and 2008.
- SIG Lab - Most machines have at least NVIDIA GeForce 8800s with CUDA 3.2 configured for Visual Studio 2010. Two machines have a GeForce 480, and one machine has a Fermi Tesla card.
Code of Academic Integrity
Since the University is an academic community, its fundamental purpose is the pursuit of knowledge. Essential to the success of this educational mission is a commitment to the principles of academic integrity. Every member of the University community is responsible for upholding the highest standards of honesty at all times. Students, as members of the community, are also responsible for adhering to the principles and spirit of the following Code of Academic Integrity.
Academic Dishonesty Definitions
Activities, that have the effect or intention of interfering with education, pursuit of knowledge, or fair evaluation of a student's performance are prohibited. Examples of such activities include but are not limited to the following definitions:
- A. Cheating: using or attempting to use unauthorized assistance, material, or study aids in examinations or other academic work or preventing, or attempting to prevent, another from using authorized assistance, material, or study aids. Example: using a cheat sheet in a quiz or exam, altering a graded exam and resubmitting it for a better grade, etc.
- B. Plagiarism: using the ideas, data, or language of another without specific or proper acknowledgment. Example: copying another person's paper, article, or computer work and submitting it for an assignment, cloning someone else's ideas without attribution, failing to use quotation marks where appropriate, etc.
- C. Fabrication: submitting contrived or altered information in any academic exercise. Example: making up data for an experiment, fudging data, citing nonexistent articles, contriving sources, etc.
- D. Multiple submission: submitting, without prior permission, any work submitted to fulfill another academic requirement.
- E. Misrepresentation of academic records: misrepresenting or tampering with or attempting to tamper with any portion of a student's transcripts or academic record, either before or after coming to the University of Pennsylvania. Example: forging a change of grade slip, tampering with computer records, falsifying academic information on one's resume, etc.
- F. Facilitating academic dishonesty: knowingly helping or attempting to help another violate any provision of the Code. Example: working together on a take-home exam, etc.
- G. Unfair advantage: attempting to gain unauthorized advantage over fellow students in an academic exercise. Example: gaining or providing unauthorized access to examination materials, obstructing or interfering with another student's efforts in an academic exercise, lying about a need for an extension for an exam or paper, continuing to write even when time is up during an exam, destroying or keeping library materials for one's own use., etc.
* If a student is unsure whether his action(s) constitute a violation of the Code of Academic Integrity, then it is that student's responsibility to consult with the instructor to clarify any ambiguities.