用OpenACC指令将程序速度提升2倍课件.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Http:// [NVIDIA ] OpenACC 2 [NVIDIA ] OpenACC 2 [[NNVVIIDDIIAA编程教程]]用OOppeennAACCCC指令将程序速度提升22倍 在这个帖子里,我将继续我前面的话题[编程教程]OpenACC:DirectivesforGPUs, 我将提供 一个更为实在的例子.这个简单的C/Fortran 代码例子实现了2倍的速度提升,而仅仅填加了 几行OpenACC指令.在下一个帖子里,我将增加多一些指令,让速度提升到4倍. Parallel Parallel 关于代码您可以在这里浏览和下载所有例子中的代码 PPaarraalllleell ForallGitHubrepository. Step ForallGitHubrepository. Step FFoorraallllGGiittHHuubbrreeppoossiittoorryy.. 里面的目录里已经对每个SStteepp都有个 , Makefiles, , Makefiles, 子目录,,有这个步骤的原始代码和MMaakkeeffiilleess,,这样你可以看并且尝试 (step 1,step 2). OpenACC 1.0 (step 1,step 2). OpenACC 1.0 每一个步骤 ((sstteepp 11,,sstteepp 22)).. 这个例子是使用 OOppeennAACCCC 11..00 syntax, , PGI syntax, , PGI ssyynnttaaxx,, 因 此 你 需 要 安 装 编 译 器 ,, 我 使 用 的 是 PPGGII compilerversion12.2(sisiy: 12.3, compilerversion12.2(sisiy: 12.3, ccoommppiilleerrvveerrssiioonn1122..22((ssiissiiyy::目前已经升级到1122..33,,可以在本论坛 里下载)))) Jacobi迭代 让我们来看看一个较为有趣的例子。这仍然是一个简单的程序,但它给我们多一点空间探索 各种OpenACC指令和选项。Jacobi迭代法是标准的找到解决线性方程组的迭代法。在这个 帖子里,我将利用现有的,简单的两维Jacobi迭代 CPU串行程序,,使用OpenMP和OpenACC 优化。这个例子的计算内核如下所示。外层while 通过比较计算误差与指定的误差tol 范围 遍历循环,直到得到一个收敛的解决。由于基准的目的,我们已经设置了足够低的tol,来 确保外层循环的最大迭代次数iter_max(1000),第一层嵌套循环,在第5行到11行对二维 网格内的没个元素应用二维Laplace算子,从14到18行将返回值copy给下一次迭代输入, 对于基准测试,我们使用一个4096X4096的网格元素 Http:// 这是同样的Fortran代码:

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档