CS/EE 147 GPU Computing and Programming - Spring 2025
Course Information
-
Time and Location:
- Lecture: Tuesday/Thursday 11:00 AM - 12:20 PM @ Watkins Hall 1101
- Discussion: Friday 2:00 PM - 2:50 PM @ SOM EDUC 2 Room 105
-
Instructor: Daniel Wong
- Email: danwong@ucr.edu
- Homepage: http://www.danielwong.org
- Office Hours: Thursday, 1-2PM @ WCH425
-
TA: Sara Rashidi Golrouye
- Email: srash034@ucr.edu
- Office Hours: Monday, 1-2PM @ WCH110
- eLearn (for grades): http://eLearn.ucr.edu
- Discord (for discussions): https://discord.gg/p5bMk7Ay
- Github Classroom (for assignment submission)
Announcements
Assignment 2 is assigned and due Thursday, April 24 at midnight.
Assignment 1 is assigned and due Friday, April 11 at midnight.
Welcome to CS/EE 147!
Class Syllabus
Class webpage and communication
The class webpage is located at http://teaching.danielwong.org/csee147/spring25
Information, resources, and announcements related to the class will be posted to the webpage.
In addition, we will be using eLearn for assignments, and Discord for announcements, discussions and help.
You will need an ENGR account. EE and CEN students should already have one. If you do not, you can create one here: https://www.engr.ucr.edu/secured/systems/login.php.
Course Description
Graphics processing units (GPUs) play key roles in many modern application domains, such as image processing, machine learning, and scientific computing. GPUs provide programmers with the massive parallelism required for modern data intensive applications.
This course introduces the principles and practices of programming GPUs using the CUDA parallel programming environment. Topics include CUDA memory/threading models, common data-parallel programming patterns and libraries needed to develop high-performance parallel computing applications. Students will gain hands-on experience with designing and implementing high performance applications on GPU platforms.
Prerequisite: CS/EE 120B or equivalent; consent of instructor.
The course will assume the knowledge of the C++ programming language.
Textbook
- Programming Massively Parallel Processors, by D. Kirk and W Hwu (primary textbook)
- CUDA by example, Sanders and Kandrot (recommended)
Grade Breakdown
- Assignments: 28% (7% each assignment)
- Final Project: 25%
- Exam 1: 25%
- Exam 2: 20%
- Participation/Discussion: 2%
Letter Grade | Percentage |
---|---|
A | > 93% |
A- | > 90% |
B+ | > 87% |
B | > 83% |
B- | > 80% |
C+ | > 77% |
C | > 73% |
C- | > 70% |
Assignment Policies
- You have 3 slip days that you can use on any assignment (not final project). If you exceed your slip days, there will be a 15% penalty per late day (counting weekends).
- Slip days CANNOT be applied to the final project. We need ample time to grade the last assignment before grades are due.
- No extensions for assignments will be given (see slip days). Even if you're one minute late, it will be considered late.
- All assignments will be due at the end on the day (midnight Pacific time).
- All assignments should be uploaded to eLearn or Github Classroom.
Policies
- You are responsible for all materials covered in lectures.
- All assignments, quizzes, and exams are individual effort.
- Cheating in assignments, quizzes, projects, and exams are absolutely prohibited. The minimum penalty for a violation of the regulations will be a zero for the assignment; the maximum penalty will be failure in the course.
- Examinations must be taken in class on the day they are given. There will be no exceptions.
Academic Integrity
Here at UCR we are committed to upholding and promoting the values of the Tartan Soul: Integrity, Accountability, Excellence, and Respect. As a student in this class, it is your responsibility to act in accordance with these values by completing all assignments in the manner described, and by informing the instructor of suspected acts of academic misconduct by your peers. By doing so, you will not only affirm your own integrity, but also the integrity of the intellectual work of this University, and the degree which it represents. Should you choose to commit academic misconduct in this class, you will be held accountable according to the policies set forth by the University, and will incur appropriate consequences both in this class and from Student Conduct and Academic Integrity Programs. For more information regarding University policy and its enforcement, please visit: http://conduct.ucr.edu.
Attendance
You are expected to attend lectures. While the slides contain all the information you need to know, some of the contents don't make sense unless you attend lecture.
However, COVID is still around and people get sick all the time...so strict attendance won't be enforced. If you're sick, please stay home. You are still responsible for keeping up with recorded course lectures and assignments.
Tentative Schedule
The following schedule is tentative and is subject to change.
Note: You need to be logged into eLearn to access the lecture slides. The slide links to the course's eLearn Files page.
Week | Date | Topic | Assignments | Slides |
---|---|---|---|---|
1 | April 1, T | Introduction and Logistics, OS/Architecture Review | Introduction.pdf Review.pdf |
|
1 | April 3, Th | CUDA C | Assignment 1 | CUDA-C.pdf |
2 | April 8, T | CUDA Parallelism | CUDA-Parallelism.pdf | |
2 | April 10, Th | SIMT Stack, CUDA Memories, Reduction Algorithm / Control Divergence | Assignment 1 due Friday | SimtStack.pdf SimtStack.pptx Reduction.pdf |
3 | April 15, T | Reduction Algorithm / Control Divergence (cont.) | Assignment 2 | |
3 | April 17, Th | No Class | ||
4 | April 22, T | Modern CUDA / High-level Libraries | Final Project | Libraries-CUDA10 Libraries-Numba Libraries-ModernC++ |
4 | April 24, Th | Exam Review | Assignment 2 due | SampleMidterm SampleMidterm2 |
5 | April 28-30, M-W | Exam 1 (No lecture Tuesday) | ||
5 | May 1, Th | Modern CUDA - Streams | Final project proposal due | CUDA-Streams.pdf |
6 | May 6, T | Modern CUDA - Unified Memory | UnifiedMemory.pdf | |
6 | May 8, Th | CUDA Memories, Matrix Multiply | Assignment 3 | MatrixMultiply.pdf |
7 | May 13, T | Matrix Mutiply (cont.), DRAM / Memory Coalescing | MemoryCoalescing.pdf | |
7 | May 15, Th | Histogram & Atomic Operations | Assignment 4 | Histogram.pdf |
8 | May 20, T | Multi-GPU Programming / Communication | Assignment 3 due | Multi-GPU.pdf |
8 | May 22, Th | Final project meeting | ||
9 | May 27, T | Modern GPU Architecture - Emerging GPU Trends | Chiplets.pdf | |
9 | May 29, Th | Final project meeting | Assignment 4 due | |
10 | June 3, T | Exam Review | ||
10 | June 4-6, W-F | Exam 2 | ||
Final | June 10, T | Final Project Due | ||
UCR ACADEMIC POLICIES AND STUDENT SUPPORT
ITS Help and Student Technology Support
ITS Student Technology Services supports 9 student computer labs, including 7 public labs and 2 nonpublic labs, with approximately 293 public lab hours per week (with reduced hours during breaks and summer) available for academic use by all UCR students.
Whether you need a machine to work on your paper, need to use specialized software required by your class, assistance with your R'Mail or iLearn accounts, getting on the network, or any other services used by UCR students, contact BearHelp@ucr.edu.
Academic Misconduct
In addition to the course conduct policies outlined by your professor in the Course Syllabus in the online classroom, please review the Graduate Student Handbook.
It is the responsibility of each student to be familiar with the definitions, policies, and procedures concerning academic misconduct. Please revisit our Academic Integrity Policies and Procedures for more information. This site also defines misconduct, provides examples of prohibited conduct, and explains the sanctions available for those found guilty of misconduct.
Plagiarism
Plagiarism is the most common form of academic misconduct at UCR. It is the appropriation of another person's ideas, processes, results, or words without giving appropriate credit. This includes the copying of language, structure, or ideas of another and attributing (explicitly or implicitly) the work to one's own efforts. Plagiarism means using another's work without giving credit.
For more information about plagiarism, see Academic Integrity Policies and Procedures.
Use of AI
Generative artificial intelligence tools—software that creates new text, images, computer code, audio, video, and other content—have become widely available. Well-known examples include ChatGPT for text and DALL•E for images. This policy governs all such tools, including those released during our quarter together. You may not use generative AI tools on assignments in this course. If you choose to use generative AI tools in violation of this policy (or in another class that permits them), please remember that they are typically trained on limited datasets that may be out of date. Additionally, generative AI datasets are trained on pre-existing material, including copyrighted material; therefore, relying on a generative AI tool may result in plagiarism or copyright violations. Finally, keep in mind that the goal of generative AI tools is to produce content that seems to have been produced by a human, not to produce accurate or reliable content; therefore, relying on a generative AI tool may result in your submission of inaccurate content. It is your responsibility—not the tool’s—to assure the quality, integrity, and accuracy of work you submit in any college course. If you use generative AI tools to complete assignments in this course, in ways that I have not explicitly authorized, I will apply the UCR Code of Academic Misconduct as appropriate to your specific case. In addition, you must be wary of unintentional plagiarism or fabrication of data. Please act with integrity, for the sake of both your personal character and your academic record.
Reasonable Accommodation for Disabilities
UCR is committed to providing reasonable accommodation for all students with disabilities. Students with disabilities who require accommodations in this course should contact their professor as early in the semester as possible.
Students with disabilities must be registered with the Student Disability Resource Center prior to receiving accommodations in this course.
If you have a disability and you would like to make a request for reasonable accommodation, please see the Graduate Student Handbook or get in touch with the Student Disability Resource Center.
Adjustments for Pregnancy/Childbirth Related Issues
Should you need modifications or adjustments to your course requirements because of documented pregnancy-related or childbirth-related issues, please contact me as soon as possible to discuss your options. Generally, modifications will be made where medically necessary and similar in scope to accommodations based on temporary disability. Learn more about the rights of pregnant and parenting students by consulting the Office of Diversity, Equity, and Inclusion.
Title IX Resources
For any concerns regarding gender-based discrimination, sexual harassment, sexual misconduct, stalking, or intimate partner violence, the University offers a variety of resources, including advocates on-call 24/7, counseling services, mutual no contact orders, scheduling adjustments, and disciplinary sanctions against the perpetrator. Please see the Title IX website for more information. They can be reached at (951)827-7070. You can also file a report.
Student Needs
Student Health Services, Counseling & Psychological Services (CAPS), Residential Life, Dining, and R’Pantry are available to support students.
Religious Holidays
It is the policy of the University to excuse absences of students that result from religious observances and to provide for the rescheduling of examinations and additional required classwork that may fall on religious holidays without penalty. It is the responsibility of the student to make alternate arrangements with the instructor at least one week prior to the actual date of the religious holiday.
Copyright Policy
It is illegal to download, upload, reproduce, or distribute any copyrighted material, in any form and in any fashion, without permission from the copyright holder or his/her authorized agent. UCR expects all members of its community to comply fully with federal copyright laws.
Registration and Withdrawal
If you choose to withdraw from this course, you must complete the appropriate University form and turn the form in before the deadline. Deadlines are shown in the Academic Calendar, which is available from the Office of the Registrar.