Lecture 1.1 Course Overview Course Goals • • Learn how to program heterogeneous parallel computing systems and achieve • high performance and energyefficiency • functionality and maintainability • scalability across future generations • Portability across vendor devices Technical subjects • Parallel programming API, tools and techniques • principles and patterns of parallel algorithms • processor architecture features and constraints 2 People Instructor: Wen-mei Hwu [email protected], use [Coursera HPP] to start your e-mail subject line Teaching Assistants: Abdul Dakkak, Izzat El Hajj, Tom Jablin, Andy Schuh, and community TAs Contributors David Kirk, John Stratton, Isaac Gelado, John Stone, Javier Cabezas, Michael Garland, TAs, and many more 3 Web Resources • Website: • Handouts, quizzes, labs, lecture slides/recordings • Weekly view vs. classic view • Sample textbook chapters, documentation, software resources • Electronic announcements • Forum discussions • Forum for Q&A - the community TAs read and answer the postings, and your classmates often have answers 4 Grading • Quizzes: 50% • Weekly, repeatable • Labs (Machine Problems): 50% • Weekly, with options in later assignments 5 Academic Honesty Code • You are allowed and encouraged to discuss assignments with other students in the class. • Getting verbal advice/help from people who have already taken the course is also fine. • Any sharing of code is unacceptable • Includes posting your own code at the Forum, reading someone else’s code and then going off to write your own. • Giving/receiving help on a quiz is unacceptable 6 Recommended Textbook/Notes 1. 2. 3. D. Kirk and W. Hwu, “Programming Massively Parallel Processors – A Hands-on Approach,” 2nd Edition, Morgan Kaufman Publisher, 2013, ISBN 0123814723 Lab assignments will have accompanying instructions and notes NVIDIA, NVidia CUDA C Programming Guide, version 5.0, NVidia (reference book) 7 ECE498AL – ECE408/CS483 - Coursera Kirk gave guest lecture at Hwu’s class. Blahut challenged Kirk and Hwu 1/06 Kirk finished visits to top universities, picking Illinois over others 7/06 NVIDIA announced G80, Hwu/students training at NVIDIA 11/06 12/07 Kirk and Hwu in panic mode producing ECE498AL material 8 ECE498AL – ECE408/CS483 - Coursera NVIDIA released CUDA, UIUC lecture and lab material went on-line 2/07 NAMD and other apps group post ECE498AL class projects 3/07 VSCSE, PUMPS, China, Chile, and related summer schools launched 6/08 9 ECE498AL – ECE408/CS483 - Coursera ECE498AL became an official UIUC course ECE408/CS483 8/11 First Coursera HPP Offering (25,000 students, 10,000 finished) 11/12 Second Coursera HPP Course Offering 1/14 10 Tentative Schedule • • • Week One: • Introduction to Heterogeneous Computing, Overview of CUDA C, and Kernel-Based Parallel Programming • Lab tour and programming assignment of vector addition in CUDA C Week Two: • Memory Model for Locality, Tiling for Conserving Memory Bandwidth, Handling Boundary Conditions, and Performance Considerations • Programming assignment of simple matrix-matrix multiplication in CUDA C Week Three: • Parallel Convolution Pattern • Programming assignment of tiled matrix-matrix multiplication in CUDA C 11 Tentative Schedule • • • Week Four: • Parallel Scan Pattern • Programming assignment of parallel convolution in CUDA C. Week Five: • Parallel Histogram Pattern and Atomic Operations • Programming assignment of parallel scan in CUDA C. Week Six: • Data Transfer and Task Parallelism • Programming assignment of parallel histogram in CUDA C. 12 Tentative Schedule • • • Week Seven: • Introduction to OpenCL, Introduction to C++AMP, Introduction to OpenACC • Programming assignment of vector addition using streams in CUDA C. Week Eight: • Course Summary, Other Related Programming Models –Thrust, Bolt, and CUDA FORTRAN • Programming assignment of simple matrixmatrix multiplication in choice of OpenCL, C++AMP, or OpenACC. Week Nine: • Complete any remaining lab assignments, with optional, bonus programming assignments in choice of OpenCL, C++AMP, or OpenACC. 13 Recorded with Personify Live Welcome Aboard!
© Copyright 2024 ExpyDoc