AWNN 工具链使用指南
本文档描述了 AWNN 工具链的功能与使用方法,面向零基础用户介绍如何操作工具链,在 PC 上完成模型转换及板端结果验证等功能,旨在协助技术支持工程师、AI 软件开发工程师和 AI 算法开发工程师快速上手 AWNN 工具链的使用。
概述
AWNN 工具链用来帮助用户将深度学习模型部署在 Allwinner 芯片上。为了调用 NPU 资源,用户需要使用 AWNN 工具链提供的离线工具,将模型转换成 AWNN 支持的模型文件,并使用 AWNN Runtime 库来完成开发板上的板端部署。

工具链包含以下功能模 块:
| 功能模块 | 具体描述 |
|---|---|
| build | 完成模型优化、量化等操作,生成可供 NPU 使用的模型文件 |
| profile | 帮助用户完成模型量化后的精度分析 |
| simulate | 用于模型仿真,可以脱离板端获取目标模型的推理仿真结果 |
| encrypt | 为用户提供基础的模型加密功能 |
| generate_config_file | 基于用户提供的模型为用户生成配置文件模板 |
所有功能指令以 awnntools 开头,对应命令为 awnntools build、awnntools profile、awnntools simulate、awnntools encrypt 以及 awnntools generate_config_file。
root@xxx:/data# awnntools -h
usage: awnntools [-h] [-v] {convert,build,profile,simulate,encrypt,generate_config_file} ...
AWNNToolKits: The offline tools for Neural Network quantization and optimization.
positional arguments:
{convert,build,profile,simulate,encrypt,generate_config_file}
convert convert your model to ncnn format
build compiling the model for execution on NPU devices.
profile get profile information
simulate get simulate results
encrypt encrypt model files
generate_config_file
generate the required configuration file template based on the provided ONNX model
optional arguments:
-h, --help show this help message and exit
-v, --version show version
此外,AWNN 还提供了板端推理验证工具 awnn_verify,用于在开发板上执行模型推理并与仿真结果进行比对。
快速入门
本节以 yolov5s 模型为例,演示从 PC 端模型转换到板端部署验证的完整流程,帮助用户快速上手 AWNN 工具链。
准备资源
- 模型
目前工具仅支持 ONNX 模型转化,本节基于 $(V861-SDK)/platform/allwinner/vision/awnn_sdk 中的 yolov5s 示例进行说明,模型位置 awnn_sdk/toolkits/example/yolov5s,我们将其拷贝到创建的 awnn_workspace 中。
📷 原文图片缺失:
figures/2026-06-09 15-34-26.png
其中的 models/yolov5s.onnx 为标准的 ONNX 模型文件。如开发者使用其他深度学习框架,请先将其模型转换至 ONNX 格式。
- 校准文件
images/* 目录存放用于模型量化(Quantization)校准图像数据集。
📷 原文图片缺失:
figures/2026-06-09 15-35-10.png
- yml 文件
yolov5_config.yml 定义了模型构建、性能剖析与仿真所需的全部参数。建议开发者首先使用 awnntools 生成一个标准配置模板,然后基于该模板根据您的具体需求进行修改。
执行命令:
awnntools generate_config_file configs/config.yml models/yolov5s.onnx
generate_config_file:子命令,功能是生成一个配置文件模板configs/config.yml:指定生成的配置文件的保存路径和文件名models/yolov5s.onnx:指定源模型文件(此处为 yolov5s 的 ONNX 格式)的路径
Loading asciinema cast...
PC 端模型转换
执行编译
执行 awnntools build 命令来完成模型的编译。
awnntools build configs/yolov5_config.yml
build:子命令,功能是将配置文件描述的模型编译成 NPU 可执行文件configs/yolov5_config.yml:指定编译所需的配置文件
Loading asciinema cast...
精度分析
执行 awnntools profile 命令对比量化模型与浮点模型的精度。
awnntools profile configs/yolov5_config.yml --log-file ./output/yolov5s.csv
profile:子命令,功能是对配置文件描述的模型进行 profile 分析configs/yolov5_config.yml:指定 profile 所需的配置文件--log-file:指定保存 profile 信息的文件
Loading asciinema cast...
执行仿真
执行 awnntools simulate 命令完成模型仿真,利用仿真数据核验板端推理结果。
awnntools simulate configs/yolov5_config.yml
simulate:子命令,功能是对配置文件描述的模型进行仿真configs/yolov5_config.yml:指定仿真所需的配置文件
Loading asciinema cast...
仿真结束后,推理的结果保存在 results 目录下。
板端快速部署
编译推理工具
执行 make menuconfig,选中 awnn 中间件配置以及验证工具,重新编译 SDK 生成 awnn_verify 工具。
OpenWrt Configuration
Allwinner --->
Vision --->
<*> awnn_runtime....................... Allwinner NPU (AWNN) runtime librarys
<*> awnn_verify........................................... awnn verify toools
awnn_runtime:NPU 运行相关的中间件awnn_verify:模型板端推理工具
将推理文件推送至板端
将 yolov5s 仿真结果推送到板端设备中,包含的文件及目录格式如下:
~/awnn_sdk/toolkits/example/yolov5s-ver$ tree
.
├── models
│ ├── yolov5s_ipu.bin
│ └── yolov5s_ipu.param
└── results
└── images_dog.jpg
├── config.txt
├── images_fp32.bin
├── images_int8.bin
├── _model.24_Reshape_1_output_0_fp32.bin
├── _model.24_Reshape_1_output_0.npy
├── _model.24_Reshape_2_output_0_fp32.bin
├── _model.24_Reshape_2_output_0.npy
├── _model.24_Reshape_output_0_fp32.bin
└── _model.24_Reshape_output_0.npy
3 directories, 11 files
板端执行推理
root@(none):/tmp/awnn/yolov5s-ver# awnn_verify results/images_dog.jpg/config.txt