Goals
Lab 8, Exercise 1
Run GPU code on an ICDS Cluster
Accelerate linear algebra computations with GPU
Recognize what problem sizes and likely to result in acceleration with a GPU for linear algebra
Lab 8, Exercise 2:
Learn to write a GPU kernel, using KernelAbstractions.jl
Improve performance by reducing memory transfers via GPU reductions
Perform custom scientific computations using high-level GPU interface, such as
Folds.jl with
CUDAEx()executor from FoldsCUDA.jl
Improve performance through reduced memory allocations
Recognize what types of problems and problem sizes are likely to result in acceleration with a GPU when using a high-level programming interface or custom GPU kernel
Project
Gain experience parallelizing a real world code
Identify changes need to acheive significant performance benefit via parallelization
Readings / Discussions
Describe how GPU differs from CPU
Assess the prospects for a given algorithm to achieve a significant speed-up using a GPU
Lab
Lab 8: Parallel Programming III: GPUs & Other Hardware Accelerators (due Nov 7)
Exercise 1: Linear Algebra on GPU
Exercise 2: GPU Kernels & Array Programming
Readings
Additional Resources
Week 10 Class Discussion: GPU Computing