首页> 外文会议>International Workshop on OpenMP >Early Experiences Porting Three Applications to OpenMP 4.5
【24h】

Early Experiences Porting Three Applications to OpenMP 4.5

机译:将三个应用程序移植到OpenMP 4.5的早期经验

获取原文

摘要

Many application developers need code that runs efficiently on multiple architectures, but cannot afford to maintain architecturally specific codes. With the addition of target directives to support offload accelerators, OpenMP now has the machinery to support performance portable code development. In this paper, we describe application ports of Kripke, Cardioid, and LULESH to OpenMP 4.5 and discuss our successes and failures. Challenges encountered include how OpenMP interacts with C++ including classes with virtual methods and lambda functions. Also, the lack of deep copy support in OpenMP increased code complexity. Finally, GPUs inability to handle virtual function calls required code restructuring. Despite these challenges we demonstrate OpenMP obtains performance within 10 % of hand written CUDA for memory bandwidth bound kernels in LULESH. In addition, we show with a minor change to the OpenMP standard that register usage for OpenMP code can be reduced by up to 10%.
机译:许多应用程序开发人员需要在多种体系结构上有效运行的代码,但无法负担维护体系结构特定的代码。通过添加目标指令以支持卸载加速器,OpenMP现在具有支持性能便携式代码开发的机制。在本文中,我们描述了Kripke,Cardioid和LULESH到OpenMP 4.5的应用程序端口,并讨论了我们的成功和失败。遇到的挑战包括OpenMP如何与C ++交互,包括具有虚拟方法和lambda函数的类。此外,OpenMP中缺乏深层复制支持,这增加了代码复杂性。最后,GPU无法处理虚拟函数调用要求对代码进行重组。尽管有这些挑战,但我们证明OpenMP在LULESH中的内存带宽绑定内核中可达到手写CUDA的10%之内的性能。此外,我们对OpenMP标准进行了微小的改动,表明可以将OpenMP代码的寄存器使用量减少多达10%。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号