关键词:
新一代申威处理器
张量基础数学运算
初等函数
混合精度
摘要:
超级计算机作为大国重器的典型代表,在气象预测、智能教育、航空航天、生物科技等领域发挥着越来越重要的作用。张量基础数学运算用以对多维张量数据逐点地进行基本算术运算和初等函数运算,是高性能应用程序的重要组成部分,对应用程序的性能有广泛而重要的影响。然而,由于新一代申威处理器独特的异构体系结构和软件环境,高性能应用程序中的张量基础数学运算很难充分利用计算资源,达到较好的计算性能。针对新一代申威处理器的异构体系结构特点,以及张量基础数学运算的计算特性,开展面向标量的初等函数优化和面向张量的并行优化是提升性能的有效方法。此外,不同应用领域的应用程序对计算结果的精度要求不尽相同,较高的计算精度通常需要以牺牲计算性能为代价,为了提高程序性能,计算结果的精度只需要满足程序给定的精度需求即可。因此,混合精度优化也是提升性能的有效方法。然而,由于程序计算过程复杂、混合精度优化方案的搜索空间庞大,在程序计算结果满足给定精度需求的前提下,实现程序的最大计算效率是困难的。本文提出了一种基于新一代申威处理器的张量基础数学运算优化方法。该方法充分考虑新一代申威处理器的多级并行架构特点和访存特性,实现张量基础数学运算在申威处理器上的高效并行计算。充分考虑张量基础数学运算的计算特性,实现适用于新一代申威处理器的向量初等函数。在满足张量基础运算精度要求的前提下,降低算术运算和初等函数的计算精度,节省张量基础数学运算的运行时间和内存开销。具体来说,本文的主要贡献总结如下:(1)基于新一代申威处理器的多级并行优化方法:针对新一代申威处理器的异构体系结构特点,设计了多级并行优化方法,以充分利用处理器各核心的计算资源。首先,基于新一代申威处理器的编程模型,设计了支持进程级并行、线程级并行的主从核协同并行优化方法。其次,为了实现高效的数据访存,设计了基于DMA的数据传输和访存通信时间隐藏的访存方法。最终实现张量基础数学运算在新一代申威处理器上的高效运行。(2)初等函数优化方法:针对张量基础数学运算的计算特性和新一代神威处理器的从核结构特点,设计了基于新一代申威处理器的初等函数优化方法。基于新一代申威处理器的SIMD扩展部件和可变精度初等函数生成工具TGen,实现了可以支持多种精度版本的向量初等函数。基于新一代申威处理器的从核LDM空间,设计了初等函数的查找表预加载方法,提高查表访存效率。最终实现适用于张量基础数学运算和新一代申威处理器的高性能向量初等函数。(3)混合精度优化方法:基于静态精度调优工具Daisy,设计了一种动静结合的精度调优方法。基于静态精度调优工具Daisy实现静态精度调优,基于全局误差分配方法实现程序中浮点变量和初等函数的计算精度的动态调整,最后从多个可行的动态调整方案中筛选出最优的实现方案,实现浮点变量和初等函数的混合精度调优。本文在CORPIN项目、Rosa项目和深度学习模型中的典型算子上验证了优化方法的效果。实验结果表明,与新一代申威处理器基础数学函数库中的初等函数相比,优化后的初等函数可以实现平均约4.53倍的加速效果。与单主核运行版本相比,优化后的张量基础数学运算可以在单核组中实现平均约112.19倍的加速效果,在两个核组中实现平均约138.10倍的加速效果,并行效率为128.83%。