---
title: 概述
description: "广义上的数学库是指提供高性能标量、矢量计算的数学函数接口库，常见的数学库有英特尔数学内核库（Intel Math Kernel Library，以下简称Intel MKL）及一些开源数学库。鲲鹏数学库（Kunpeng Math Library，以下简称KML）提供了基于鲲鹏平台优化的高性能数学函数。当用户将使用数学库函数的应用程序迁移到鲲鹏计算平台时，由于不同计算平台或不同数学库的函数定义差别，需要对程序重新适配开发。针对该问题，我们提供了鲲鹏数学库迁移指南。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_12_0001.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_12_0001.html
indexId: 5dddd0722ea5424c45b48938a6d451c2c08cd881db45ee9c2d6bed7be1bff1a570
---
# 概述

广义上的数学库是指提供高性能标量、矢量计算的数学函数接口库，常见的数学库有英特尔数学内核库（Intel Math Kernel Library，以下简称Intel MKL）及一些开源数学库。鲲鹏数学库（Kunpeng Math Library，以下简称KML）提供了基于鲲鹏平台优化的高性能数学函数。当用户将使用数学库函数的应用程序迁移到鲲鹏计算平台时，由于不同计算平台或不同数学库的函数定义差别，需要对程序重新适配开发。针对该问题，我们提供了鲲鹏数学库迁移指南。

本指南包含将Intel MKL中的一些数学库迁移至KML的步骤（参见Intel MKL迁移到KML），包括MKL的VML至KML_VML，MKL的BLAS至KML_BLAS等，同时也包含一些常用数学库迁移至KML的步骤（参见其他常用数学库迁移到KML）。通过迁移，用户可以在鲲鹏计算平台获得比一般开源数学库更优的计算性能。

迁移前后的数学库映射关系如表1所示。


**表1 迁移前后的数学库映射关系**

| 被迁移数学库 | 被迁移数学库 | KML | KML |
| --- | --- | --- | --- |
| 名称 | 头文件 | 名称 | 头文件 |
| icc\-imf | math.h或mathimf.h | KML\_MATH | km.h |
| MKL\-VML | mkl.h或mkl\_vml.h | KML\_VML | kvml.h |
| MKL\-BLAS | mkl.h或mkl\_blas.h | KML\_BLAS | kblas.h |
| MKL\-SPBLAS | mkl.h或mkl\_spblas.h | KML\_SPBLAS | kspblas.h |
| MKL\-FFT | mkl.h或mkl\_dfti.h | KML\_FFT | kfft.h |
| MKL\-LAPACK | mkl.h或mkl\_lapack.h | KML\_LAPACK | klapack.h，kservice.h |
| MKL\-SOLVER | petscksp.h或ksolver.h | KML\_SOLVER（迭代法） | ksolver.h，kservice.h |
| MKL\-PARDISO或PARDISO\-cluster | mkl\_pardiso.h或mkl\_cluster\_sparse\_solver.h | KML\_SOLVER（直接法） | kml\_scadss.h |
| PETSc | petscksp.h | KML\_SOLVER（迭代法） | kml\_iss.h/kml\_scaiss.h |
| MUMPs | dmumps\_c.h | KML\_SOLVER（直接法） | kml\_scadss.h |
| OpenBLAS | cblas.h | KML\_BLAS | kblas.h |
| FFTW | fftw3.h | KML\_FFT | kfft.h |
| MKL\-SCALAPACK | mkl.h或mkl\_scalapack.h | KML\_SCALAPACK | kscalapack.h，klapack.h，kservice.h |
