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

适配oneDNN

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

适配步骤

  1. 获取oneDNN适配代码。假设“/path/to” 为当前拉取代码路径。
    git clone -b v3.0.0 https://gitee.com/openeuler/kail_dnn_adapter
    cd kail_dnn_adapter
    git submodule update --init --recursive
    cd oneDNN-open
    ulimit -n 262144
    patch -p1 < ../0001-kdnn-adapter.patch
  2. 进入“/path/to/kail_dnn_adapter”目录,编译oneDNN。
    • 鲲鹏920 7280Z处理器
      cd /path/to/kail_dnn_adapter
      sh build.sh --use_static_kdnn=off

      选项“--use_static_kdnn=on/off”指定编译时使用KDNN静态库或者动态库,默认为“off”

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

    编译产物路径。

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

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

    编译命令中,“--compiler=clang”表示使用毕昇编译器,默认使用GCC。

适配后验证

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

  1. 进入“/path/to/kail_dnn_adapter/out/llt/scripts”目录。
    cd /path/to/kail_dnn_adapter/out/llt/scripts
  2. 运行测试用例。
    python run_daily_build.py --working_dir=../../oneDNN-open/build/tests/benchdnn

    如果用例执行结果全部为passed,并且有如下图所示信息返回,说明oneDNN适配成功。