Welcome to my CUDA 120-Day Challenge repository, themed around Demon Slayer: Kimetsu no Yaiba! This repository documents my journey to master NVIDIA CUDA programming over 120 days, with daily exercises, notes, and capstone projects. Inspired by the determination of Tanjiro Kamado and the fiery spirit of Zuntsu (a nod to the Demon Slayer universe), I'm tackling GPU parallel programming, memory management, and performance optimization.
This 120-day curriculum covers:
- Daily Topics: Core CUDA concepts, practical exercises, and debugging pitfalls.
- Capstone Projects: Six major projects at Days 20, 40, 60, 80, 100, and 120 to synthesize skills.
- Resources: References to CUDA guides, best practices, and profiling tools.
Each day includes:
- A core topic to study
- A practical exercise or mini-project
- Common debugging pitfalls to avoid
- Suggested resources for deeper learning
Just as Tanjiro trains to become a Demon Slayer, I'm training to master CUDA programming. The fiery spirit of Zuntsu (a reference to the intense battles in Demon Slayer) inspires me to tackle challenges like:
- Warp divergence (like a Demon Slayer squad facing a split path)
- Memory coalescing (synchronized breathing techniques of Demon Slayers)
- Kernel optimization (sharpening your CUDA skills like a Demon Slayer's blade)
- Day 1: Introduction to GPU Computing & CUDA
- Day 2: Setting Up the Development Environment
- Day 3: GPU vs. CPU Architecture Foundations
- Days 4-120: Coming soon!
Click on the links below to explore my progress for each day:
- Day 1: Introduction to GPU Computing & CUDA
- Day 2: Setting Up the Development Environment
- ... (More days coming soon!)
I'll complete six capstone projects to solidify my skills:
- Project 1 (Day 20): Image Convolution Pipeline
- Project 2 (Day 40): Sparse Matrix-Vector Multiplication
- Project 3 (Day 60): Multi-Stream Data Processing
- Project 4 (Day 80): Multi-GPU Matrix Multiply
- Project 5 (Day 100): CUDA Graph-Optimized Workload
- Project 6 (Day 120): End-to-End HPC or ML Application
- CUDA References and Guides
- NVIDIA CUDA Toolkit Documentation
- Nsight Systems and Nsight Compute for profiling
- Start with the daily folders (
Day 1,Day 2, etc.) to follow my progress - Check the
codesubfolder for CUDA source files (e.g.,.cufiles) - Review the
notessubfolder for debugging pitfalls and lessons learned - Explore the capstone projects for comprehensive applications of CUDA concepts
- Inspired by Demon Slayer: Kimetsu no Yaiba and the CUDA 120-Day Challenge curriculum
- Special thanks to the Demon Slayer series for the inspiring visuals and themes
Let's ignite our CUDA skills with the spirit of a Demon Slayer! ⚡️🔥
