Home - rshipley160/learn-cuda GitHub Wiki
NVIDIA CUDA Knowledge Base
Welcome to the knowledge base. All you need to get started is a CUDA-enabled device that you can run the example programs on, a basic understanding of C/C++ (some of the more complex elements like memory management and pointers will be reviewed as needed), and the desire to learn.
Fundamental CUDA Concepts
- What is Parallel Computing?
- What is a GPU?
- Basic CUDA Syntax
- Memory Management on the GPU
a. CUDA Memory Types
b. Using CUDA Memory - Performance Experiment: On-GPU vs Off-GPU Bandwidth
- Thread and Block Scheduling
- Common Parallel Applications
a. Reduction
b. Matrix Multiplication
Asynchronous Computing Using CUDA
- Intro to Asynchronous Computing
- CUDA Streams
- Asynchronous Memory Transfers
- Performance Experiment: Multi-stream Parallelism
- Basic Synchronization Methods
- Events and Dependencies
- Performance Experiment: Synchronization Methods
- CUDA Graphs
a. Creating graphs with stream capture
b. Creating graphs explicitly
c. Using host functions with graphs & streams
d. Graph node glossary - Performance Experiment: Graphs vs Streams vs Synchronous Kernels
- Performance Experiment: Graph Length