文档
注册

总述

鲲鹏数学库KML(Kunpeng Math Library)是华为提供的基于鲲鹏平台优化的高性能数学函数库,主要完成标量,矢量,矩阵上的数学计算,包括基本的四则运算、三角函数、对数函数、指数函数、线性代数计算等。本文档提供了KML的安装指南、详细接口定义与示例代码,旨在帮助用户快速熟悉KML的使用。

数学库概述

KML提供了基于鲲鹏平台优化的高性能数学函数,所有接口由C/C++、汇编语言实现,部分接口兼容Fortran语言调用,部分提供Java语言封装的接口。KML的组成如表1所示。

表1 KML组成部分

序号

库名

描述

适用场景

1

KML_BLAS

基础线性代数运算数学库(Basic Linear Algebra Subprograms),基于鲲鹏架构,通过向量化、数据预取、编译优化、数据重排等手段,对BLAS的计算效率进行了深度挖掘,使得BLAS接口函数的性能逼近理论峰值。

向量-向量运算

向量-矩阵运算

矩阵-矩阵运算

2

KML_SPBLAS

稀疏基础线性代数运算库(Sparse Basic Linear Algebra Subprograms),基于鲲鹏架构为压缩格式的稀疏矩阵提供了高性能向量、矩阵运算。充分利用鲲鹏的指令集和架构特点,开发了高性能稀疏矩阵运算库,提升HPC和大数据解决方案业务性能

稀疏的向量-向量运算

稀疏的向量-矩阵运算

稀疏的矩阵-矩阵运算

3

KML_VML

向量数学库(Vector Mathematical Library),通过 NEON指令 优化、内联汇编等方法,对输入数据进行向量化处理,充分利用了鲲鹏架构下的寄存器特点,实现了在鲲鹏服务器上的性能提升。

向量的数学运算,包括幂函数、三角函数、指数函数、双曲函数、对数函数等。

4

KML_MATH

基础运算数学库,通过周期函数规约、算法改进等手段,提供了基于鲲鹏处理器性能提升较大的函数实现。

基础数学运算,包括三角函数、对数函数、指数函数、幂函数运算。

5

KML_FFT

快速傅里叶(Fast Fourier Transform)运算库,是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法,广泛的应用于工程、科学和数学领域,将傅里叶变换计算需要的复杂度从O(n2)降到了O(n log n),被IEEE科学与工程计算期刊列入20世纪十大算法。

FFT的C2C、C2R、R2C、R2R变换。

6

KML_LAPACK

线性代数运算库(Linear Algebra PACKage),通过分块、求解算法组合、多线程、BLAS接口优化等手段,基于鲲鹏架构对LAPACK的计算效率进行了优化。

线性方程组运算,包括求解、特征值和奇异值问题求解等。

7

KML_SVML

短向量数学库(Short Vector Mathematical Library),通过NEON指令优化、内联汇编等方法,对输入向量进行批量处理,充分利用了鲲鹏架构下的寄存器特点,实现了在鲲鹏服务器上的性能提升。

向量的数学运算,包括幂函数、三角函数、指数函数、双曲函数、对数函数等。

8

KML_SOLVER

稀疏求解器库(Sparse Solvers),提供直接求解器和迭代求解器,支持单节点多线程、集群MPI多进程。

单机版:稀疏对称正定矩阵、稀疏一般矩阵线性方程组迭代求解。

集群版:稀疏对称正定矩阵线性方程组迭代求解,正定埃尔米特矩阵线性方程组直接求解。

9

KML_JAVA

基于JNI技术,用Java语言封装的KML数学库。

BLAS、VML。

10

KML_SCALAPACK

分布式的线性代数运算库(Scalable Linear Algebra PACKage),通过分块、求解算法组合、多进程优化等手段,基于鲲鹏架构对SCALAPACK的计算效率进行了优化。

线性方程组运算,包括求解、特征值和奇异值问题求解等。

11

KML_VSL

向量统计库(Vector Statistical Library),包含多种随机数生成函数,可以生成服从不同分布的随机数。

服从不同分布的随机数生成。

12

KML_NUMPY

使用KML封装的Python Numpy模块。

KML_NUMPY库提供了40个适配KML或自行优化后的接口,优化的数据类型为FLOAT和DOUBLE,涵盖了基础运算、傅里叶变换、统计和线性代数四个部分。

基础运算、傅里叶变换、统计和线性代数。

13

KML_EIGENSOLVER

特征值求解库,支持求解大型对称/共轭矩阵部分特征值与特征向量,支持MPI多节点。

实对称/复共轭矩阵的特征值求解。

14

KML_IPL

插值库(Interpolate Library),包含多种常用的插值函数,用于数值分析。

离散数据的拟合。

KML仅适用于鲲鹏处理器。

为获得最优性能,KML接口内部不做完整入参校验,入参合法性由调用方业务来保证。

应用场景

KML主要在以下场景中使用:

  • 大数据:机器学习算法。
  • HPC(高性能计算):科学计算、气象、基因、仿真。
  • AI(人工智能):语音识别、图像识别。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词