← 返回文档
海思平台 (Hi3519DV500)
海思 Hi3519DV500 SVP NNIE NPU
Hi3519DV500 芯片集成了基于华为 SVP NNIE 架构的专用 NPU。soundSDK 利用此 NPU 实现低功耗、实时的声音推理。
关键特性
项目
详情
CPU
双核 ARM Cortex-A55 @ 1GHz
NPU
SVP NNIE(仅支持 INT8——不支持 FP32/FP16 NPU 推理)
NPU 模型格式
`.om`(DaVinci 离线模型,通过 ATC 工具转换)
音频采集
MPP SDK(`ss_mpi_ai_*`)
采集类型字符串
`"mpp"`
引擎类型字符串
`"svp_acl"`
交叉编译器
`aarch64-v01c01-linux-gnu-gcc`
重要:仅 INT8
海思 NPU 仅支持 INT8 量化推理。ATC 编译器通过校准数据将浮点 ONNX 模型转换为 INT8。使用 compile_mode=0(A8W8——激活值和权重均量化为 8 位)。
模型准备流程
# 第 1 步:生成校准数据(Windows 上执行)
cd c/py
python generate_calibration.py # 生成 500 个 .bin 文件 + calibration_data.bin
# 第 2 步:导出 ONNX 模型(Windows 上执行)
python export_model_onnx.py \
--model ../../path/to/trained/model.h5 \
--output cry_detect.onnx
# 第 3 步:ONNX → INT8 .om 转换(在有海思 SDK 的 Linux 上执行)
atc --model=cry_detect.onnx \
--framework=5 \
--output=cry_detect_int8_v4 \
--soc_version=Hi3519DV500 \
--input_shape="input:1,1,225,225" \
--input_format=NCHW \
--image_list=calibration/calibration_data.bin \
--compile_mode=0编译
cd c/hisi3519
NPU=1 ./build.sh输出:cry_detect(ARM64 可执行文件,链接 libsvp_acl)
部署到目标板
# 通过 SCP 拷贝到 SD 卡
scp cry_detect cry_detect_int8_v4.om root@192.168.0.106:/mnt/sdcard/
# 运行(NPU 模式)
./cry_detect -f test.wav -e svp_acl -w cry_detect_int8_v4.om
# 与 CPU 基线对比验证
./cry_detect -f test.wav -e pure_c -w model_weights.bin精度验证
INT8 量化通常与 float32 的概率差异 < 0.02。对比输出以验证:
# NPU 推理
./cry_detect -f test.wav -e svp_acl -w cry_detect_int8_v4.om
# CPU 推理(参考)
./cry_detect -f test.wav -e pure_c -w model_weights.bin已知限制
1. NPU 需要填充输入:225×225 → 225×228(每行末尾补 3 个零)
2. 输出张量为 [1,4] 而非 [1,2](含反量化参数)
3. svp_acl 引擎通过条件编译(NPU=1)构建——标准构建不包含 NPU 支持