CSCE 4643 GPU Programming (Fall 2016)

 

Course Description: This course will introduce massively parallel programming using Graphics Processing Units (GPUs). Basic programming model, GPU thread hierarchy, and GPU memory architecture will be covered. Various performance optimization techniques and parallel patterns will be discussed to deal with real-life applications.
   
Credit hours: 3
   
Meetings:

M/W/F: 9:40AM - 10:30AM

JBHT 236

   
Instructor:

Miaoqing Huang

Office: JBHT 526

Phone: 479-575-7578

Email: mqhuang AT uark.edu

   
Office Hours:

Monday       8:30 - 9:30AM

Wednesday  10:40 - 11:40AM

   
Class Mailing List:

csce-4643_gpu@mailman.uark.edu

Every student enrolled into the class has been automatically added into the mailing list.

You can broadcast a message to all the students in the class by sending an email to this email list. 

   
Course Management
Website
:
moodle.csce.uark.edu
   
Textbook:

1. Programming Massively Parallel Processors: A Hands-on Approach (2nd edition), by David B. Kirk and Wen-mei W. Hwu, Morgan Kaufmann, 2013, ISBN: 9780124159921

2. NVidia CUDA C Programming Guide

3. CUDA Runtime API Reference Manual

   
Course Syllabus: Please download here

 

 

 

Class Schedule: (subject to change)

 

Week

Date

Content

Lecture

Note

1

8/22 Course introduction and syllabus Lecture_1  
8/24      
8/26 CUDA C Basics Lecture_2  
2 8/29      
8/31 Tiled Matrix Multiplication Lecture_3  
9/2      
3 9/5     Labor Day
9/7      
9/9 CUDA Memories Lecture_4  
4 9/12      
9/14      
9/16
5 9/19      
9/21 Tiled Convolution Lecture_5  
9/23      
6 9/26      
9/28      
9/30 Performance Consideration Lecture_6  
7 10/3      
10/5      
10/7      
8 10/10      
10/12 Parallel Patterns Lecture_7  
10/14      
9 10/17     Fall Break
10/19      
10/21      
10 10/24      
10/26      
10/28      
11 10/31      
11/2      
11/4      
12 11/7      
11/9 Histogramming Lecture_8  
11/11      
13 11/14 Floating-point considerations Lecture_9  
11/16      
11/18      
14 11/21
11/23     Thanksgiving
11/25    
15 11/28      
11/30      
12/2 Data transfer Lecture_10  
16 12/5      
12/7      
12/9     Dead day, no class
17 12/14     Final exam: 8:00AM - 10:00AM, Wednesday

 

 

Homework:

 

    No homework.   

 

Exam:

 

    Final exam.

 

Labs:

 

    Labs, i.e., programming assignments, will be given in the class. The solution will be given and discussed during lecture time. Labs are taken into account for the grading.

    Please note there is no lecture hour reserved for labs. Students are supposed to carry out the lab exercises in their own time.

 

Projects:

 

    No project.

 

 

 

Course Grading:

 

    Quizzes, lab assignments, and the final exam will be used for the final grade of the course.

    Quizzes:                 10% 

    Lab assignments:     60%

    Final exam:             30%

 

Grade Distribution:

 

    A: over 90%

    B: 80% - 89%

    C: 70% - 79%

    D: 60% - 69%

    F: below 60%

 

Acknowledgment:

    (1) A lot of GPU materials are borrowed from the corresponding course delivered at UIUC by Hwu and Kirk, and from the presentation slides by NVIDIA.