Sample Usage Guide
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
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 script3. 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_pythonThis 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_pythonThis 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_pythonYou 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_inferAfter successful execution you will see:
[Success] sample execution successfulOutput 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 beforebash run_sample.shto print logs to screen
export ASCEND_SLOG_PRINT_TO_STDOUT=1 # Print logs to screen export ASCEND_GLOBAL_LOG_LEVEL=0 # Log level is debug4. 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
【免费下载链接】geGE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力,并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考