Accelerating GPU Algorithms in pure Python
summary
Claims that pure Python kernels JIT‑compile to the same code and match CUDA C++ performance, demonstrated with a copy, tiled matrix transpose, and batched softmax. Uses Numba CUDA JIT, device arrays, shared and register memory, warp/block indexing and reductions plus CUDA Cooperative / Cub‑style primitives (beta) to get memory coalescing and hide latency. Shows concrete launch parameters, a surprising warp size of 32, temporary storage and linked binaries, and working kernels that achieve speed‑of‑light throughput.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 2:05Why write GPU kernels in pure Python
- 5:41First GPU kernel with Numba CUDA
- 10:11Memory access patterns on GPUs
- 14:00GPU memory types and trade-offs
- 16:54CUDA Cooperative algorithms for efficiency
- 22:31Matrix transposition with CUDA primitives
- 29:19Implementing softmax with parallel reductions
- 33:55Key takeaways and closing remarks
related talks
48mGPU Programming in Pure Python
30mCUDA in Your Python: Effective Parallel Programming on the GPU
01h 02mExploit your GPU power with PyCUDA (and friends)
35mPython at the Speed of Light: A Complete Tour of the CUDA Ecosystem
02h 14mGPU development in Python 101
01h 02mExploit your GPU power with PyCUDA (and friends)
33mWhen GPUs Make Python Slower: Patterns and Pitfalls
35mCUDA in Python- A New Era for GPU Acceleration
