首页> 外文OA文献 >Accelerating Haskell Array Codes with Algorithmic Skeletons on GPUs
【2h】

Accelerating Haskell Array Codes with Algorithmic Skeletons on GPUs

机译:在GPU上使用算法骨架加速Haskell阵列代码

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

GPUs have been gaining popularity as general purpose parallel processors that deliver a performance to cost ratio superior to that of CPUs. However, programming on GPUs has remained a specialised area, as it often requires significant knowledge about the GPU architecture and platform-specific parallelisation of the algorithms that are implemented. Furthermore, the dominant programming models on GPUs limit functional decomposition of programs, as they require programmers to write separate functions to run on GPUs.I present and quantitatively evaluate a GPU programming system that provides a high-level abstraction to facilitate the use of GPUs for general purpose array processing. The presented programming system liberates programmers of low-level details and enables functional decomposition of programs, whilst providing the facilities to sufficiently exploit the parallel processing capability of GPUs. Fundamentally, the presented programming system allows programmers to focus on what to program on GPUs instead of how to program GPUs.The approach is based on algorithmic skeletons mapped to higher-order functions, which are commonly available in functional programming languages. The presented programming system (1) encapsulates the low-level control of GPUs and the GPU-specific parallelisation of the higher-order functions in algorithmic skeletons, (2) employs an embedded domain specific language as the interface that treats the parallel operations as expressions with parallel semantics, allowing functional decomposition of programs, and (3) manages the compilation of the embedded domain specific language into algorithmic skeleton instances and the execution of the algorithmic skeleton instances online. Programmers only need to write the operations to be executed on GPUs as expressions in the embedded domain specific language, and the presented programming system takes care of the rest.Although the concrete implementation presented in the thesis involves an embedded domain specific language in Haskell, Accelerate, and a specific GPU platform, CUDA, the approach in this thesis can be applied to other similar configurations with appropriate adjustments.
机译:GPU已作为通用并行处理器获得了普及,该并行处理器可提供优于CPU的性能价格比。但是,GPU编程仍然是一个专门领域,因为它通常需要有关GPU架构和所实现算法的特定于平台的并行化的大量知识。此外,GPU上占主导地位的编程模型限制了程序的功能分解,因为它们要求程序员编写单独的函数才能在GPU上运行。我提出并定量评估了GPU编程系统,该系统提供了高级抽象来促进将GPU用于通用数组处理。提出的编程系统解放了底层细节的程序员,并实现了程序的功能分解,同时提供了充分利用GPU并行处理能力的便利。从根本上讲,本文提出的编程系统允许程序员专注于在GPU上编程的内容,而不是如何对GPU进行编程。该方法基于映射到高阶函数的算法框架,这在函数式编程语言中很常见。提出的编程系统(1)在算法框架中封装了GPU的低层控制和高阶函数的GPU特定并行化,(2)采用嵌入式领域特定语言作为将并行操作视为表达式的接口(3)管理嵌入式领域特定语言到算法骨架实例的编译以及在线执行算法骨架实例。程序员只需要编写要在GPU上执行的操作,就可以使用嵌入式领域特定语言来表达,而所提供的编程系统将处理其余的工作。尽管本文中介绍的具体实现涉及Haskell,Accelerate中的一种嵌入式领域特定语言。 ,以及特定的GPU平台CUDA,本文中的方法可以通过适当的调整应用于其他类似的配置。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号