C++ Sample Usage Guide

Directory Structure

├── CMakeLists.txt  cmake configuration file
├── README.md  Sample usage guide
├── config
│   ├── model_generator.py  Script to generate models required for test cases
│   ├── add_func_multi.json  Configuration file for multi-func used in test cases
│   ├── add_func_multi_control.json  Configuration file for multi-func used in test cases
│   ├── add_func.json  Configuration file for add FunctionPp used in test cases
│   ├── add_graph.json  Configuration file for add GraphPp used in test cases
│   ├── data_flow_deploy_info.json  Configuration file to specify node deployment location in test cases
│   └── invoke_func.json  Configuration file for udf calling nn used in test cases
├── node_builder.h  Common methods to construct FunctionPp and GraphPp
├── sample_base.cpp  This sample demonstrates basic DataFlow API graph building, including construction and execution of UDF, GraphPp, and UDF executing NN inference types of nodes
├── sample_timebatch.cpp  This sample demonstrates TimeBatch usage method
├── sample_countbatch.cpp  This sample demonstrates CountBatch usage method
├── sample_tensorflow.cpp  This sample demonstrates TensorFlow graph construction DataFlow node method
├── sample_multifunc.cpp  This sample demonstrates multi-func calling method
├── sample_exception.cpp  This sample demonstrates enabling exception reporting method
└── sample_perf.cpp  This sample tests Feed and Fetch interface performance

Environment Requirements

  • Reference Environment Preparation to download and install driver/firmware/CANN software packages;
  • Model generation script model_generator.py in config directory depends on tensorflow, need to install through pip3 install tensorflow.

Program Compilation

# Execute tensorflow original model generation script in config directory:
python3 config/model_generator.py
# After execution completes, generate add.pb model in config directory

source {HOME}/Ascend/cann/set_env.sh  # "{HOME}/Ascend" is CANN software package installation directory, replace according to actual installation path.
mkdir build
cd build
cmake .. && make -j 64
cd ../output

Run Samples

numa_config.json file configuration reference in the following text: numa_config field description and sample

# Optional
export ASCEND_GLOBAL_LOG_LEVEL=3       #0 debug 1 info 2 warn 3 error Default error level if not set
# Required
source {HOME}/Ascend/cann/set_env.sh # "{HOME}/Ascend" is CANN software package installation directory, replace according to actual installation path.
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 this environment variable to prevent affecting non-dflow test cases
unset RESOURCE_CONFIG_PATH