Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
Engineering for Deep Learning & AI
·
Module 2
CUDA Programming Essentials
CUDA Fundamentals: Host, Device, and Kernel Compilation
Set up the CUDA toolchain, compile a kernel with nvcc, and distinguish between host and device code.
2
CUDA Memory Management Essentials
Manage device memory using cudaMalloc, cudaMemcpy, and cudaFree with proper error handling.
3
CUDA Kernel Launch and Index Mapping
Launch a CUDA kernel using the <<<grid, block>>> syntax and map thread/block indices to data.
4
Vector Addition Kernel Verification
Write and verify a vector addition kernel against a CPU reference implementation.
5
Synchronous vs. Asynchronous CUDA: Understanding cudaDeviceSynchronize
Explain the difference between synchronous and asynchronous CUDA APIs and the role of cudaDeviceSynchronize.
6
Optimizing Asynchronous Operations with CUDA Streams and Events
Use CUDA streams and events to create dependencies and overlap host-device transfers with kernel execution.
7
Pinned and Unified Memory for Performance
Utilize pinned (page-locked) and unified memory and explain their performance implications.
8
Profiling PyTorch Models with Nsight Systems
Profile a vanilla PyTorch forward pass of GPT-2 small and ResNet-50 with Nsight Systems to establish a baseline performance timeline.
Next module isn't ready yet,
Back to course
Previous module
Foundations: GPU Architecture and Performance Metrics
Next module