鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

KAIL_DNN适配oneDNN

本文提供KAIL_DNN适配oneDNN的方法,请参照本节内容操作。若操作不当,可能会引入未定义行为,请谨慎操作。

适配步骤

  1. 获取KAIL_DNN v2.0.0版本适配代码。
    git clone -b v2.0.0 https://gitee.com/openeuler/kail_dnn_adapter
  2. 进入“kail_dnn_adapter”目录,编译oneDNN。
    鲲鹏920 7280Z处理器
    cd kail_dnn_adapter
    sh build.sh --kml_dir=/path/to/HPCKit/latest/kml/gcc

    libdnnl.so路径为:“out/oneDNN-3.4/build/src/”

    其依赖库的路径如下:
    • ACL库相关so路径:“out/ComputeLibrary-23.11/build/”
    • AI库相关so路径:“/usr/local/kail/lib/libkdnn.so”
    • 数学库相关so路径:
      • “/path/to/HPCKit/latest/gcc/kml/lib/sve/kblas/multi/libkblas_armv9p_v25.0.0.so”
      • “/path/to/HPCKit/latest/gcc/kml/lib/noarch/kvml/multi/libkvml.so.25.0.0”
      • “/path/to/HPCKit/latest/gcc/kml/lib/noarch/libkm.so.25.0.0”
    单独链接libdnnl.so可以得到oneDNN v3.4.0的全部接口功能。

    编译命令中--kml_dir用于指定鲲鹏数学库安装路径。

    数学库相关so路径中的“/path/to/”代指HPCKit安装路径。

    鲲鹏920新型号处理器(以毕昇编译器为例)。
    cd kail_dnn_adapter
    sh build.sh --compiler=clang --kml_dir=/path/to/HPCKit/latest/kml/bisheng/

    libdnnl.so路径为:“out/oneDNN-3.4/build/src/”

    其依赖库的路径如下:
    • ACL库相关so路径:“out/ComputeLibrary-23.11/build/”
    • AI库相关so路径:“/usr/local/kail/lib/libkdnn.so”
    • 数学库相关so路径:
      • “/path/to/HPCKit/latest/bisheng/kml/lib”
    单独链接libdnnl.so可以得到oneDNN v3.4.0的全部接口功能。

    编译命令中,--compiler=clang表示使用毕昇编译器,默认使用GCC;--kml_dir用于指定鲲鹏数学库安装路径。

    数学库相关so路径中“/path/to/”用于代指HPCKit安装路径。

适配后验证

编译完成后,使用软件自带的测试用例运行和验证是否适配成功。

  1. 进入“/path/to/kail_dnn_adapter/out/oneDNN-3.4/build”目录。
    cd /path/to/kail_dnn_adapter/out/oneDNN-3.4/build
  2. 运行测试用例。
    • 鲲鹏920 7280Z处理器
      ctest

      如果用例执行结果全部为passed,说明oneDNN编译成功。

    • 鲲鹏920新型号处理器
      taskset -c 0-37 ctest

      如果用例执行结果全部为passed,说明oneDNN编译成功。

    KML线程控制方式推荐使用OMP方式:export KML_BLAS_THREAD_TYPE=OMP。