许瑾晨 作品数:22 被引量:47 H指数:5 供职机构: 中国人民解放军信息工程大学 更多>> 发文基金: 国家高技术研究发展计划 国家自然科学基金 上海市科委重大科技攻关项目 更多>> 相关领域: 自动化与计算机技术 文化科学 更多>>
基于多类型计算重写的浮点表达式精度优化方法 2024年 表达式重写是精度优化领域的新兴方法,其核心思想是在不改变表达式精度类型的前提下,将其变换为语义上等价的表达式以尝试提升精度。然而,面对庞大的变换规则和变换空间,如何选取合适的变换策略成为了重写方法的问题所在。针对上述问题,提出了一个基于多类型计算重写的浮点表达式精度优化方法,支持包括函数计算、四则运算的表达式,并实现了表达式重写工具exprAuto。区别于其他精度优化工具侧重于对子表达式的替换,exprAuto更注重对表达式运算顺序的变换。exprAuto在对表达式化简和数学变换后,通过多项式变换获取不同的计算顺序,并尝试减少运算次数以提升精度,最终生成一个包含不同计算顺序的等价表达式集合,通过排序筛选和误差检测从中选出最终的精度优化结果。文中选取41个FPBench标准集中的表达式和18个常见数学函数的近似多项式作为测试用例,在经exprAuto优化后,所提方法相比原式最大误差降低了45.92%,平均误差降低了34.98%;针对其中的18个近似多项式,相比原式最大误差降低了58.35%,平均误差降低了43.73%。实验结果表明,exprAuto可以有效提升表达式尤其是多项式的精度。 郝江伟 杨鸿儒 夏媛媛 刘毅 许瑾晨 庞建民关键词:浮点计算 SIMD优化中的指令等价替换实现方法 针对因缺少指令或指令性能较低而降低SIMD扩展数学函数库性能的问题,提出了一种有效的基于SIMD扩展指令的指令等价替换方法.该方法在缺少指令方面,合理应用Karatsuba快速乘法思想实现了高64位乘法;在指令性能较低方... 郭绍忠 许瑾晨 陈世淼文献传递 面向RISC-V的基础数学库实现 2024年 RISC-V指令集架构(Instruction Set Architecture,ISA)作为一种新兴的精简ISA,因免费、开源、自由等特点而得到快速发展.由于国内外对RISC-V的研究主要集中在硬件开发,软件生态相较于成熟ISA还很薄弱,实现一套RISC-V指令集高性能基础数学库可以进一步丰富RISC-V软件生态.本文基于自动化移植技术实现申威数学库到RISC-V的移植,为RISC-V指令架构提供首个使用向量指令优化的基础数学库系统.本文提出向量寄存器自动分支查表法与路径标记插入法,重点解决不同架构间寄存器映射过程中的寄存器复用问题,实现寄存器正确高效映射,并依据不同指令等价转换策略自动化移植数学函数69个.测试结果表明,RISC-V基础数学库函数可实现正确计算,最大误差为1.90ULP,函数性能平均为157.03节拍. 李飞 郭绍忠 郭绍忠 侯明 宋广辉 许瑾晨关键词:汇编 向量 数学库 浮点数学函数异常处理方法 被引量:7 2015年 异常会造成程序错误,实现完全没有异常的浮点计算软件也很艰难,因此,实现有效的异常处理方法很重要.但现有的异常处理并不针对浮点运算,并且研究重点都集中在整数溢出错误上,而浮点类型运算降低了整数溢出存在的可能.针对上述现象,面向基于汇编实现的数学函数,提出了一种针对浮点运算的分段式异常处理方法.通过将异常类型映射为64位浮点数,以核心运算为中心,将异常处理过程分为3个阶段:输入参数检测(处理INV异常)、特定代码检测(处理DZE异常和INF异常)以及输出结果检测(处理FPF异常和DNO异常),并从数学运算的角度对该方法采用分段式处理的原因进行了证明.实验将该方法应用于Mlib浮点函数库,对库中600多个面向不同平台的浮点函数进行了测试.测试结果表明:该方法能够将出现浮点异常即中断的函数个数从90%降到0%.同时,实验结果验证了该方法的高效性. 许瑾晨 郭绍忠 黄永忠 王磊 周蓓关键词:浮点数 数学函数 异常处理 面向Stencil计算的自动混合精度优化 2023年 混合精度在深度学习和精度调整与优化方面取得了许多进展,广泛研究表明,面向Stencil计算的混合精度优化也是一个很有挑战性的方向.同时,多面体模型在自动并行化领域取得的一系列研究成果表明,该模型为循环嵌套提供很好的数学抽象,可以在其基础上进行一系列的循环变换.基于多面体编译技术设计并实现了一个面向Stencil计算的自动混合精度优化器,通过在中间表示层进行迭代空间划分、数据流分析和调度树转换,首次实现了源到源的面向Stencil计算的混合精度优化代码自动生成.实验表明,经过自动混合精度优化之后的代码,在减少精度冗余的基础上能够充分发挥其并行潜力,提升程序性能.以高精度计算为基准,在x86平台上最大加速比是1.76,几何平均加速比是1.15;在新一代国产申威平台上最大加速比是1.64,几何平均加速比是1.20. 宋广辉 郭绍忠 赵捷 陶小涵 李飞 李飞面向异构众核从核的数学函数库访存优化方法 被引量:6 2014年 数学库函数算法的特性致使函数存在大量的访存,而当前异构众核的从核结构采用共享主存的方式实现数据访问,从而严重影响了从核的访存速度,因此异构众核结构中数学库函数的性能无法满足高性能计算的要求。为了有效解决此问题,提出了一种基于访存指令的调度策略,亦即将访存延迟有效地隐藏于计算延迟中,以提高基于汇编实现的数学函数库的函数性能;结合动态调用方式,利用从核本地局部数据存储空间LDM(local data memory),提出了一种提高访存速度的ldm_call算法。两种优化技术在共享存储结构下具有普遍适用性,并能够有效减少函数访存开销,提高访存速度。实验表明,两种技术分别能够平均提高函数性能16.08%和37.32%。 许瑾晨 郭绍忠 黄永忠 王磊关键词:数学函数库 指令调度 基于敏感度的混合精度优化方法 2022年 现有高性能计算应用中浮点运算通常使用高精度浮点类型,但使用高精度会带来性能上的损失等额外开销,故可以采取降低程序中部分浮点变量的精度从而在满足精度需求的同时提升程序性能,但对于不同的浮点计算程序来说,用户在无策略的条件下较难确定哪些浮点变量能够降低精度。针对这一问题,提出一种基于误差敏感度的自动混合精度工具Miplex,相较于以往的混合精度工具,能够将找到有效混合精度方案的时间复杂度从O(N2)约束至O(N),从而快速找到满足误差需求的混合精度分配方案。实验结果表明,相较于现有的混合精度工具,最大获得了80.31%的性能提升;在x86和SW测试平台上相比较原始高精度程序也获得了最大为35.84%和33.12%的加速效果。 侯明 郭绍忠 王攀杰 许瑾晨关键词:浮点计算 异构多核平台下基础数学库寄存器分配方法 被引量:2 2014年 针对异构多核处理器协处理器数学函数中由于查表法和寄存器资源不足而导致的性能下降问题,提出一种基于热路径的寄存器分配方法,结合数学函数的相关路径特点和两类寄存器资源使用开销不一致的情况,对热路径和较少使用路径上的寄存器资源进行再分配过程,将较少使用路径上的高效寄存器资源与热路径上的耗时寄存器资源进行交换,最大限度消除热路径上的访存过程,以降低函数较少使用路径上的性能为代价从而提高函数热路径上的性能,从而达到提升函数整体性能的目的。实际数据表明,上述手段能够使协处理器典型数学函数的性能提升18%以上,从而有效发挥协处理器的计算性能。 郭正红 郭绍忠 许瑾晨 张兆天关键词:异构多核 查表 寄存器 数学库 基于连分式逼近的精度测试方法 被引量:1 2011年 针对现有精度测试方法适应性低、收敛速度慢的问题,提出了一种基于连分式逼近的初等函数精度测试方法。通过对最后一位表示的单位(ULP)的误差的分析以及对几种计算函数真值方法的对比,给出了精度测试方法的主要算法实现,并从时间复杂度及收敛阶两个方面进行了理论分析及实验验证。结果表明,该方法在精度测试方面更有效,复杂度更低,收敛速度更快。 许瑾晨 郭绍忠 赵捷 王乾关键词:牛顿迭代 连分式 收敛阶 一种改进的超越函数通用算法 被引量:8 2012年 提出一种适用于高性能计算的基础数学库超越函数通用算法。基于转换、近似、重建等技术,对级数法和迭代法进行改进,运用函数收敛性最好的一段区间进行函数算法设计,通过减少运算次数来降低因多次运算导致的累积误差,保证函数算法的精度。利用查表法构造辅助表参与运算,减少算法开销。测试结果表明,与GNU数学库函数相比,基于该算法的数学库函数运行效率平均提升50.91%。 郭绍忠 许瑾晨 陈建勋关键词:超越函数 迭代法 查表法