Course ID: | CSCI 4130/6130. 4 hours. |
Course Title: | CUDA C Programming on GPUs for High Performance Computing |
Course Description: | GPUs are high-performance many-core processors. Students will
learn massively parallel programming using CUDA C and develop
parallel algorithms to solve real problems. Topics include
parallel computing, GPUs architecture, threads, performance
issues, and floating point representation. |
Oasis Title: | CUDA C PROG FOR GPU |
Undergraduate Prerequisite: | CSCI 1730 or permission of department |
Graduate Prerequisite: | CSCI 1730 or permission of department |
Semester Course Offered: | Not offered on a regular basis. |
Grading System: | A-F (Traditional) |
|
Course Objectives: | This course will focus on developing algorithms and programming
state-of-the-art multicore hardware systems for large scale
computation. Students will be exposed to different problems in
science and engineering. At the end of the semester, students
should:
1. Learn parallel computing concepts such as speedup,
efficiency, load balancing.
2. Differentiate between SIMD architecture and MIMD
architecture.
3. Learn GPUs architecture as parallel computers and compare it
with the SIMD and MIMD architecture.
4. Be able to show how threads play a vital role in parallel
computing.
5. Be able to develop parallel algorithms for GPUs using CUDA
programming.
6. Know Amdahl’s law, MIPS and MFLOPS as measures of performance
for parallel algorithms.
7. Be able to differentiate between the representations of
integers and floating point numbers in memory.
8. Be able to estimate the errors that result from performing
arithmetic operations on floating point numbers. |
Topical Outline: | Introduction to Parallel Computing; GPUs architecture as
parallel computers; CUDA C programming with examples; CUDA
threads and memories; Performance issues; Floating point
representations and errors; Applications in science and
engineering that require massively computational needs. |