PerfMPL 国产高性能数学计算库的进展


作者:王军辉

前言

数学计算库是使能处理器在数值计算领域的基础软件库,是工程计算、科学计算、AI计算的基石。大部分物理、工程问题都能转化成线性方程组求解问题,而高效的数学计算库是发挥硬件算力的基石。

以BLAS(Basic Linear Algebra Subprograms,基本线性代数运算函数库的标准)为例。BLAS最早是由美国能源部(Department of Energy)于1979年发布的。在此之前,每个应用程序都需要手动实现线性代数算法,而这些算法又需要不同的数据结构和运算方式。

为了解决这个问题,美国能源部创建了BLAS标准,通过为常见操作(如向量乘法、矩阵乘法、向量加法等)定义通用接口,使得用户可以在不同的平台和计算机架构上重用相同的代码。最初的BLAS标准包含40个Fortran语言函数,用于执行常见的线性代数运算。

随着时间的推移,标准还进行了更新和扩充,增加了更多的函数和特性。BLAS已经成为一个广泛使用的标准,能够提供高效的线性代数运算,同时也是很多高性能库的基础,如OpenBLAS、MKL等。

随着计算机技术的发展和日益广泛的应用,数学计算库也不断演进,常用函数已经达到一万个,版本多种多样,也成为国际巨头掌控软件生态的关键手段。

Intel MKL数学计算库发展时间轴

高性能数学计算库的现状

数学计算库主要包括线性代数库、信号处理、向量数学库、基本数学函数库(Libm)、PDE各种Solver,其大致范围参见“附件1”。

软件版本也多种多样,有专注于领域的数学计算软件,也有服务于某类处理器的数学计算软件,其他差异性还表现在以下几个方面:

  1. 服务于处理器的基础数学计算库版本。Intel的MKL数学计算库,只支持x86,源代码不开源,并优先支持Intel处理器,同时在x86生态,MKL库的使用也最为广泛,原因主要是发展早,以及Intel处理器在高性能计算领域的市场占有率极高有关。华为的KML数学计算库支持华为鲲鹏ARM处理器,不开源,按照“鲲鹏应用使能套件BoostKit许可协议”描述,仅面向签署该协议或者在鲲鹏硬件授权使用该软件包。澎峰科技的PerfMPL已经支持了多种主流指令集,如RISC-V、x86、ARM、RISC-V等指令集,并面向领域提供定向优化版本,商业版本不开源。还有CUDA这类的GPU并行数学计算库(cuBLAS、cuFFT等),用于NVIDA的GPU卡编程,其他公司是否可以使用CUDA计算库,法律授权存疑。
  2. 服务于领域的数学计算软件。例如,世界知名的开源项目OpenBLAS提供BLAS运算能力;FFTW实现快速傅里叶变换(Fast Fourier Transform);LAPACK(Linear Algebra Package)提供高级线性代数算法,如矩阵分解、特征值和特征向量计算等;VSIPL主要用于向量、信号和图像处理库;PETSc则提供更丰富一些的功能,如非线性求解、最优化、离散事件模拟和信号处理等。实际上,可以称之为数学计算库或者计算中间件的软件还有许多。
  3. 其他需要关注的差异性:
    1. 各种数学计算库软件存在开源、闭源的差异性。处理器公司自主开发的数学计算库通常是闭源,即使是可以使用,也随时面临版权拥有方授权协议的变化和制约。某些开源库协议商用不友好(例如FFTW是GPL协议,使用会导致产品所有代码被感染,将面临被迫开源)。
    2. 计算性能和计算精度问题,这两点在高性能计算领域尤其关注。所以,在使用开源软件作为商业服务的一部分时,需要重视。
    3. 支持的编程语言存在差异。OpenBLAS除支持C和C++以外,还支持Fortran、Python、R、Julia、MATLAB、Java等编程语言。
    4. 支持的操作系统存在差异。Intel MKL支持Windows、Linux、macOS;OpenBLAS支持Linux,macOS,Windows,BSD,Android/iOS;华为KML主要支持Linux相关操作系统。

发达国家都将并行化的数学计算库作为其基础软件的长期发展重点。例如:1993年,受到高性能计算机系统上的并行计算需求的推动,PETSc(Portable, Extensible Toolkit for Scientific Computation)项目正式启动,由美国加州大学圣巴巴拉分校计算科学研究所的数学和计算科学研究组(Mathematics and Computer Science group of the Institute for Computational Sciences)发起和开发,目的是为了提供一套并行的数学软件库,用于高效地解决大规模科学计算的问题。

现在,PETSc被广泛地应用于涡流,油藏模拟,光电学,电磁学,地震学,心脏模拟,碰撞模拟,天文学,机器学习等研究领域。

数学计算库的研发与发展,对一个国家在芯片设计、算法开发和应用场景多产生着非常积极的意义和重要的作用。

软硬融合发展示意图

高性能数学计算库的应用

高性能数学计算库对EDA、CAE、微电子工程等工程计算领域,发挥着重要的作用,支持并行计算和异构计算的数学计算库也是近年来的研究重点,如:

  1. 利用CPU的加速指令集进行算法加速。
  2. GPU并行算法加速
  3. 大规模集群并行计算

长期以来,国外为了控制我国高科技领域的发展,限制高性能的计算软件向中国用户提供。高性能数学计算库推动着科学研究的进步,也制约工程应用的效率。以下以几个典型的领域,介绍高性能数学计算库对应用的重要意义。

【CFD软件】线性代数库:用于解方程组,如求解矩阵方程和求解特征值和特征向量。最优化库:用于优化CFD模拟计算的效率和准确度。数值积分库:用于对数学函数进行数值积分,如有限差分方法。随机数生成库:用于产生随机数,这在许多CFD应用中是必要的。偏微分方程(PDE)求解库:用于求解一些非线性PDEs,如Navier-Stokes方程和热传递方程等。

【CAE软件】建模和仿真:数学计算库能够提供各种模拟算法和数值方法,如有限元法、有限差分法等,用于建模和仿真机械、电气、力学、热力学等领域的物理现象。优化设计:数学计算库提供各种优化算法,如遗传算法、模拟退火算法等,用于对CAE仿真模型进行设计和优化,以获得更好的性能和效率。数据分析:数学计算库提供各种数学函数和统计算法,用于分析和处理模拟数据,以获得有用的信息和洞见。机器学习:数学计算库中还提供了机器学习和数据挖掘的算法和工具,这些技术可以用于优化CAE仿真模型、识别模拟数据中的模式和异常,从而帮助工程师更好地理解和改进设计。

【微电子工程】计算光刻方法是一种通过计算机控制产生高分辨率图案的加工工艺,使用光刻光刻机将外源干涉光栅(如二极管激光器)的输出通过透镜等光学元件照射到硅晶圆表面上,然后进行化学及物理反应生成微电子芯片的微电路。数学计算库发挥着重要的作用。

  1. 模型建立:计算光刻涉及到光学、物理、化学等多个领域的知识,需要使用数学模型进行问题的数值求解。数学计算库可以提供各种数值计算算法和快速计算技术,如有限差分法、有限元法等,以建立可靠的计算模型。
  2. 仿真计算:数学计算库可以处理大量的数据和复杂的计算任务,可以在短时间内对整个光刻过程进行仿真计算,从而预测和优化光刻过程的各个环节。
  3. 优化设计:计算光刻涉及到的问题非常复杂,需要通过优化设计来提高制造效率和芯片质量。数学计算库可以提供各种优化算法,如遗传算法、粒子群算法等,以提高光刻制造的效率和芯片质量。

【EDA领域】在电路仿真中Sparse LU Factorize(稀疏LU分解)占到仿真时间的70%,小规模矩阵计算的优化可以提升计算效率。

【AI领域】以语音识别的DNN推理为例,推理过程调用GEMM占比80%以上。通过对OpenBLAS的GEMM部分优化,发挥SIMD、多核并发,计算性能提高26%以上。

国产高性能数学计算库PerfMPL

张先轶(中科院博士)于2011年发起OpenBLAS开源项目,OpenBLAS是一个优化的BLAS库(http://www.openblas.net),被广泛应用于科学计算、数据分析、深度学习算法、人工智能等领域,被Caffe、MXNet、Julia、Ubuntu、Debian、openSUSE、GNU Octave等知名项目集成;OpenBLAS也被用作为各种处理器系统开发包的基础软件之一。

PerfMPL是以OpenBLAS为发展基础,经过多年发展逐步覆盖至FFT(快速傅立叶变换)、SPARSE(稀疏矩阵计算库)、MATH(基础数学库)、VML(Vector Math Library向量数学库)、DNN(Deep Neural Networks深度神经网络)、PerfIPP(图像处理等)等计算库。

PerfMPL基于澎峰科技拥有自主知识产权的统一数学函数库技术积累,通过针对性优化、完善、裁剪等方式,发展出两大分支版本:

  1. PerfMPL for 通用算力,主要面向CPU指令集。重点支持x86、ARM和RISC-V高性能通用处理器平台。
  2. PerfMPL for 专用算力,主要面向GPU、NPU、ASIC、FPGA和各类DSA。

自主研发的源代码,也使得澎峰科技可以为特定领域提供加速计算服务和领域数学计算库,并重点支持国产的CAE、EDA、信号处理、计算光刻等领域。

澎峰科技的软件加速计算理论体系是:模型制导、算法支撑、优化支持、性能为王,具体到PerfMPL而言:

PerfMPL主要优化策略如下

  • 性能驱动的优化模型构建技术
  • 面向复杂体系结构的新型并行算法设计
  • 基于模板的高性能汇编代码自动生成技术
  • 场景和应用感知兼顾的性能自适应优化技术

结束语

总的来说,高性能数学库已经经历了多个阶段的发展和演变,并且随着计算机硬件技术的不断提升,数学库的功能和效率也在不断地提高。从最初的基础数学函数库到现在能够进行复杂科学计算的数值计算库,高性能数学库的发展为科学计算和工程应用提供了强大的支持。

未来,我们可以期待更高效、更智能的数学库的诞生,这将会为解决更为复杂的问题提供更好的工具和支持。此外,高性能数学库的发展也在国家自主可控战略方针中扮演着重要的角色。

在当前全球科技创新竞争日益激烈的背景下,高性能数学库的自主研发和掌握,对于保障国家信息安全、提高关键技术自主可控能力和推动经济发展具有十分重要的战略意义。我们相信,在政府和企业共同努力下,高性能数学库的发展将在国家自主可控战略的支持下迈上新的台阶。

附件1:


相關推薦

2023-08-01

以及符号神经网络技术,提升文心大模型3.5在逻辑推理、数学计算及代码生成等任务上的表现。 文心大模型3.5还新增了插件机制,包括官方插件百度搜索和 ChatFile,使得文心一言能够生成实时准确信息和长文本摘要,拓展了大

2024-07-05

MoonBit 正在成为我最喜欢的编程语言的有力竞争者!) 国产编程语言 MoonBit 在海外持续收到开发者社区高度关注。此前,MoonBit 发布 JavaScript 后端支持新闻,收获十万级阅读量,以及多位知名开发者转发认可。 日本社区成员 m

2023-02-21

据文档页面介绍,开源发布的版本特性包括: MoonRay 高性能路径追踪渲染器。 许多在梦工厂开发的 MoonRay 插件。 MoonRay 的 Hydra 插件,允许其在支持 Hydra 的应用程序(如 Houdini 和 Maya)中使用。 Arras 系统,用于在多台机

2023-11-09

无计划结合自身JIT方面优势做一些产品的适配和服务器或高性能领域的研发? 感谢肯定与建议,是可以在这方面做工作,甚至未来可以做些芯片级的加速。   很期待公司的GPGPU,能否适当吐露一些进展或者目标吗?比如

2024-08-17

了全球性能最强的开源模型Qwen2-72B,该模型提升了代码、数学、推理、指令遵循、多语言理解等能力。Qwen2-72B发布后即登顶HuggingFace 的Open LLM Leaderboard开源模型榜单。中文大模型测评基准SuperCLUE在2024上半年报告中指出,Qwen2-72B成

2024-08-13

使用的指令集架构,其产品包括3A6000、3A5000、3B5000等多款高性能多核心桌面处理器。这一重要里程碑不仅标志着国产CPU与开源操作系统的融合迈上了新的台阶,同时也为龙架构计算机用户提供了更加稳定、高效的操作系统选择。

2024-08-28

柄驱动,并基于硬件解码和WiFi6有效降低延时,流畅体验国产3A大作《黑神话:悟空》!吸引了现场众多小伙伴上手体验,带来一场身临其境的沉浸式开源互动体验。   活动期间,RISC-V国际基金会CEO Calista Redmond莅临openKylin

2023-08-11

亲爱的 JSXGraph 朋友们, 我们很高兴地宣布 JSXGraph v1.6.0 发布。 此版本中的新增功能是期待已久的新元素“vectorfield”和 “slopefield”,以及用于测量的新元素“smartlabel”。 一个很大的变化是对国际化的支持,特别是可以根据

2023-11-10

工大流体力学智能化国际联合研究所携手华为 AI4Sci Lab 在国产开源流体计算软件风雷的基础上,依托昇腾 AI 澎湃算力及昇思 MindSpore AI 框架共同研发的面向飞行器流体仿真的智能化模型。 大模型通过打造智能通用的流体力学软

2024-08-03

SIG: 完善现有硬件支持情况 为 deepin 内核提供更好的国产化硬件支持 SIG详情:deepin kernel SIG   社区生态 7月,deepin应用商店共完成1234个应用上架,其中玲珑包1045个,原生deb应用95个,wine应用94个,均已全部上架到deep

2023-12-07

。“天河星逸”以应用为中心,采用国产先进计算架构、高性能多核处理器、高速互连网络、大规模存储等关键技术构建,全面满足高性能计算、AI 大模型训练、大数据分析等应用场景需求,将为广州市、广东省和粤港澳大湾区

2024-07-18

型语言模型 (LLM) 家族中推出了两个新产品:一个是基于数学的模型,另一个是面向程序员和开发人员的代码生成模型,其基础是去年底由其他研究人员开发的名为 Mamba 的新架构。 Codestral Mamba:https://mistral.ai/news/codestral-mamba/

2023-10-21

成功商用。 雷风智能桌面云平台是雷风科技自主研发的高性能、智能化、多场景适配的桌面虚拟化产品,其利用底层虚拟化技术和自研的 iDTP传输协议,为用户提供极致的桌面体验。目前,雷风科技在信创生态领域已经完成多

2024-08-16

展中,deepin始终走在行业前列。 多架构支持,适配多款国产芯片 良好的社区文化和有力的开发者支撑,让deepin生态建设迈入飞速发展阶段。Intel、龙芯、飞腾、玄铁等CPU厂家日前纷纷宣布与deepin V23完成适配,这代表着deepin V23