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 条
  • [21] POLAR-88 - A MODERN GENERAL-PURPOSE PROGRAMMING SYSTEM
    ALEKSEEV, GI
    KREKKER, GM
    LELCHUK, TI
    MARCHUK, AG
    MYLNIKOV, SP
    PROGRAMMING AND COMPUTER SOFTWARE, 1991, 17 (01) : 57 - 58
  • [22] GENERAL-PURPOSE PROGRAMMING SYSTEM FOR OPTIMUM STRUCTURAL DESIGN.
    Oda, Juhachi
    Yamazaki, Kouetsu
    Sakamoto, Jirou
    Abe, Junpei
    Matsumoto, Masahide
    Nippon Kikai Gakkai Ronbunshu, A Hen/Transactions of the Japan Society of Mechanical Engineers, Part A, 1988, 54 (500): : 847 - 852
  • [23] SARL: a general-purpose agent-oriented programming language
    Rodriguez, Sebastian
    Gaud, Nicolas
    Galland, Stephane
    2014 IEEE/WIC/ACM INTERNATIONAL JOINT CONFERENCES ON WEB INTELLIGENCE (WI) AND INTELLIGENT AGENT TECHNOLOGIES (IAT), VOL 3, 2014, : 103 - 110
  • [24] A portable general-purpose application programming interface for CIF 2.0
    Bollinger, John C.
    JOURNAL OF APPLIED CRYSTALLOGRAPHY, 2016, 49 : 285 - 291
  • [25] Gen: A General-Purpose Probabilistic Programming System with Programmable Inference
    Cusumano-Towner, Marco F.
    Saad, Feras A.
    Lew, Alexander K.
    Mansinghka, Vikash K.
    PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 221 - 236
  • [26] Streamware: Programming general-purpose multicore processors using streams
    Gummaraju, Jayanth
    Coburn, Joel
    Turner, Yoshio
    Rosenblum, Mendel
    ACM SIGPLAN NOTICES, 2008, 43 (03) : 297 - 307
  • [27] Taskflow: A General-Purpose Parallel and Heterogeneous Task Programming System
    Huang, Tsung-Wei
    Lin, Dian-Lun
    Lin, Yibo
    Lin, Chun-Xun
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2022, 41 (05) : 1448 - 1452
  • [28] DIALOG SOFTWARE PROGRAMMING FOR GENERAL-PURPOSE SPECTRAL COMPUTATION COMPLEXES
    MISHCHENKO, ED
    TRILESNIK, II
    TUMARKIN, YN
    SOVIET JOURNAL OF OPTICAL TECHNOLOGY, 1982, 49 (10): : 654 - 656
  • [29] Griffon - GPU Programming APIs for Scientific and General Purpose Computing
    Makpaisit, Pisit
    Marurngsith, Worawan
    INTERNATIONAL SYMPOSIUM ON DISTRIBUTED COMPUTING AND ARTIFICIAL INTELLIGENCE, 2011, 91 : 175 - 182
  • [30] General-purpose definition
    Emerson, DM
    DATAMATION, 1995, 41 (23): : 14 - 14