Sample Usage Guide
1. Function Description
This sample demonstrates the offline graph compilation and execution workflow. For more information about compiling graphs into offline models, refer to Generating Offline Models.
2. Directory Structure
python/
├── src/
| ├── single_model/ // Single model sample
| | ├── build_add_model.py // Offline compile Add graph, generate add_sample.om
| | └── run_add_model.py // Load add_sample.om and run inference
| ├── bundle_model/ // Bundle model sample
| | ├── build_bundle_model.py // Bundle Add/Mul multiple graphs, generate bundle_sample.om
| | └── run_bundle_model.py // Load bundle_sample.om, execute sub-models sequentially
| └── common.py // Common logic
├── README.md // README file
├── run_sample.sh // Execution script
3. Usage
3.1 Prepare CANN Package
- This sample requires installing two sets of CANN: the latest development package for graph compilation, and the official release package from the website providing
pyACLmodule for graph execution. "Compilation" and "execution" in this document specifically refer to graph compilation and graph execution, not GE source code compilation. - Installation instructions:
- Latest development package, for graph compilation, providing the latest GE/Python capabilities this sample depends on. Refer to Environment Preparation section "Method 3: Manual Package Installation > Scenario 1: Experience master version capabilities or develop based on master version", install the latest
toolkitandopspackages - Official CANN
toolkitandopspackages released on the website, for graph execution, providingpyACL. Refer to Environment Preparation section "Method 3: Manual Package Installation > Scenario 2: Experience released version capabilities or develop based on released version", install official release version software packages
- Latest development package, for graph compilation, providing the latest GE/Python capabilities this sample depends on. Refer to Environment Preparation section "Method 3: Manual Package Installation > Scenario 1: Experience master version capabilities or develop based on master version", install the latest
- Set environment variables (assuming latest development package installed in /usr/local/Ascend/, official release package installed in /usr/local/Ascend-release/)
source /usr/local/Ascend/cann/set_env.sh
export PYTHONPATH="$PYTHONPATH:/usr/local/Ascend-release/cann/python/site-packages"
3.2 Graph Compilation and Execution
Execute single model sample:
bash run_sample.sh -t sample_and_run_python
This command will:
- Build
Addgraph, compile offline and generateadd_sample.om - Load and execute the offline model via pyACL
Execute bundle sample:
bash run_sample.sh -t sample_and_run_bundle_python
This command will:
- Bundle
Addgraph andMulgraph, compile offline and generatebundle_sample.om - Load Bundle via pyACL and execute two sub-models separately
For offline compilation in cardless scenarios where you need to specify target chip version, add --soc-version:
bash run_sample.sh --soc-version Ascend910B1 -t sample_and_run_python
bash run_sample.sh --soc-version Ascend910B1 -t sample_and_run_bundle_python
You can also split into "graph compilation only" and "graph execution only" phases:
bash run_sample.sh -t build_model
bash run_sample.sh -t run_infer
bash run_sample.sh -t build_bundle_model
bash run_sample.sh -t run_bundle_infer
After successful execution you will see:
[Success] sample execution successful
Output Files Description
After successful execution, the following files are generated in the current directory:
add_sample.om- Single model offline filebundle_sample.om- Bundle offline model file
3.3 Log Printing
If you need log printing to help troubleshoot during executable program execution, you can set the following environment variables before bash run_sample.sh to print logs to screen
export ASCEND_SLOG_PRINT_TO_STDOUT=1 # Print logs to screen
export ASCEND_GLOBAL_LOG_LEVEL=0 # Log level is debug
4. Core Workflow Introduction
4.1 Single Model Offline Compilation and Execution
- Use
build_initializeto initialize compilation environment - Build
Graphand generate offline model viabuild_model - Save
omfile usingsave_model - Execute offline model via
acl.mdl.load_from_file,acl.mdl.execute
4.2 Bundle Offline Compilation and Execution
- Organize multiple
GraphusingGraphWithOptions - Build Bundle model at once via
bundle_build_model - Save
bundle_sample.omusingbundle_save_model - Load Bundle via
acl.mdl.bundle_load_from_fileand execute sub-models sequentially