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 条
  • [43] Work in Progress - Course Development of Programming for General-Purpose Multicore Processors
    Zhang, Wei
    2011 FRONTIERS IN EDUCATION CONFERENCE (FIE), 2011,
  • [44] Ultra-Fast Digital Tomosynthesis Reconstruction Using General-Purpose GPU Programming for Image-Guided Radiation Therapy
    Park, Justin C.
    Park, Sung Ho
    Kim, Jin Sung
    Han, Youngyih
    Cho, Min Kook
    Kim, Ho Kyung
    Liu, Zhaowei
    Jiang, Steve B.
    Song, Bongyong
    Song, William Y.
    TECHNOLOGY IN CANCER RESEARCH & TREATMENT, 2011, 10 (04) : 295 - 306
  • [45] A General-purpose Parallel and Heterogeneous Task Programming System for VLSI CAD
    Huang, Tsung-Wei
    2020 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED-DESIGN (ICCAD), 2020,
  • [46] Problem of choosing between logic programming and general-purpose automated reasoning
    Wos, Larry
    Journal of Automated Reasoning, 1990, 6 (01): : 77 - 78
  • [47] Idris, a general-purpose dependently typed programming language: Design and implementation
    Brady, Edwin
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2013, 23 (05) : 552 - 593
  • [48] Contract-Based Slicing
    da Cruz, Daniela
    Henriques, Pedro Rangel
    Pinto, Jorge Sousa
    LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION, AND VALIDATION, PT I, 2010, 6415 : 106 - 120
  • [49] Contract-based testing
    Aichernig, BK
    FORMAL METHODS AT THE CROSSROADS: FROM PANACEA TO FOUNDATIONAL SUPPORT, 2003, 2757 : 34 - 48
  • [50] Nyami: A Synthesizable GPU Architectural Model for General-Purpose and Graphics-Specific Workloads
    Bush, Jeff
    Dexter, Philip
    Miller, Timothy N.
    Carpenter, Aaron
    2015 IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS AND SOFTWARE (ISPASS), 2015, : 173 - 182