《OpenACC编程标准-中文版-GPU并行编程》.pdfVIP

  • 194
  • 0
  • 约3.94万字
  • 约 36页
  • 2015-11-01 发布于河南
  • 举报

《OpenACC编程标准-中文版-GPU并行编程》.pdf

《OpenACC编程标准-中文版-GPU并行编程》.pdf

OpenACC 应用编程接口 版本 1.0 ,2011 年 11 月发布 小小河 译 法律条款 1. 对本文档的任何使用都被视为完全理解并接受本文档所列举的所有法律条款。 2. 本文档的所有权利归作者所有,作者保留所有权利。 3. 未经作者书面同意,禁止任何形式的商业使用。商业使用形式包括但不限于出版、复制、 传播、展示、引用、编辑。 4. 本文档允许以学术研究、技术交流为目的使用。复制、传播过程中不得对本文档作任何 增减编辑,引用时需注明出处。 5. 实施任何侵权形为的法人或自然人都必须向作者支付赔偿金,赔偿金计算方法为: 赔偿金 = 涉案人次×涉案时长(天)×涉案文档份数×受众人次×100 元人民币, 涉案人次、涉案时长、涉案文档份数、受众人次小于 1 时,按 1 计算。 6. 举报侵权行为、提供有价值证据的自然人或法人均有权向作者索取案件实际赔偿金的 50%。 7. 涉及本文档的法律纠纷由作者所在地法院裁决。 8. 本文档所列举法律条款的最终解释权归作者所有。 2 译者序4 第 1 章 引言4 1.1 范围 5 1.2 执行模型 5 1.3 存储模型 6 1.4 本文档组织结构 6 1.5 参考文献 6 第 2 章 导语8 2.1 导语格式 8 2.2 条件编译 9 2.3 内部控制变量 9 2.4 加速器计算构件 9 2.5 data 构件 14 2.6 host_data 构件 15 2.7 数据子语 15 2.8 loop 构件 18 2.9 Cache 导语21 2.10 组合导语 21 2.11 declare 导语22 2.12 可执行导语 23 第 3 章 运行时库例程26 3.1 运行时库的定义26 3.2 运行时库例程27 第 4 章 环境变量34 4.1 ACC_DEVICE_TYPE 34 4.2 ACC_DEVICE_NUM 34 第 5 章 词汇表35 3 译者序 2007 年以来,以 nVidia GPU 为代表的加速器并行计算风起云涌,带有加速器的超级计 算机在 TOP500 中的份额逐年增加,支持加速器的主流应用软件也呈爆炸式增长,研究加速 器计算的技术人员数以百万计,世界范围内的大学、研究机构竞相开设相关课程。 目前有三家厂商提供加速器产品:nVidia GPU、AMD GPU、Intel 至强 Phi 协处理器。 三种加速器使用的编程语言分别为 CUDA C/CUDA Fortran、OpenCL 和 MIC 导语。加速器 计算有四个技术困难:一是 CUDA/OpenCL 等低级语言编程难度大,且需要深入了解加速器 的硬件结构。而大部分的用户不是专业编程人员,学习一门新的编程技术将耗费大量时间、 人力、财力。二是加速器的计算模型与 CPU 差别很大,移植旧程序需要几乎完全重写。大 量的旧程序在性能优化上已经千锤百炼,稳定性上也久经考验,完全重写是不可完成的任务。 三是低级编程语言开发的程序与硬件结构密切相关,硬件升级时必须升级软件,否则将损失 性能。而硬件每隔两三年就升级一次,频繁的软件升级将给用户带来巨大负担。四是投资方 向难以选择。三种加速器均有自己独特的编程语言,且互不兼容。用户在投资建设硬件平台、 选择软件开发语言时就会陷入困境,不知三种设备中哪个会在将来胜出。如果所选加速器将 来落败,将会带来巨大损失;而犹豫不决又将错过技术变革的历史机遇。 OpenACC 可以克服这四个困难。OpenACC 应用编程接口的机制是,编译器根据作者的 意图自动产生低级语言代码。程序员只需要在原程序中添加少量导语,无须学习新的编程语 言和加速器硬件知识,可以迅速掌握。只在原始程序上添加少量导语,不破坏原代码,开发 速度快,既可并行执行又可恢复串行执行。在硬件更新时,重新编译一次代码即可,不必手 工修改代码。OpenACC 标准制定时就考虑了目前及将来的多种加速器产品,同一份代码可 以在多种加速器设备上

文档评论(0)

1亿VIP精品文档

相关文档