原始权重: yolov10x.pt | 本项目: yolov10-800i-a2-tuning
YOLOv10-X 已在 华为昇腾 910B4-1 (Atlas 800 A2) NPU 上完成适配和性能优化,经 ATC 离线编译 .om (FP16) 后推理延迟从 CPU 16.39s 降至 4.29ms(3817x 加速),精度差异仅 -0.26%。
| 版本 | 关键优化 | 延迟 (bs=1) | FPS | 加速比(vs CPU) |
|---|---|---|---|---|
| CPU Baseline (FP32) | — | 16.39s | 0.06 | 1.0x |
| NPU Baseline (FP32) | — | 26.86ms | 37.2 | 610.6x |
| Opt3 (FP32) | Conv+BN 融合 + TQE | 18.18ms | 55.0 | 902.0x |
| Opt3 (AMP FP16) | + AMP FP16 推理 | 15.06ms | 66.4 | 1088.3x |
| Opt4 ATC .om | ONNX→onnxsim→ATC .om (FP16) | 4.29ms | 232.9 | 3816.5x |
| 指标 | Baseline FP32 | ACL .om FP16 | 差异 |
|---|---|---|---|
| mAP@0.5:0.95 | 58.40% | 58.14% | -0.26% ✅ |
| mAP@0.50 | 74.80% | 74.74% | -0.06% ✅ |
| mAP@0.75 | 64.40% | 64.38% | -0.02% ✅ |
| 延迟 | 26.86ms | 4.29ms | 6.25x 加速 |
Opt3 FP32: 18.18ms (55.0 FPS) → 1.48x vs Baseline
Opt3 AMP FP16: 15.06ms (66.4 FPS) → 1.78x vs Baseline
精度损失: mAP diff = -0.0018 ✅ (< 1%, 合规)# Baseline 推理
python inference.py --benchmark --warmup 100 --iters 200
# Opt3 推理 (硬编码 warmup=100, iters=200)
TASK_QUEUE_ENABLE=2 python inference_opt3.py --benchmark
# 精度验证 (Opt3 FP16 vs Baseline)
TASK_QUEUE_ENABLE=2 python inference_opt3.py --accuracy
# Opt4 ACL .om 推理(6.25x 加速)
python export_om.py --all --soc Ascend910B4
# 或仅运行精度评估
python eval_acl_accuracy.py| 项目 | 说明 |
|---|---|
| 硬件 | Ascend 910B4-1 NPU (Atlas 800 A2) × 1 |
| CANN | cann-8.5.0 |
| 模型权重 | yolov10x.pt ← 从 官方 Release 下载 |
| 数据集 | COCO val2017(5000 张) + instances_val2017.json |
| 精度评估子集 | COCO val2017 前 500 张(按 img_id 排序) |
| 依赖 | 见 requirements.txt |
# 一键配置环境
bash setup_env.sh --all
# 或者分步执行
pip install -r requirements.txt# Baseline (FP32)
python inference.py --benchmark --warmup 100 --iters 200
python inference.py --accuracy --max-images 500
# Opt3 (FP16 + TQE)
TASK_QUEUE_ENABLE=2 python inference_opt3.py --benchmark
TASK_QUEUE_ENABLE=2 python inference_opt3.py --accuracy
# Opt4 (ACL .om 离线编译)
python eval_acl_accuracy.py
# 或全流程 (默认静态ONNX导出, SOC需匹配NPU型号):
python export_om.py --all --soc Ascend910B4注意:ATC 编译时需指定
--framework=5(脚本已内置),并根据实际 NPU 型号设置--soc参数。可用npu-smi info查看 NPU 型号。CANN 版本不同可能需要调整 ATC 路径。
完整详细文档请参见 VERIFICATION_GUIDE.md、validation_report.md。