概述
广义上的数学库是指提供高性能标量、矢量计算的数学函数接口库,常见的数学库有英特尔数学内核库(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所示。
被迁移数学库 |
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 |
OpenBLAS |
cblas.h |
KML_BLAS |
kblas.h |
FFTW |
fftw3.h |
KML_FFT |
kfft.h |