---
title: 如何识别使用了Intel MKL
description: "将Intel MKL迁移至KML之前需要识别是否使用到Intel MKL，本文提供头文件、函数名和库文件3种识别方法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_12_0003.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_12_0003.html
indexId: c3a96407be2ed91e2fc3757e12bd3c5dccfb60b4b80c1f9359e4895bf2a7a68270
---
# 如何识别使用了Intel MKL

将Intel MKL迁移至KML之前需要识别是否使用到Intel MKL，本文提供头文件、函数名和库文件3种识别方法。

Intel MKL为集成的数学库，其中包括了VML、BLAS、SPBLAS、FFT（DFT）、LAPACK等数学库的函数接口，所以在迁移过程中，需要识别具体使用到的库。例如，若使用了MKL中多个不同数学库的接口，则在迁移过程中需要包含所有用到的数学库的KML对应头文件。因为涉及到x86架构迁移到ARM架构，本指南只包含特定数学库的迁移方法，其余请参见鲲鹏服务器代码移植参考手册(https://www.hikunpeng.com/document/detail/zh/kunpenggrf/codeprtr/kunpengtaishanporting_12_0002.html)。

- 头文件识别
  查看源码中头文件是否包含mkl.h或其他带有MKL前缀的头文件。

- 函数名识别

  1. 通过抓取perf文件查看热点函数，寻找其中mkl的接口部分。
  2. 全局搜索源代码，根据MKL的函数名定位调用部分。
- 库文件识别

  1. 查看系统目录/opt/intel下是否有mkl文件夹。
  2. 查看代码编译文件Makefile，查看链接选项是否包括mkl的动态库（-lmkl_xxx）。
    实际场景中可以灵活组合以上方法进行使用。
