CS/EE 217 GPU Architecture and Parallel Programming - Fall 2020
- Time and Location: Tuesday, Thursday 09:30am - 10:50am Pacific time @ Zoom
Meeting ID: 921 9255 5948
- Friday dicussion section will not be used
- Instructor: Daniel Wong
- Email: firstname.lastname@example.org
- Homepage: http://www.danielwong.org
- Office: not WCH 425 =(
- Office Hours: By appointment
- TA: Mohammadreza Rezvani
- Email: email@example.com
- Office Hours: TBD
- Piazza (for discussions): http://piazza.com/ucr/fall2020/csee217/home
- Github Classroom (for assignment submission)
- iLearn (for grades and lecture videos/materials on Yuja): http://ilearn.ucr.edu
Lab 4 is assigned and due Tuesday, December 1.
Lab 3 is assigned and due Thursday, November 12.
Lab 2 is assigned and due Tuesday, November 3.
Lab 1 is assigned and due Tuesday, October 20.
First lecture will be during Week 1, October 6.
Welcome to CS/EE 217!
Class webpage and communication
The class webpage is located at http://teaching.danielwong.org/csee217/fall20
Information, resources, and announcements related to the class will be posted to the webpage.
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
Introduces the popular CUDA based parallel programming environments based on Nvidia GPUs. Covers the basic CUDA memory/threading models. Also covers the common data-parallel programming patterns needed to develop a high-performance parallel computing applications. Examines computational thinking; a broader range of parallel execution models; and parallel programming principles.
Prerequisite: CS160 Concurrent Programming and Parallel Systems Strong C/C++ programming skills are required
- Programming Massively Parallel Processors, 2nd Ed., by D. Kirk and W Hwu (primary textbook)
- CUDA by example, Sanders and Kandrot (recommended)
- Labs: 30%
- Final Project: 30% (Progress report: 10%, Implementation: 10%, Final report: 10%)
- Midterm Exam: 20%
- Final Exam: 20%
- Participation and Extra Credit: 5% bonus
- You have 3 slip days that you can use on any lab (not 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 labs will be given (see slip days). Even if you're one minute late, it will be considered late.
- All labs will be due at the end on the day (midnight Pacific time).
- All labs should be uploaded to iLearn or Github Classroom.
- You are responsible for all materials covered in lectures.
- All labs, quizzes, and exams are individual effort.
- Cheating in labs, 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.
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.
It's a pandemic. Attend if you can. =)
However, you are still responsible for keeping up with recorded course lectures and assignments.
The following schedule is tentative and is subject to change.
Note: You need to be registered in Piazza to access the lecture slides.
|1||October 6, T||Introduction and Logistics||Piazza Intro||Introduction|
|1||October 8, Th||OS/Architecture Review, CUDA C||Lab 1 - CUDA Setup/Vector Add||OS/Arch Review
|2||October 13, T||CUDA Parallelism||CUDA Parallelism|
|2||October 15, Th||GPU architecture overview, TB / Warp Scheduling||GPU-Architecture|
|3||October 20, T||CUDA Memories, Reduction Algorithm / Control Divergence||Lab 1 Due
Lab 2 - Reduction
|3||October 22, Th||Matrix Multiply||MatrixMultiply|
|4||October 27, T||Matrix Mutiply (cont.), DRAM / Memory Coalescing||GPGPU-Sim Setup
Lab 3 - Tiled Matrix Multiplication
|4||October 29, Th||Histogram & Atomic Operations||Histogram
|5||November 3, T||Stencil/Convolution||Lab 2 Due
|5||November 5, Th||Midterm Review||Samples|
|6||November 10, T||Midterm Exam|
|6||November 12, Th||Lab 3 Due
|7||November 17, T||Modern CUDA - Streams, Unified Memory||Lab 4 - Histogram||CUDA Streams
|7||November 19, Th||High-level Libraries / Final project meeting||CUDA Libraries
Nvidia Developer Blog
|8||November 24, T||Final project meeting||Final Project Progress Report Due|
|8||November 26, Th||Thanksgiving Holiday|
|9||December 1, T||GPU Architecture - Multi-GPU||Lab 4 Due
Extra Credit Assigment
|9||December 3, Th||GPU Architecture - Microarchitecture||GPUArchitecture.zip|
|10||December 8, T||GPU Trends - Multi-Chip Module||MCM.pdf|
|10||December 10, Th||Review||Samples|
|Final||December 16, W||Final Project Due|
|Final||December 17, Th||Final Exam|