【24h】

Accelerating Haskell Array Codes with Multicore GPUs

机译:使用多核GPU加速Haskell阵列代码

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

摘要

Current GPUs are massively parallel multicore processors opti mised for workloads with a large degree of SIMD parallelism. Good performance requires highly idiomatic programs, whose development is work intensive and requires expert knowledge. To raise the level of abstraction, we propose a domain-specific high-level language of array computations that captures appropriate idioms in the form of collective array operations. We embed this purely functional array language in Haskell with an online code generator for NVIDIA's CUDA GPGPU programming environment. We regard the embedded language's collective array operations as algorithmic skeletons; our code generator instantiates CUDA implementations of those skeletons to execute embedded array programs. This paper outlines our embedding in Haskell, details the design and implementation of the dynamic code generator, and reports on initial benchmark results. These results suggest that we can compete with moderately optimised native CUDA code, while enabling much simpler source programs.
机译:当前的GPU是大规模并行多核处理器,最适合具有高度SIMD并行性的工作负载。良好的表现需要高度惯用的程序,其开发需要大量的工作并且需要专业知识。为了提高抽象水平,我们提出了一种特定于领域的高级数组计算语言,该语言以集合数组操作的形式捕获适当的习惯用法。我们将这种纯功能性的阵列语言嵌入了Haskell中,并具有用于NVIDIA CUDA GPGPU编程环境的在线代码生成器。我们将嵌入式语言的集合数组操作视为算法框架。我们的代码生成器实例化这些框架的CUDA实现,以执行嵌入式数组程序。本文概述了我们在Haskell中的嵌入,详细介绍了动态代码生成器的设计和实现,并报告了初始基准测试结果。这些结果表明,我们可以与中等优化的本机CUDA代码竞争,同时启用更简单的源程序。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号