Effective Extensible Programming: Unleashing Julia on GPUs

12/08/2017
by   Tim Besard, et al.
0

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 for GPU programming. This greatly improves programmer productivity, while maintaining application performance similar to that of the official NVIDIA CUDA toolkit.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/27/2020

OpenQL : A Portable Quantum Programming Framework for Quantum Accelerators

With the potential of quantum algorithms to solve intractable classical ...
research
06/06/2023

Potential of the Julia programming language for high energy physics computing

Research in high energy physics (HEP) requires huge amounts of computing...
research
02/13/2023

Revet: A Language and Compiler for Dataflow Threads

Spatial dataflow architectures such as reconfigurable dataflow accelerat...
research
08/14/2018

Bringing Together Dynamic Geometry Software and the Graphics Processing Unit

We equip dynamic geometry software (DGS) with a user-friendly method tha...
research
03/17/2020

Towards High Performance, Portability, and Productivity: Lightweight Augmented Neural Networks for Performance Prediction

Writing high-performance code requires significant expertise in the prog...
research
07/27/2021

Guided Optimization for Image Processing Pipelines

Writing high-performance image processing code is challenging and labor-...
research
04/13/2022

Modular and Didactic Compiler Design with XML Inter-Phases Communication

In Compiler Design courses, students learn how a program written in high...

Please sign up or login with your details

Forgot password? Click here to reset