# srush/gpu-puzzles

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/srush-gpu-puzzles).**

12,242 stars · 933 forks · Jupyter Notebook · MIT

## Links

- GitHub: https://github.com/srush/GPU-Puzzles
- awesome-repositories: https://awesome-repositories.com/repository/srush-gpu-puzzles.md

## Topics

`cuda` `machine-learning` `puzzles`

## Description

GPU-Puzzles is an interactive learning environment and tutorial designed for mastering CUDA GPU kernel development. It serves as an educational tool and lab where users solve coding puzzles to understand how to map high-level logic to low-level GPU hardware instructions.

The platform focuses on teaching parallel computing concepts and GPU architecture. Users practice developing parallel algorithms and managing GPU memory through a series of hands-on challenges.

The environment utilizes a bridge between Python and CUDA to execute kernels and provide real-time feedback by validating outputs against expected puzzle solutions.

## Tags

### Education & Learning Resources

- [GPU Programming Courses](https://awesome-repositories.com/f/education-learning-resources/gpu-programming-courses.md) — Provides an interactive learning environment and structured puzzles for mastering CUDA GPU kernel development. ([source](https://github.com/srush/gpu-puzzles#readme))
- [CUDA Programming Tutorials](https://awesome-repositories.com/f/education-learning-resources/cuda-programming-tutorials.md) — Serves as an interactive learning environment for mastering CUDA GPU kernel development.
- [Hardware-to-Logic Mapping Exercises](https://awesome-repositories.com/f/education-learning-resources/hardware-to-logic-mapping-exercises.md) — Offers exercises that map high-level Python logic directly to low-level CUDA hardware instructions.
- [Concurrency Labs](https://awesome-repositories.com/f/education-learning-resources/practical-labs/concurrency-labs.md) — Functions as a hands-on lab for practicing parallel computing concepts and GPU memory management.
- [Targeted Feedback Loops](https://awesome-repositories.com/f/education-learning-resources/targeted-feedback-loops.md) — Implements real-time validation of CUDA kernel outputs against expected solutions to provide immediate pedagogical feedback.

### Programming Languages & Runtimes

- [GPU Programming Educational Tools](https://awesome-repositories.com/f/programming-languages-runtimes/gpu-kernel-programming/gpu-programming-educational-tools.md) — Provides a set of programming challenges designed to teach the mapping of high-level code to GPU hardware.

### Scientific & Mathematical Computing

- [GPU-Accelerated Computation](https://awesome-repositories.com/f/scientific-mathematical-computing/gpu-accelerated-computation.md) — Provides a system that executes puzzle computations on GPUs to teach parallel programming and memory management.
- [Parallel Algorithm Training](https://awesome-repositories.com/f/scientific-mathematical-computing/parallel-algorithms/parallel-algorithm-training.md) — Provides practical training in developing parallel algorithms to improve performance on CUDA-supported hardware.

### Software Engineering & Architecture

- [GPU Architecture Education](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture-education/gpu-architecture-education.md) — Teaches GPU architecture and how processors handle memory and threads through hands-on code experimentation.

### Operating Systems & Systems Programming

- [Python-C Interfaces](https://awesome-repositories.com/f/operating-systems-systems-programming/systems-programming/c-interoperability-layers/python-c-interfaces.md) — Interfaces a high-level Python scripting environment with low-level C-style CUDA kernel code.
