Advanced search
1 file | 2.85 MB Add to list

Effective extensible programming : unleashing Julia on GPUs

Tim Besard (UGent) , Christophe Foket (UGent) and Bjorn De Sutter (UGent)
Author
Organization
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 for GPU programming. This greatly improves programmer productivity, while maintaining application performance similar to that of the official NVIDIA CUDA toolkit.
Keywords
Signal Processing, Hardware and Architecture, Computational Theory and Mathematics, LANGUAGE, Graphics processors, very high-level languages, code generation, retargetable compilers

Downloads

  • (...).pdf
    • full text (Published version)
    • |
    • UGent only
    • |
    • PDF
    • |
    • 2.85 MB

Citation

Please use this url to cite or link to this publication:

MLA
Besard, Tim, et al. “Effective Extensible Programming : Unleashing Julia on GPUs.” IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 30, no. 4, 2019, pp. 827–41.
APA
Besard, T., Foket, C., & De Sutter, B. (2019). Effective extensible programming : unleashing Julia on GPUs. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 30(4), 827–841.
Chicago author-date
Besard, Tim, Christophe Foket, and Bjorn De Sutter. 2019. “Effective Extensible Programming : Unleashing Julia on GPUs.” IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS 30 (4): 827–41.
Chicago author-date (all authors)
Besard, Tim, Christophe Foket, and Bjorn De Sutter. 2019. “Effective Extensible Programming : Unleashing Julia on GPUs.” IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS 30 (4): 827–841.
Vancouver
1.
Besard T, Foket C, De Sutter B. Effective extensible programming : unleashing Julia on GPUs. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS. 2019;30(4):827–41.
IEEE
[1]
T. Besard, C. Foket, and B. De Sutter, “Effective extensible programming : unleashing Julia on GPUs,” IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, vol. 30, no. 4, pp. 827–841, 2019.
@article{8607745,
  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 for GPU programming. This greatly improves programmer productivity, while maintaining application performance similar to that of the official NVIDIA CUDA toolkit.},
  author       = {Besard, Tim and Foket, Christophe and De Sutter, Bjorn},
  issn         = {1045-9219},
  journal      = {IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS},
  keywords     = {Signal Processing,Hardware and Architecture,Computational Theory and Mathematics,LANGUAGE,Graphics processors,very high-level languages,code generation,retargetable compilers},
  language     = {eng},
  number       = {4},
  pages        = {827--841},
  title        = {Effective extensible programming : unleashing Julia on GPUs},
  url          = {http://dx.doi.org/10.1109/tpds.2018.2872064},
  volume       = {30},
  year         = {2019},
}

Altmetric
View in Altmetric
Web of Science
Times cited: