可能是最全的开源 LLM (大语言模型)汇总
代码拉取完成,页面将自动刷新
作者:王军辉
数学计算库是使能处理器在数值计算领域的基础软件库,是工程计算、科学计算、AI计算的基石。大部分物理、工程问题都能转化成线性方程组求解问题,而高效的数学计算库是发挥硬件算力的基石。
以BLAS(Basic Linear Algebra Subprograms,基本线性代数运算函数库的标准)为例。BLAS最早是由美国能源部(Department of Energy)于1979年发布的。在此之前,每个应用程序都需要手动实现线性代数算法,而这些算法又需要不同的数据结构和运算方式。
为了解决这个问题,美国能源部创建了BLAS标准,通过为常见操作(如向量乘法、矩阵乘法、向量加法等)定义通用接口,使得用户可以在不同的平台和计算机架构上重用相同的代码。最初的BLAS标准包含40个Fortran语言函数,用于执行常见的线性代数运算。
随着时间的推移,标准还进行了更新和扩充,增加了更多的函数和特性。BLAS已经成为一个广泛使用的标准,能够提供高效的线性代数运算,同时也是很多高性能库的基础,如OpenBLAS、MKL等。
随着计算机技术的发展和日益广泛的应用,数学计算库也不断演进,常用函数已经达到一万个,版本多种多样,也成为国际巨头掌控软件生态的关键手段。
Intel MKL数学计算库发展时间轴
数学计算库主要包括线性代数库、信号处理、向量数学库、基本数学函数库(Libm)、PDE各种Solver,其大致范围参见“附件1”。
软件版本也多种多样,有专注于领域的数学计算软件,也有服务于某类处理器的数学计算软件,其他差异性还表现在以下几个方面:
发达国家都将并行化的数学计算库作为其基础软件的长期发展重点。例如:1993年,受到高性能计算机系统上的并行计算需求的推动,PETSc(Portable, Extensible Toolkit for Scientific Computation)项目正式启动,由美国加州大学圣巴巴拉分校计算科学研究所的数学和计算科学研究组(Mathematics and Computer Science group of the Institute for Computational Sciences)发起和开发,目的是为了提供一套并行的数学软件库,用于高效地解决大规模科学计算的问题。
现在,PETSc被广泛地应用于涡流,油藏模拟,光电学,电磁学,地震学,心脏模拟,碰撞模拟,天文学,机器学习等研究领域。
数学计算库的研发与发展,对一个国家在芯片设计、算法开发和应用场景多产生着非常积极的意义和重要的作用。
软硬融合发展示意图
高性能数学计算库对EDA、CAE、微电子工程等工程计算领域,发挥着重要的作用,支持并行计算和异构计算的数学计算库也是近年来的研究重点,如:
长期以来,国外为了控制我国高科技领域的发展,限制高性能的计算软件向中国用户提供。高性能数学计算库推动着科学研究的进步,也制约工程应用的效率。以下以几个典型的领域,介绍高性能数学计算库对应用的重要意义。
【CFD软件】线性代数库:用于解方程组,如求解矩阵方程和求解特征值和特征向量。最优化库:用于优化CFD模拟计算的效率和准确度。数值积分库:用于对数学函数进行数值积分,如有限差分方法。随机数生成库:用于产生随机数,这在许多CFD应用中是必要的。偏微分方程(PDE)求解库:用于求解一些非线性PDEs,如Navier-Stokes方程和热传递方程等。
【CAE软件】建模和仿真:数学计算库能够提供各种模拟算法和数值方法,如有限元法、有限差分法等,用于建模和仿真机械、电气、力学、热力学等领域的物理现象。优化设计:数学计算库提供各种优化算法,如遗传算法、模拟退火算法等,用于对CAE仿真模型进行设计和优化,以获得更好的性能和效率。数据分析:数学计算库提供各种数学函数和统计算法,用于分析和处理模拟数据,以获得有用的信息和洞见。机器学习:数学计算库中还提供了机器学习和数据挖掘的算法和工具,这些技术可以用于优化CAE仿真模型、识别模拟数据中的模式和异常,从而帮助工程师更好地理解和改进设计。
【微电子工程】计算光刻方法是一种通过计算机控制产生高分辨率图案的加工工艺,使用光刻光刻机将外源干涉光栅(如二极管激光器)的输出通过透镜等光学元件照射到硅晶圆表面上,然后进行化学及物理反应生成微电子芯片的微电路。数学计算库发挥着重要的作用。
【EDA领域】在电路仿真中Sparse LU Factorize(稀疏LU分解)占到仿真时间的70%,小规模矩阵计算的优化可以提升计算效率。
【AI领域】以语音识别的DNN推理为例,推理过程调用GEMM占比80%以上。通过对OpenBLAS的GEMM部分优化,发挥SIMD、多核并发,计算性能提高26%以上。
张先轶(中科院博士)于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基于澎峰科技拥有自主知识产权的统一数学函数库技术积累,通过针对性优化、完善、裁剪等方式,发展出两大分支版本:
自主研发的源代码,也使得澎峰科技可以为特定领域提供加速计算服务和领域数学计算库,并重点支持国产的CAE、EDA、信号处理、计算光刻等领域。
澎峰科技的软件加速计算理论体系是:模型制导、算法支撑、优化支持、性能为王,具体到PerfMPL而言:
PerfMPL主要优化策略如下
总的来说,高性能数学库已经经历了多个阶段的发展和演变,并且随着计算机硬件技术的不断提升,数学库的功能和效率也在不断地提高。从最初的基础数学函数库到现在能够进行复杂科学计算的数值计算库,高性能数学库的发展为科学计算和工程应用提供了强大的支持。
未来,我们可以期待更高效、更智能的数学库的诞生,这将会为解决更为复杂的问题提供更好的工具和支持。此外,高性能数学库的发展也在国家自主可控战略方针中扮演着重要的角色。
在当前全球科技创新竞争日益激烈的背景下,高性能数学库的自主研发和掌握,对于保障国家信息安全、提高关键技术自主可控能力和推动经济发展具有十分重要的战略意义。我们相信,在政府和企业共同努力下,高性能数学库的发展将在国家自主可控战略的支持下迈上新的台阶。
附件1:
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。