arrow
Return

Effective Extensible Programming: Unleashing Julia on GPUs

delete2019-04-01
delete111
delete
OA
AI
T
Tim Besard *
F
Foket, Christophe
B
Bjorn De Sutter
DOI:10.1109/TPDS.2018.2872064delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
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.
Keywords:
Graphics processors
very high-level languages
code generation
retargetable compilers
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

IEEE Transactions on Parallel and Distributed Systems cover
IEEE Transactions on Parallel and Distributed Systems
IF:
6
Papers:
5.2K
Citations:
1.1W

Organization

G
Ghent University
Scholars:
5.2W
Papers: 4.5W
Citations: 5.5W