C++样例使用指导
目录结构
├── CMakeLists.txt cmake配置文件
├── README.md 样例使用指导
├── config
│ ├── model_generator.py 生成用例所需的模型的脚本
│ ├── add_func_multi.json 用例中使用的多func的配置文件
│ ├── add_func_multi_control.json 用例中使用的多func的配置文件
│ ├── add_func.json 用例中add FunctionPp对应的配置文件
│ ├── add_graph.json 用例中add GraphPp对应的配置文件
│ ├── data_flow_deploy_info.json 用例中指定节点部署位置的配置文件
│ └── invoke_func.json 用例中udf调用nn对应的配置文件
├── node_builder.h 构造functionPp和GraphPp的公共方法
├── sample_base.cpp 该样例展示了基本的DataFlow API构图,包含UDF,GraphPp和UDF执行NN推理三种类型节点的构造和执行
├── sample_timebatch.cpp 该样例展示了TimeBatch使用方法
├── sample_countbatch.cpp 该样例展示了CountBatch使用方法
├── sample_tensorflow.cpp 该样例展示了Tensorflow图构造Dataflow节点的方法
├── sample_multifunc.cpp 该样例展示了多func的调用方法
├── sample_exception.cpp 该样例展示了开启异常上报的方法
└── sample_perf.cpp 该样例测试Feed和Fetch的接口性能
环境要求
- 参考环境准备下载安装驱动/固件/CANN软件包;
- config目录下的模型生成脚本 model_generator.py 依赖tensorflow,需通过pip3 install tensorflow安装。
程序编译
# 执行config目录下的tensorflow原始模型生成脚本:
python3 config/model_generator.py
# 执行结束后,在config目录下生成add.pb模型
source {HOME}/Ascend/cann/set_env.sh # "{HOME}/Ascend"为CANN软件包安装目录,请根据实际安装路径进行替换。
mkdir build
cd build
cmake .. && make -j 64
cd ../output
运行样例
下文中numa_config.json文件配置参考numa_config字段说明及样例
# 可选
export ASCEND_GLOBAL_LOG_LEVEL=3 #0 debug 1 info 2 warn 3 error 不设置默认error级别
# 必选
source {HOME}/Ascend/cann/set_env.sh # "{HOME}/Ascend"为CANN软件包安装目录,请根据实际安装路径进行替换。
export RESOURCE_CONFIG_PATH=xxx/xxx/xxx/numa_config.json
./sample_base
./sample_timebatch
./sample_countbatch
./sample_tensorflow
./sample_multifunc
./sample_exception
./sample_perf
# unset此环境变量,防止影响非dflow用例
unset RESOURCE_CONFIG_PATH