适配oneDNN
本文提供KDNN适配oneDNN的方法,请参照本节内容操作。若操作不当,可能会引入未定义行为,请谨慎操作。
适配步骤
- 获取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
- 进入“/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。
- 鲲鹏920 7280Z处理器
适配后验证
编译完成后,使用软件自带的测试用例运行和验证是否适配成功。
- 进入“/path/to/kail_dnn_adapter/out/llt/scripts”目录。
cd /path/to/kail_dnn_adapter/out/llt/scripts
- 运行测试用例。
python run_daily_build.py --working_dir=../../oneDNN-open/build/tests/benchdnn
如果用例执行结果全部为passed,并且有如下图所示信息返回,说明oneDNN适配成功。

父主题: 如何使用KAIL