Contract-Based General-Purpose GPU Programming

被引:0
|
作者
Kolesnichenko, Alexey [1 ]
Poskitt, Christopher M. [1 ]
Nanz, Sebastian [1 ]
Meyer, Bertrand [1 ,2 ,3 ]
机构
[1] ETH Ziirich, Dept Comp Sci, Zurich, Switzerland
[2] Politecn Milan, Milan, Italy
[3] Innopolis Univ, Kazan, Russia
基金
欧洲研究理事会;
关键词
GPGPU; parallel computing; runtime code generation; programming; object-orientation; design-by-contract; program correctness; VERIFICATION; LANGUAGE;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper suggests a programming library, SafeGPU, that aims at striking a balance between programmer productivity and performance, by making GPU data-parallel operations accessible from within a classical object-oriented programming language. The solution is integrated with the design-by-contract approach, which increases confidence in functional program correctness by embedding executable program specifications into the program text. We show that our library leads to modular and maintainable code that is accessible to GPGPU non-experts, while providing performance that is comparable with hand-written CUDA code. Furthermore, runtime contract checking turns out to be feasible, as the contracts can be executed on the GPU.
引用
下载
收藏
页码:75 / 84
页数:10
相关论文
共 50 条
  • [1] Contract-based general-purpose GPU programming
    Kolesnichenko, Alexey
    Poskitt, Christopher M.
    Nanz, Sebastian
    Meyer, Bertrand
    ACM SIGPLAN Notices, 2015, 51 (03): : 75 - 84
  • [2] Contract-Based General-Purpose GPU Programming
    Kolesnichenko, Alexey
    Poskitt, Christopher M.
    Nanz, Sebastian
    Meyer, Bertrand
    ACM SIGPLAN NOTICES, 2016, 51 (03) : 75 - 84
  • [3] CUDA by Example: An Introduction to General-Purpose GPU Programming
    Cheng, Jie
    SCALABLE COMPUTING-PRACTICE AND EXPERIENCE, 2010, 11 (04): : 401 - 401
  • [4] Gallatin: A General-Purpose GPU Memory Manager
    McCoy, Hunter
    Pandey, Prashant
    PROCEEDINGS OF THE 29TH ACM SIGPLAN ANNUAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING, PPOPP 2024, 2024, : 364 - 376
  • [5] SIFT Implementation and Optimization for General-Purpose GPU
    Heymann, S.
    Mueller, K.
    Smolic, A.
    Froelich, B.
    Wiegand, T.
    WSCG 2007, FULL PAPERS PROCEEDINGS I AND II, 2007, : 317 - +
  • [6] General-purpose computing on GPU Pixel processing
    Ockay, Milos
    2017 COMMUNICATION AND INFORMATION TECHNOLOGIES (KIT), 2017, : 115 - 118
  • [7] A performance model for general-purpose computation on GPU
    Institute of Computer Science and Technology, Peking University, Beijing 100871, China
    Jisuanji Fuzhu Sheji Yu Tuxingxue Xuebao, 2009, 9 (1219-1226):
  • [8] Stream programming on general-purpose processors
    Gummaraju, J
    Rosenblum, M
    MICRO-38: Proceedings of the 38th Annual IEEE/ACM International Symposiumn on Microarchitecture, 2005, : 343 - 354
  • [9] EMERALD - A GENERAL-PURPOSE PROGRAMMING LANGUAGE
    RAJ, RK
    TEMPERO, E
    LEVY, HM
    BLACK, AP
    HUTCHINSON, NC
    JUL, E
    SOFTWARE-PRACTICE & EXPERIENCE, 1991, 21 (01): : 91 - 118
  • [10] DECISION TABLES FOR GENERAL-PURPOSE SCIENTIFIC PROGRAMMING
    LEW, A
    SOFTWARE-PRACTICE & EXPERIENCE, 1983, 13 (02): : 181 - 188