CS/EE 217 GPU Architecture and Parallel Programming - Fall 2017

  • Time and Location: Tues/Thur 11:10am - 12:30pm @ CHASS Interdisciplinary-North, Room 1006
  • Instructor: Daniel Wong
  • TA: Marcus Chow
    • Email: mchow009@ucr.edu
    • Office Hours: Friday 2-3PM @ Winston Chung Hall 109
  • iLearn (for assignments): ilearn.ucr.edu

  • Lab 6 is assigned and due Thursday, December 14 at midnight.
  • Lab 5 is assigned and due Tuesday, November 21 at midnight.
  • Lab 4 is assigned and due Thursday, November 9 at midnight.
  • Lab 3 is assigned and due Thursday, October 26 at midnight.
  • Lab 2 is assigned and due Thursday, October 19 at midnight.
  • Lab 1 is assigned and due Tuesday, October 10 at midnight.
  • Welcome to CS/EE 217!

Class webpage and communication

The class webpage is located at http://danielwong.org/classes/csee217-f17.

Information, resources, and announcements related to the class will be posted to the webpage.

In addition, we will be using ilearn for assignments, and piazza for 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

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


  • Programming Massively Parallel Processors, 2nd Ed., by D. Kirk and W Hwu (primary textbook)
  • CUDA by example, Sanders and Kandrot (recommended)

Grade Breakdown

  • Labs: 60%
  • Exams: 40%
  • Class Participation and Extra Credit: 5% bonus

Lab Policies

  • You have 5 slip days that you can use on any lab. If you exceed your slip days, there will be a 15% penalty per late day (counting weekends).
  • Slip days CANNOT be applied to the last lab. 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).
  • All labs should be uploaded to iLearn.


  • You are responsible for all materials covered in lectures.
  • All labs, quizzes, projects, 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.

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: conduct.ucr.edu.


You are expected to attend all lectures. While the slides contain all the information you need to know, some of the contents don't make sense unless you attend lecture. =)

The following schedule is tentative and is subject to change.

Date Topic Assignments Slides
Sep 28, Th Introduction / Architecture Review 0-introduction.pptx
Oct 3, T CUDA C lab1.pdf
Oct 5, Th CUDA Parallelism Model 3-cuda-parallelism.pptx
Oct 10, T CUDA Memory Lab 1 Due
Oct 12, Th DRAM 6-dram.pptx
Oct 17, T No Class - MICRO2017
Oct 19, Th Parallel Patterns - Histogram Lab 2 Due
Oct 24, T Parallel Patterns - Stencil 8-stencil.pptx
Oct 26, Th Parallel Patterns - Reduction Lab 3 Due
Oct 31, T Parallel Patterns - Scan 10-scan.pptx
Nov 2, Th Review
Nov 7, T Exam 1
Nov 9, Th Data Transfer / Streams Lab 4 Due
Nov 14, T
Nov 16, Th Dynamic Parallelism / Unified Memory dynamicparallelism.pdf
Nov 21, T GPU Architecture Lab 5 Due architecture.pptx
Nov 23, Th Thanksgiving
Nov 28, T GPU Simulators Lab 6
Nov 30, Th GPU Architecture (cont.)
Dec 5, T Review
Dec 7, Th Exam 2
Dec 14, Th Lab 6 Due