自动微分算法在GPU上的设计实现与性能分析-上海超级计算中心.PDFVIP

自动微分算法在GPU上的设计实现与性能分析-上海超级计算中心.PDF

  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文档。上传文档
查看更多
自动微分算法在GPU上的设计实现与性能分析-上海超级计算中心

高性能计算技术 25 自动微分算法在GPU上的设计实现与性能分析  黄雨虹 许威 同济大学数学系 上海 200092 hhhyyyhhh@  寇大治 徐磊 上海超级计算中心 上海 201203 dzkou@ 摘要: 自动微分方法在数学物理问题以及最优化问题的求解中有一定的优势,是精确求解目标函 数和相关依赖函数导数的方法。自动微分有正向模式以及逆向模式,在两种模式中都需要重复 计算相同内容以得到相应函数的一阶以及高阶导数。考虑到GPU在并行运算上的特点和优势, 本文设计实现了把自动微分方法移植到GPU上的算法,通过测试表明该算法能有效的加速自动 微分计算,最终的性能分析也体现了该算法在自动微分求解大型数值问题上有相当的优势。 关键词:自动微分,CUDA,一阶导数,GPU并行运算运算符重载 引言 计算程序微分的软件包都是基于CPU上的计算,其中 为了求解许多实际数学物理问题以及最优化问 ADOL-C在最新的版本中有一部分功能是基于GPU上 题,我们往往需要得到该问题的目标函数或相关依 的CUDA并行架构进行运算的。但是这个方法只能运 赖函数的一阶或者高阶导数。传统计算这些导数的 用于自动微分正向模式上,当目标程序函数自变量 方法有有限差分法及符号微分法等,这些方法往往 维数较大而因变量维数较小时,正向方法计算效率 存在计算精度差以及计算代价大等问题。 很低。 自动微分又称作演算式微分,是在函数任意 因此,在本文中,我们使用了运算符重载以及 点上可以求其微分的一种方法。与其他微分方法相 C++中的template技术,记录函数所有信息,实现将 比,在计算机程序实现上,其具有计算代价小并且 程序运算过程存储到一个记录数组中,在GPU上遍历 非常适用于大规模计算领域的优势。自动微分利用 该记录数组,并行运算得到目标程序函数微分的方 以下事实:一个数据相对独立的程序对象,无论其 法。数值实验结果表明,并行计算函数微分的方法 计算过程多么复杂,总可以将其分解成为多个有限 将原先的算法效率提高了很多。GPU方法十分适用于 的基本运算的复合。这里的基本运算指的是加减乘 大型计算中。 除以及各类简单函数如三角函数,指数函数和幂函 数等等。 1. 自动微分介绍 自动微分基于链式求导法则,可以运用在任 自动微分的基础是链式求导法则。假设有函数 意长度的程序中,在计算机上得到它的微分,并且 ,则根据链式求导法则,可以得到 有较高精度。自动微分计算方法有两种模式:正向 模式(切线性模式)和逆向模式(伴随模式)。两种模 式在相同的函数中有不同的运行效率。目前,自动 以此原则可以将任何复杂函数微分分解为简单 微分在计算机上的实现通过两种途径,一种是程式 函数的微分的复合形式。其中,简单函数的微分形 码转换,另一种是运算符重载。利用程式码转换方 式都是已知的,则可利用已知的微分形式逐步得到 法的软件包有ADIC(C/C++),ADIFOR(Fortran77)等。 函数的最终微分数值结果。自动微分计算方法有两 利用运算符重载方法的软件包有ADOL-C(C/C++), 种模式:正向模式(切线性模式)和逆向模式(伴随模 ADC Version。目前所利用自动微分实现 4.0(C/C++) 式)。 26 《高性能计算发展与应用》 2014年第四期 总第四十九期 假设有函数 以及方向导数 由之前的分

文档评论(0)

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

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

1亿VIP精品文档

相关文档