首页> 外文期刊>Computer Languages, Systems & Structures >SafeGPU: Contract- and library-based GPGPU for object-oriented languages
【24h】

SafeGPU: Contract- and library-based GPGPU for object-oriented languages

机译:SafeGPU:面向对象语言的基于合同和库的GPGPU

获取原文
获取原文并翻译 | 示例

摘要

Using GPUs as general-purpose processors has revolutionized parallel computing by providing, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to their widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper proposes a programming approach, SafeGPU, that aims to make GPU data-parallel operations accessible through high-level libraries for object-oriented languages, while maintaining the performance benefits of lower-level code. The approach provides data-parallel operations for collections that can be chained and combined to express compound computations, with data synchronization and device management all handled automatically. It also integrates the design-by-contract methodology, which increases confidence in functional program correctness by embedding executable specifications into the program text. We present a prototype of SafeGPU for Eiffel, and show that it leads to modular and concise code that is accessible for GPGPU non-experts, while still providing performance comparable with that of hand-written CUDA code. We also describe our first steps towards porting it to C#, highlighting some challenges, solutions, and insights for implementing the approach in different managed languages. Finally, we show that runtime contract-checking becomes feasible in SafeGPU, as the contracts can be executed on the GPU. (C) 2016 Elsevier Ltd. All rights reserved.
机译:使用GPU作为通用处理器,通过为大量且不断增长的算法集提供台式机上的大量数据并行化,彻底改变了并行计算。但是,对其广泛采用的一个障碍是对其进行编程的难度以及对实现良好性能所需的硬件的低级控制。本文提出了一种编程方法,SafeGPU,旨在使可通过面向对象语言的高级库访问GPU数据并行操作,同时保持低级代码的性能优势。该方法为可链接的集合提供了数据并行操作,这些集合可链接并组合起来以表示复合计算,而数据同步和设备管理则全部自动进行。它还集成了按合同设计的方法,该方法通过将可执行的规范嵌入程序文本中,从而提高了对功能程序正确性的信心。我们介绍了适用于Eiffel的SafeGPU原型,并显示了它导致GPGPU非专家可以访问的模块化简洁代码,同时仍提供与手写CUDA代码可比的性能。我们还描述了将其移植到C#的第一步,重点介绍了一些挑战,解决方案和以不同的托管语言实现该方法的见解。最后,我们证明了运行时合同检查在SafeGPU中变得可行,因为合同可以在GPU上执行。 (C)2016 Elsevier Ltd.保留所有权利。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号