用例整体介绍与运行

整体介绍

该用例整体分为五个部分:aclnn算子部分、ATB算子部分、model部分、基础设施部分、主函数。

目录结构介绍

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

用例运行

  1. 进入到atb-aclnn目录下。

    cd  ${用例所在目录}/atb-aclnn

  2. 设置CANN环境变量(如source /usr/local/Ascend/ascend-toolkit/set_env.sh)。

    source ${toolkit安装目录}/set_env.sh

  3. 设置ATB环境变量(如source /usr/local/Ascend/nnal/atb/set_env.sh)。

    source ${nnal安装目录}/atb/set_env.sh

  4. 执行build.sh脚本。

    bash ./build.sh

  5. 执行用例。

    ./build/test_model

  • 当前用例根据物理机上的device卡数创建线程,若需要调整线程个数,请自行修改main.cpp中的线程创建个数。
  • 保证demo的abi版本与ATB一致。
    • ATB的abi版本的查看方法:通过如下命令查看。
      env | grep ATB_HOME_PATH
    • demo的abi版本查看方法:通过查看CMakeList中的如下命令来查看abi版本为0或1,OFF表示0,ON表示1。
      option(USE_CXX11_ABI "USE_CXX11_ABI" OFF)