分享一个重要的“高端概念”——高性能数学库
高性能数学库是支撑超算系统超级算力的共性基础软件。超算应用能否跑得好、跑得快,高效的数学库至关重要。
今天和大家分享高性能数学库的基本概念和原理
数学计算库是使能处理器在数值计算领域的基础软件库,是工程计算、科学计算、AI 计算的基石。大部分物理、工程问题都能转化成线性方程组求解问题而高效的数学计算库是发挥硬件算力的基石

高性能数学计算库的现状数学计算库主要包括线性代数库、信号处理、向量数学库、基本数学函数库 (Libm) 、PDE 各种Solver,其大致范围参见 “附件 1”。软件版本也多种多样,有专注于领域的数学计算软件,也有服务于某类处理器的数学计算软件,其他差异性还表现在以下几个方面。
服务于处理器的基础数学计算库版本。Intel的 MKL数学计算库,只支持 x86,源代码不开源,并优先支持 Intel 处理器,同时在 x86 生态,MKL 库的使用也最为广泛,原因主要是发展早,以及 intel 处理器在高性能计算领域的市场占有率极高有关。华为的KML 数学计算库支持华为鹏 ARM 处理器,不开源,按照“鹏应用使能套件 BoostKit 许可协议描述,仅面向签署该协议或者在鳃鹏硬件授权使用

高性能数学计算库的应用高性能数学计算库对 EDA、CAE、微电子工程等工程计算领域,发挥着重要的作用,支持并行计算和异构计算的数学计算库也是近年来的研究重点,如利用
CPU 的加速指令集进行算法加速GPU 并行算法加速大规模集群并行计算长期以来,国外为了控制我国高科技领域的发展,限制高性能的计算软件向中国用户提供。高性能数学计算库推动着科学研究的进步,也制约工程应用的效率。以下以几个典型的领域,介绍高性能数学计算库对应用的重要意义。(CFD 软件]线性代数库: 用于解方程组,如求解矩阵方程和求解特征值和特征向量。最优化库: 用于优化 CFD 模拟计算的效率和准确度。
数值积分库:用于对数学函数进行数值积分如有限差分方法。随机数生成库: 用于产生随机数这在许多 CFD 应用中是必要的。
偏微分方程(PDE) 求解库: 用于求解一些非线性 PDES,如Navier-Stokes 方程和热传递方程等。(CAE 软件]建模和仿真: 数学计算库能够提供各种模拟算法和数值方法,如有限元法、有限差分法等,用于建模和仿真机械、电气、力学、热力学等领域的物理现象。
优化设计:数学计算库提供各种优化算法,如遗传算法、模拟退火算法等,用于对 CAE 仿真模型进行设计和优化,以获得更好的性能和效率。数据分析:数学计算库提供各种数学函数和统计算法,用于分析和处理模拟数据,以获得有用的信息和洞见。
机器学习: 数学计算库中还提供了机器学习和数据挖掘的算法和工具,这些技术可以用于优化 CAE 仿真模型、识别模拟数据中的模式和异常,从而帮助工程师更好地理解和改进设计。
(微电子工程]计算光刻方法是一种通过计算机控制产生高分辨率图案的加工工艺,使用光刻光刻机将外源干涉光栅 (如二极管激光器)的输出通过透镜等光学元件照射到硅晶圆表面上,然后进行化学及物理反应生成微电子芯片的微电路。数学计算库发挥着重要的作用模型建立: 计算光刻涉及到光学、物理、化学等多个领域的知识,需要使用数学模型进行问题的数值求解。
数学计算库可以提供各种数值计算算法和快速计算技术,如有限差分法、有限元法等,以建立可靠的计算模型
计算模型。
仿真计算: 数学计算库可以处理大量的数据和复杂的计算任务,可以在短时间内对整个光刻过程进行仿真计算,从而预测和优化光刻过程的各个环节优化设计:计算光刻涉及到的问题非常复杂,需要通过优化设计来提高制造效率和芯片质量。数学计算库可以提供各种优化算法,如遗传算法、粒子群算法等,以提高光刻制造的效率和芯片质量。(EDA 领域]在电路仿真中 Sparse LU Factorize(稀疏 LU 分解) 占到仿真时间的 70%,小规模矩阵计算的优化可以提升计算效率
(AI 领域]以语音识别的 DNN 推理为例,推理过程调用 GEMM 占比 80% 以上。通过对 OpenBLAS的 GEMM 部分优化,发挥 SIMD、多核并发,计算性能提高 26% 以上。