CIS 565 - Course Syllabus and Schedule

Schedule (Open in new tab)

Course Topics

  1. Introduction to CUDA
    • CUDA Terminology - Kernels, Threads, Blocks
    • Memory Management
    • Basic Matrix Multiplication using Parallel Programming
    • Built-in Variables and Functions
    • Thread Scheduling
    • CUDA Memory Model
    • Thread Synchronization
    • Matrix Multiplication Revisited
  2. GPU Architecture Overview
    • Trends in CPU and GPU Performance
    • CPU Architecture Overview
    • CPU Parallelism, and Scheduling
    • History of GPUs
    • GPU Architecture Evolution
  3. Parallel Algorithms
    • Reduction
    • Scan (Naive and Work-Efficient)
    • Stream Compaction
    • Summed Area Tables
    • Radix Sort
  4. CUDA Performance
    • Parallel Reduction Revisited
    • Warp Partitioning
    • Memory Coalescing
    • Bank Conflicts
    • Dynamic Partitioning of SM Resources
    • Data Pre-fetching
    • Instruction Mix
    • Loop Unrolling
    • Thread Granularity
  5. CUDA Atomics
    • Atomic Functions
    • Atomic Add, Subtract, Exchange, CAS
  6. Graphics Pipeline
    • Introduction to Graphics Pipeline (Forward Rendering)
    • Mapping Graphics Pipeline to Hardware
    • Hardware Ray Tracing
  7. Deferred and Forward+ Rendering
    • Multi-pass Forward Rendering
    • Deferred Rendering
    • Tile-Based Deferred Shading
    • Forward+ Rendering
    • Clustered Shading
    • WebGL Demos
  8. Advance Topics in CUDA
    • CUDA Unified Memory
    • Faster Memory Transfers
    • Zero Copy Memory
    • CUDA Streams
    • CUDA Streaming Compute-Copy Overlap
    • Warp Functions
    • Shuffle Operations
    • Warp Reduce using Shuffle
  9. Introduction to WebGL
  10. Machine Learning & CUDA

Labs

  • Debugging Lab
  • Performance Lab
    • Launching Nsight
    • Running Performance Analysis
    • Understanding Metrics
    • NVIDIA Visual Profiler
    • Matrix Transpose Optimization
    • Reduction Optimization