GPU Scripting and Code Generation with PyCUDA
Andreas Kl\"ockner, Nicolas Pinto, Bryan Catanzaro, Yunsup, Lee, Paul Ivanov, Ahmed Fasih

TL;DR
PyCUDA bridges the gap between high-level scripting languages like Python and GPU programming, enabling easier development of high-performance parallel code by combining the strengths of both approaches.
Contribution
The paper introduces PyCUDA, a novel package that integrates Python scripting with GPU code generation, enhancing usability without sacrificing performance.
Findings
PyCUDA simplifies GPU programming for Python users.
PyCUDA achieves high performance comparable to traditional GPU programming.
The approach is applicable to PyOpenCL for OpenCL-based GPU programming.
Abstract
High-level scripting languages are in many ways polar opposites to GPUs. GPUs are highly parallel, subject to hardware subtleties, and designed for maximum throughput, and they offer a tremendous advance in the performance achievable for a significant number of computational problems. On the other hand, scripting languages such as Python favor ease of use over computational speed and do not generally emphasize parallelism. PyCUDA is a package that attempts to join the two together. This chapter argues that in doing so, a programming environment is created that is greater than just the sum of its two parts. We would like to note that nearly all of this chapter applies in unmodified form to PyOpenCL, a sister project of PyCUDA, whose goal it is to realize the same concepts as PyCUDA for OpenCL.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsScientific Computing and Data Management · Distributed and Parallel Computing Systems
