ALPyNA: Acceleration of Loops in Python for Novel Architectures
summary
ALPyNA is an automatic loop-parallelization framework for CPython that staged dependence analysis (static skeletal graphs plus runtime type and bounds refinement) and auto-generates CUDA kernels for NVIDIA GPUs from nested Python loops parsed with the Python AST and analyzed over NumPy-like arrays. It caches ahead-of-time results at import and fills in specifics at invocation, then offloads kernels; benchmarks on four array-heavy kernels show up to 1000x speedups with crossover points set by iteration-domain size and dependence complexity. Current limits: straight-line loop bodies, recompilation on type changes, and fall back to the interpreter.
AI-written summary · about
chapters (10)
- 0:00Start
- 3:32Availability of Accelerators
- 4:42High(er) Performance Python
- 5:55Improving Python Performance JIT-ing code generation
- 10:00Internal Data Structures
- 10:48Key novelties
- 16:30Restrictions
- 17:21Related Work - library-level parallelism
- 19:41Conclusions ALPyNA parallelizes standard Python loops
- 24:08Benchmarking - results
related talks
16mPricing Python Parallelism: A Dynamic Language Cost Model for Heterogeneous Platforms
34mAccelerating GPU Algorithms in pure Python
27mAPL-Inspired Techniques for Advanced NumPy
30mCuPy: A NumPy-compatible Library for GPU
35mThe "NumPy" Approach
29mVectorize using linear algebra and NumPy to make your Python code fast
27mSpeed up Python with hardware accelerators
35mCUDA in Python- A New Era for GPU Acceleration
