Time: Tuesday/Thursday 11:00 AM - 12:15 PM
Instructor: Adwait Jog (Website)
Office hours: Tuesday/Thursday 12:15 PM - 1:45 PM, Rice 501 (office)
Email: ajog@virginia.edu
Instructor: Mohammad Sonji (Website)
Office hours: Tuesday/Friday 4:00 PM - 5:00 PM
Please keep checking this website for the latest information regarding this course.
This graduate-level course offers an in-depth study of general-purpose graphics processing units (GPUs) from both architectural and micro-architectural perspectives. It also explores the principles of high-performance parallel computing and GPU application development, with particular emphasis on how architectural design choices influence performance, scalability, and programmability.
Students will critically examine top-tier conference and journal papers addressing research challenges in the GPU space. Evaluation may include exams, scholarly paper reviews, research presentations, and a semester-long research project.
Prerequisite(s): Background in computer organization and design is expected. This course is an advanced version of CS 4444.
Breadth area coverage: Computer Systems
Class Attendance (In-person) and Participation: 20%
Programming Assignments (10 percent) and Paper reviews (10 percent): 20%
In-Class Paper Presentations (In-person): 20%
Semester-long Research Project: 40% (5 percent for proposal, 10 percent each for midterm and final project presentations; 15 percent for final report)
Programming Massively Parallel Processors: A Hands-on Approach, Hwu, Kirk, and El Hajj, 4th Edition (link). We have this book in the UVA Library. Associated Youtube lectures.
NVIDIA CUDA C Programming Guide (link)
General-Purpose Graphics Processing Architectures, Aamodt, Fung, Rogers. (link). Book available via UVA login.
Computer Architecture: A Quantitative Approach, Hennessy and Patterson, Sixth Edition. (link)
Computer Organization and Design, Patterson & Hennessey, 2nd Edition (RISC-V Edition). (link)
Digital Design and Computer Architecture, Harris & Harris, RISC-V Edition
Accelerated Computing with HIP (link)
The modality of this class is in-person. There is no plan to record lectures. There is also no plan to allow students to join the class virtually.
You are expected to attend all lectures in-person. If you cannot attend in person, please e-mail the course staff (ahead of time, if possible) with a reason (e.g., university-related travel, sick – please don't provide any specifics).
You are expected to actively partcipate in the class (e.g., asking and responding to questions in-class and on Piazza, participating in discussions).
Use of electronic devices is only limited to class-related activities.
Course staff will be periodically taking attendance to have a record of your in-person attendance. As long as you attend at least 80% of classes in-person (exceptions listed below), no points will be deducted related to class attendance.
If you miss the class on the day of your presentation without one week notice, zero points will be awarded for that presentation component. If you anticipate a scheduling conflict, please let the instructor know as soon as possible.
There will be some CUDA programming assignments assigned.
Deadline for the review submission is just before the class when the paper is scheduled to be discussed.
Submission Format: Each review should not exceed one-page (in the PDF format) and must consists of four sections: 1) paper summary (2-3 lines), 2) strengths (2-3 lines), 3) weaknesses (2-3 lines), and 4) comments (2-3 paras).
Each student will present 1-2 papers throughout the semester. When you present a paper, be prepared to answer a variety of questions asked by the instructor or other fellow students. Paper assignment will be done by the instructor.
Please discuss with the instructor to decide on the project and come up with a proposal. Regular meetings are expected with the course staff so that progress can be made. Please consider basing your project on an established open-source project (e.g., TensorRT, TensorRT-LLM, nccl, nvshmem, NVFlare, cutlass, SPARK, ROCm, OpenCompute, vLLM, gsplat, GPGPU-Sim, MGPUSim, and several other open-source projects from NVIDIA, AMD, and others). You may also consider an artifact released as a part of the conference paper. A more detailed document with guidelines can be found on Canvas.
You can do the semester-long course project in a group (max 2 students in a group). Always describe your individual contributions to the project in the presentations and final report. Discuss with the instructor to select the project and finalize a feasible direction. Instructor approval of the proposal is required before proceeding.
The final project report will be due in the finals week. Please use IEEE or ACM conference formats. The report length should not be more than 10 pages (excluding references).
Students will be also asked to do multiple project-related presentations during the entire semester: proposal, mid-term presentation, and final presentation.
Computing: UVA CS computing has several servers with GPUs. Advanced GPUs (e.g., H100) are behind Slurm. Check out these links: Compute, GPU Compute, Slurm
Materials: We will primarily use UVA Canvas for delivering and submitting materials. Piazza (link available on Canvas) will be used for course announcements and discussions. Gradescope (link available on Canvas) will be used for submissions.
Help: It is important to start working early on project and other deliverables. If you need help, show up during office hours or ask questions in or after the class. You are also highly encouraged to use Piazza to ask questions.
The university, school, and department policies against academic dishonesty will be strictly enforced.
Students are required to follow the UVA Honor Code. More details can be found here.
Please check Course Canvas Page.
It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at to schedule an appointment. For general questions please visit the SDAC website. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.
It is the University's long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
Students who wish to request academic accommodation for a religious observance should submit their request to me by email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available.
The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, or veteran status. UVA policy also prohibits retaliation for reporting such behavior.
If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It or contact EOCR, the office of Equal Opportunity and Civil Rights.
If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (“CAPS”) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).
As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and by federal law to report certain kinds of conduct that you report to me to the University's Title IX Coordinator. The Title IX Coordinator's job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.
Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. I wish to encourage and support you in activities related to your career development. To that end, please notify me by email as far in advance as possible to arrange for appropriate accommodations.
The Center for Connection (The Connect) is a dedicated student space within UVA Engineering that fosters academic success and personal growth. Through its programs and initiatives, The Connect helps students strengthen their engineering identity while providing resources to help them thrive during their studies and beyond. Our work centers on three key areas: student belonging and development, academic support, and community programming grounded in intentional, data-driven strategies.
The Connect features an open study area, a flexible event space, and on-site staff who provide direct support and advising to students. It is part of the Office of Community, Opportunity, and Engagement.
The majority of the course materials used in this course are adapted from the courses taught by several faculty members. We especially thank Reetuparna Das (UMich), Izzat El Hajj (AUB), Tor Aamodt (UBC), Onur Mutlu (ETH), for providing resources and feedback. Also, thanks to book authors and Elsevier for making the materials publicly available.