---
title: 如何识别使用了Intel MKL
description: "将Intel MKL迁移至KML之前需要识别是否使用到Intel MKL，本文提供头文件、函数名和库文件3种识别方法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/mg/kunpengaccel_12_0003.html
sourcePath: /source/zh/kunpenghpcs/hpckit/mg/kunpengaccel_12_0003.html
indexId: 7cc53e4555d608feaf7bb14ae588d120d70cec1212ce83888f44ad1e390c653058
---
# 如何识别使用了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）。
    实际场景中可以灵活组合以上方法进行使用。
