CSCI5390 Advanced GPU Programming

 

Course code CSCI5390
Course title Advanced GPU Programming
高級圖形處理器編程
Course description The evolution of consumer graphics hardwares leads to the introduction of parallel, programmable GPUs (Graphics Processing Units). The strong parallel computational power of GPUs not only supports real-time and realistic rendering, but also the cost- effective platform for scientific computing, such as physical simulation, numerical analysis, evolutionary computation, image processing, and computer vision, etc. This course introduces the evolution of shading language and GPU, the basic concept in GPU programming and the recent advanced usage of GPU in computer graphics and general- purpose computing. Topics covered include: shader programming, procedural texture and modelling, programmable graphics pipeline, modern shading language, GPGPU (general-purpose computing in GPU), limitations of GPU, and case studies of advanced usages of GPU.
圖形硬體的發展帶來新一代平行及可編程的圖形處理器。圖形處理器的快速平行計算能力不但可支持實時像真渲染,亦提供一個有成本效益的科學計算平台用作,物理學模擬,數值分析,演化式計算,圖像處理,及計算機視覺等。本科介紹著色語言及圖形處理器的發展,圖形處理器編程的基本概念,圖形處理器於計算機圖形及通用計算的先進用法。課題包括著色子編程,過程紋理及模型,可編程的圖形處理流程,現代著色語言,圖形處理器的通用計算,圖形處理器的局限,及圖形處理器先進使用的個案探討。
Unit(s) 3
Course level Postgraduate
Prerequisite CSCI2100 or ESTR2102 or CSCI2520
Semester 1 or 2
Grading basis Graded
Grade Descriptors A/A-:  EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions.
B+/B/B-:  GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered.
C+/C/C-: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems.
D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems.
F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course.
Learning outcomes At the end of the course of studies, students will have acquired the ability to
1. understand the design rationale of the hard-to-learn GPU programming.
2. understand how leading researchers in various fields making use of GPU for advanced research.
3. use GPU.
Assessment
(for reference only)
Presentation: 40%
Essay test or exam: 30%
Others: 30%
Recommended Reading List 1. Anthony A. Apodaca & Larry Gritz, “Advanced RenderMan: Creating CGI for Motion Pictures”, Morgan Kaufmann Publishers (2000)
2. Steve Upstill, “The RenderMan Companion: A Programmer’s Guide to Realistic Computer Graphics”, Addison Wesley, 1990.
3. David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley, “Texturing & Modeling: A Procedural Approach”, Third Edition, Morgan Kaufmann, 2002.
4. Randima Fernando, “GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics”, Addison Wesley, 2004.
5. Matt Pharr & Randima Fernando, “GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation”, Addison Wesley, 2005.
6. Hubert Nguyen, “GPU Gems 3”, Addison Wesley, 2007.
To keep the course materials updated, part of the lecture materials will also be compiled from the web or from difference sources.

 

CSCIN programme learning outcomes Course mapping
Upon completion of their studies, students will be able to:  
1. identify, formulate, and solve computer science problems (K/S); TP
2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S);
P
3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V); T
4. communicate effectively (S/V);
5. succeed in research or industry related to computer science (K/S/V);
TP
6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S); TP
7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V); T
8. practise high standard of professional ethics (V);
9. draw on and integrate knowledge from many related areas (K/S/V);
TP
Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured