用例整体介绍与运行
整体介绍
该用例整体分为五个部分:aclnn算子部分、ATB算子部分、model部分、基础设施部分、主函数。
- aclnn算子部分:实现了aclnn算子对ATB的接入。
- ATB算子部分:使用ATB原生算子构建了一个ATB图算子。
- model部分:主要使用了ATB算子部分与aclnn算子部分生成的算子构建了一个更大的图算子,并且包含ATB图算子相关的调用逻辑。
- 基础设施部分:主要包含日志与内存池,用于辅助问题定位及加快显存分配速度。
- 主函数部分:承载着程序入口的功能,同时多线程功能也在主函数中实现。
目录结构介绍
atb-aclnn 示例工程 |-- CMakeLists.txt |-- README.md |-- aclnn --aclnn算子部分 | |-- aclnn_gelu_operation.cpp | |-- aclnn_gelu_operation.h --aclnn Gelu算子接入ATB的功能实现 | |-- aclnn_operation_base.cpp | |-- aclnn_operation_base.h --aclnn算子接入ATB的功能基类 |-- atb --atb算子部分 | |-- atb_graph_op.cpp | |-- atb_graph_op.h |-- build.sh --工程编译脚本 |-- main.cpp --主函数,即入口函数 |-- memory --基础设施中的内存池部分 | |-- memory_env.h | |-- memory_utils.cpp | |-- memory_utils.h | |-- memorypool.cpp | |-- memorypool.h |-- model --模型部分,包含ATB组图及ATB图算子调用相关逻辑 | |-- model.cpp | |-- model.h |-- utils --基础设施中的日志等部分 | |-- log.cpp | |-- log.h | |-- utils.cpp | |-- utils.h
用例运行
- 进入到atb-aclnn目录下。
cd ${用例所在目录}/atb-aclnn
- 设置CANN环境变量(如source /usr/local/Ascend/ascend-toolkit/set_env.sh)。
source ${toolkit安装目录}/set_env.sh
- 设置ATB环境变量(如source /usr/local/Ascend/nnal/atb/set_env.sh)。
source ${nnal安装目录}/atb/set_env.sh
- 执行build.sh脚本。
bash ./build.sh
- 执行用例。
./build/test_model
父主题: ATB使用示例