Skip to content

andytorrestb/learn-cuda

Repository files navigation

Learning Resources for CUDA Programming

This repository aims to currate resources to learn CUDA programming. Categories of resources include textbooks, seminars, free online courses and coding challenges. Users should be able to follow along the practice material and check this repository for solutions with thorough explinations. This project is just getting started, any feedback or suggestions are more than welcome. Also included are "Leetcode" style websites for daily practice writing kernel functions (GPU code).

Tutorials Covered

This section follows several tutorials and reference guides for CUDA development. Below is the list of tutorials currently covered:

1-Day Tutorial

  • CUDA Tutorial by ReadTheDocs: A beginner-friendly guide introducing CUDA basics, memory management, and kernel execution. It covers two simple but essential exercises, "Hello World" and vector addition using GPU hardware. This should take around 1 day to complete and provides a basic introduction to GPU programming.

1-Week Tutorial

  • Parallel Computing CUDA C: Another beginer-friendly guide to introduce CUDA basics. Resource introduces thses concepts over 14 chapters and includes seven hands on excerises to help build a working knowledge. Topics covered include: hardware architecture, data streams and expected bottlenecks, as well as tools for profiling preformenace. This should take 1-2 weeks to complete and provides a more thorough introduction to GPU programming.

1-Month Crash Course

  • Learning Path: From Basics to Advanced CUDA Programming: This provides a comprehensive intro duction to CUDA programming. It includes C/C++ tutorials, data structures, and parallel programming. It also covers useful CUDA libraries, frameowrks, and suggests coding challenges at the end (these may be listed in other parts of this repository). Some resources are free and some are paid. Please take what is useful to you.

NOTE: I have not gone through all these resources yet, this information is subject to change. Suggestions for alternative resources are welcome.

1-Month Daily Challenge

  • daily-cuda: 30 days of exercises to apply knowledge of GPU kernel development.

Practice-Oriented Resources

This section lists several websites that provide a platform for daily practice of GPU programming:

  • LeetGPU: GPU-focused programming challenges.

  • Compiler Explorer: Online compilation test bed. NOTE: need to confirm/test GPU compilation.

  • GPU Puzzles: Additional and creative/challenging GPU practice problems. NOTE: this may be moved to another section depending on future impressions.

  • 100 Days of GPU: Documents 100 days of GPU learning.

  • CUDA 120 Days Challenge: Daily coding challenge with a community for support (clout).


Next Steps

Coming soon:

  • CUDA kernel development
  • Performance profiling
  • Parallel algorithm implementation
  • Benchmarks and documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors