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文件用于配置dflow运行所需的设备资源信息,可使用tools目录下的脚本自动生成单机配置,如需自定义可参考numa_config字段说明及样例:
# 生成单机numa_config.json(默认自动探测芯片型号和设备数量,使用所有设备)
# 也可指定设备列表:python3 ../../tools/create_numa_config.py --device-list 0,1,2
python3 ../../tools/create_numa_config.py
# 生成后会在当前目录下生成numa_config.json
# 可选
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=./numa_config.json # 请根据实际生成的文件路径指定
./sample_base
./sample_timebatch
./sample_countbatch
./sample_tensorflow
./sample_multifunc
./sample_exception
./sample_perf
# unset此环境变量,防止影响非dflow用例
unset RESOURCE_CONFIG_PATH