The rapid development in computing technology has paved the way for directive-based programming models towards a principal role in maintaining software portability of performance-critical applications. Efforts on such models involve a least engineering cost for enabling computational acceleration on multiple architectures while programmers are only required to add meta information upon sequential code. Optimizations for obtaining the best possible efficiency, however, are often challenging. The insertions of directives by the programmer can lead to side-effects that limit the available compiler optimization possible, which could result in performance degradation. This is exacerbated when targeting multi-GPU systems, as pragmas do not automatically adapt to such systems, and require expensive and time consuming code adjustment by programmers. This paper introduces JACC, an OpenACC runtime framework which enables the dynamic extension of OpenACC programs by serving as a transparent layer between the program and the compiler. We add a versatile code-translation method for multi-device utilization by which manually-optimized applications can be distributed automatically while keeping original code structure and parallelism. We show in some cases nearly linear scaling on the part of kernel execution with the NVIDIA V100 GPUs. While adaptively using multi-GPUs, the resulting performance improvements amortize the latency of GPU-to-GPU communications.


翻译:计算机技术的迅速发展为基于指令的编程模式铺平了道路,从而在维持软件的可操作性方面起到主要作用,使基于性能关键应用程序的可操作性得以保持软件的可操作性。关于这类模型的努力涉及一个最小的工程成本,使多结构的计算加速,而程序员只需在顺序代码中添加元信息即可。不过,实现尽可能最佳效率的优化往往具有挑战性。程序员插入指令可能会产生副作用,从而限制现有编程优化的可能,从而导致性能退化。当针对多GPU系统时,这种情况就更加严重了。因为软体不自动适应这些系统,需要程序员花费昂贵和耗时的代码调整。本文介绍了JACC,即开放ACC运行时间框架,它通过作为程序与编程之间的透明层,使开放ACC方案能够动态扩展。我们为多功能利用程序程序添加了一种通用的编码翻译方法,可以自动分配手动优化应用程序,同时保持原有的代码结构和平行性。我们在一些案例中,我们展示了与NVIA VPI的多功能的升级的改进,从而使GPI的改进了G-PI-PI-PI-PI-S的改进。我们的改进工作。

0
下载
关闭预览

相关内容

专知会员服务
25+阅读 · 2021年4月2日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
78+阅读 · 2020年7月26日
专知会员服务
60+阅读 · 2020年3月19日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
152+阅读 · 2019年10月12日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
移动端机器学习资源合集
专知
8+阅读 · 2019年4月21日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】基于TVM工具链的深度学习编译器 NNVM compiler发布
机器学习研究会
5+阅读 · 2017年10月7日
最佳实践:深度学习用于自然语言处理(三)
待字闺中
3+阅读 · 2017年8月20日
给DNN处理器跑个分 - 指标篇
StarryHeavensAbove
5+阅读 · 2017年7月9日
Arxiv
3+阅读 · 2018年3月13日
VIP会员
相关资讯
移动端机器学习资源合集
专知
8+阅读 · 2019年4月21日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
9+阅读 · 2018年12月28日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
计算机视觉近一年进展综述
机器学习研究会
9+阅读 · 2017年11月25日
【推荐】YOLO实时目标检测(6fps)
机器学习研究会
20+阅读 · 2017年11月5日
【推荐】基于TVM工具链的深度学习编译器 NNVM compiler发布
机器学习研究会
5+阅读 · 2017年10月7日
最佳实践:深度学习用于自然语言处理(三)
待字闺中
3+阅读 · 2017年8月20日
给DNN处理器跑个分 - 指标篇
StarryHeavensAbove
5+阅读 · 2017年7月9日
Top
微信扫码咨询专知VIP会员