Effective Extensible Programming: Unleashing Julia on GPUs
Tim Besard, Christophe Foket, Bjorn De Sutter

TL;DR
This paper presents a compiler infrastructure that enables high-level, efficient, and extensible GPU programming in Julia, making GPU acceleration more accessible and productive for developers.
Contribution
It introduces a novel compiler infrastructure that simplifies adding support for new hardware to high-level languages, demonstrated by integrating NVIDIA GPUs into Julia.
Findings
Supports GPU programming in Julia with performance comparable to CUDA
Reduces development and maintenance effort for GPU support
Enables dynamic and high-level GPU programming approaches
Abstract
GPUs and other accelerators are popular devices for accelerating compute-intensive, parallelizable applications. However, programming these devices is a difficult task. Writing efficient device code is challenging, and is typically done in a low-level programming language. High-level languages are rarely supported, or do not integrate with the rest of the high-level language ecosystem. To overcome this, we propose compiler infrastructure to efficiently add support for new hardware or environments to an existing programming language. We evaluate our approach by adding support for NVIDIA GPUs to the Julia programming language. By integrating with the existing compiler, we significantly lower the cost to implement and maintain the new compiler, and facilitate reuse of existing application code. Moreover, use of the high-level Julia programming language enables new and dynamic approaches…
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.
