- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
pgi发售可支持openacc的pgiaccelerator编译器
OpenACC 编程标准介绍
小小河
2013年1月9 日
2007 年以来,以nVidia GPU 为代表的加速器并行计算风起云涌,带有加速器的超级计
算机在 TOP500 中的份额逐年增加,支持加速器的主流应用软件也呈爆炸式增长,研究加速
器计算的技术人员数以百万计,世界范围内的大学、研究机构竞相开设相关课程。
为什么使用 OpenACC
目前有三家厂商提供加速器产品:nVidia GPU、AMD GPU、Intel 至强 Phi 协处理器。
三种加速器使用的编程语言分别为 CUDA C/CUDA Fortran、OpenCL 和 MIC 导语。加速器
计算有四个技术困难:一是 CUDA/OpenCL 等低级语言编程难度大,且需要深入了解加速
器的硬件结构。而大部分的用户不是职业编程人员,学习一门新的编程技术将耗费大量时间、
人力、财力。二是加速器的计算模型与 CPU 差别很大,移植旧程序需要几乎完全重写。大
量的旧程序在性能优化上已经千锤百炼,稳定性上也久经考验,完全重写是不可完成的任务。
三是低级编程语言开发的程序与硬件结构密切相关,硬件升级时必须升级软件,否则将损失
性能。而硬件每隔两三年就升级一次,频繁的软件升级将给用户带来巨大负担。四是投资方
向难以选择。三种加速器均有自己独特的编程语言,且互不兼容。用户在投资建设硬件平台、
选择软件开发语言时就会陷入困境,不知三种设备中哪个会在将来胜出。如果所选加速器将
来落败,将会带来巨大损失;而犹豫不决又将错过技术变革的历史机遇。
为了克服这些困难,PGI、Cray、CAPS 和 nVidia 四家公司联合创立 OpenACC 应用编
程接口标准,并于 2011 年 11 月的 SC11 大会上发布 1.0 版。OpenACC 1.0 标准大部分内容
来自 PGI Accelerator 编程模型 ,并借用了CUDA C 的一些术语,标准文档行文上与OpenMP
相似。
OpenACC 可以克服这四个困难。OpenACC 应用编程接口的机制是,编译器根据作者的
意图自动产生低级语言代码。程序员只需要在原程序中添加少量导语,无须学习新的编程语
言和加速器硬件知识,可以迅速掌握。只在原始程序上添加少量导语,不破坏原代码,开发
速度快,既可并行执行又可恢复串行执行。在硬件更新时,重新编译一次代码即可,不必手
工修改代码。OpenACC 标准制定时就考虑了目前及将来的多种加速器产品,同一份代码可
以在多种加速器设备上编译、运行,零代价切换硬件平台。
OpenACC 设计目标
不破坏原始代码,保证修改的可逆性;
开发工作量小;
将计算密集的代码段卸载到加速器上并行计算;
在主机与加速器间提供多种形式的数据传递;
支持多种加速器设备;
两种情形下,不能破坏原始代码。移植旧程序时,旧程序的性能和可靠性已经被时间证
明,修改程序原始代码将带来安全隐患。有些程序不但需要在加速器上运行,还需要在没有
加速器的服务器上运行。OpenACC 借鉴 OpenMP 的导语(directive )模式,在原始代码上
添加一些导语,告诉编译器将哪些代码段卸载到加速器上执行、如何在主机与加速器间移动
数据。如果编译器不支持 OpenACC 标准或支持选项没有打开,编译器将忽略所有的
OpenACC 导语,编译出的程序只在 CPU 上运行。因此,用 OpenACC 移植程序不必对原始
代码作任何修改。
当前的绝大多数算法都是以串行方式描述,程序设计结构也是串行的 ,使用
CUDA/OpenCL 等低级语言移植旧程序或编写新程序时,需要重新设计算法,将串行算法转
换为并行算法,这就要求程序员的对算法有深入了解,这对职业编程人员是一个挑战,需要
花费大量时间学习本专业以外的算法 ;使用低级语言需要了解加速硬件结构,程序优化更需
要对线程调度机制有深刻理解,这对非计算机专业的广大用户非常困难,学习成本高昴。而
OpenACC 只要求用户指明哪些代码需要放在加速器上并行计算,生成低级语言代码、根据
设备优化代码等工作完全交由编译器来完成。导语代码非常简洁,工作量小,开发速度快、
周期短。
程序计算密集部分往往是求解线性方程组、求解特征值、最小二乘、矩阵向量乘、矩阵
矩阵乘等数值代数运算 ,它们通常
您可能关注的文档
- 2013年优秀大学生夏令营生活-东华大学理学院.doc
- 2014版国资委财务监管报表xbrl扩展分类标准.doc
- 2014年机电类专业大学生德国暑期研修项目.doc
- 2014外研社杯全国英语写作大赛常见问题汇总.pdf
- 2015年广西高校思想政治教育理论与实践研究课题立项申报书.doc
- 2016重庆电力科学技术奖拟授奖项目公告-重庆电机工程学会.pdf
- 2017年全国企业竞争模拟大赛---你问我答-大连交通大学竞赛管理系统.pdf
- 2017业绩发布会-宝龙地产.pdf
- 180330-海外监管-业务发展最新情况-中国交建.pdf
- ②复辟帝制违背了历史发展潮流.ppt
- 2025年娄底技师学院招聘工作人员(2人)笔试备考试题及答案详解(有一套).docx
- 2025年太仆寺旗事业单位引进急需紧缺人才的(4人)模拟试卷及答案详解(典优).docx
- 2025年天津医科大学朱宪彝纪念医院第四批招聘方案(15人)模拟试卷附答案详解(综合题).docx
- 2025年大庆市肇州县乡镇卫生院招聘医学毕业生(8人)模拟试卷附答案详解(考试直接用).docx
- 2025年新化县住房保障服务中心选调工作人员(3人)笔试备考试题及答案详解(最新).docx
- 2025年广西右江民族医学院(第一批)招聘教职人员控制数工作人员笔试备考试题及参考答案详解一套.docx
- 2025年度信宜市民政局所属事业单位(信宜市社会福利指导中心)选模拟试卷含答案详解(综合卷).docx
- 2025年平凉市静宁县城镇公益性岗位人员招聘(78人)笔试备考试题含答案详解(考试直接用).docx
- 2025年大庆市萨尔图区招聘幼儿教师(30人)笔试备考试题含答案详解(完整版).docx
- 2025年宜宾市高县事业单位招聘考试(52名)模拟试卷及答案详解(基础+提升).docx
最近下载
- 2025年一级建造师《建设工程经济》三色笔记.pdf VIP
- 2024-2030年半导体气体检测行业市场现状供需分析及投资评估规划分析研究报告.docx
- 幼儿教师口语课程思政优秀案例.pdf VIP
- 欧姆龙omron安全光栅.pdf VIP
- 2025年云南省职教高考文化课程《数学》考试说明(暂定稿).docx VIP
- 美国插头插座安规标准尺寸要求及治具图纸.pdf VIP
- 不锈钢栏杆接地工艺标准(图文+图集做法).pdf VIP
- 《新能源汽车概论》学生手册 任务2-1 替代燃料汽车技术与结构原理 学生手册.docx VIP
- 随钻跟管桩技术规程培训.pptx
- 未成年人保护预防未成年人犯罪知识讲座主题班会PPT课件.pptx VIP
文档评论(0)