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
- 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. - Set environment variables (assuming the package is installed in /usr/local/Ascend/)
source /usr/local/Ascend/cann/set_env.sh
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
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 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