本文档记录 vit_small_patch16_dinov3.lvd1689m 在 Ascend 910B4 NPU 上的推理适配与验证结果。
模型是基于 DINOv3 自监督方法训练的 Vision Transformer (ViT-Small) 图像特征提取模型,支持 256×256 输入分辨率,输出 384 维特征向量。
适配要点:
model.to("npu:0")相关获取地址:
| 组件 | 版本 |
|---|---|
timm | 1.0.27 |
torch | 2.9.0+cpu |
torch-npu | 2.9.0.post1+gitee7ba04 |
CANN | 8.5.1 |
Python | 3.11.14 |
OS | Linux 5.10.0 (aarch64) |
1 逻辑卡 (Ascend 910B4)32768 MiB推理脚本 inference.py 支持以下模式:
python3 inference.py --image /path/to/image.jpgpython3 inference.py --randompython3 inference.py --image /path/to/image.jpg --npu-only脚本默认使用 DINOv3 的标准预处理管线:
python3 inference.py --random预期输出:
Model: vit_small_patch16_dinov3.lvd1689m
Device: npu:0
Output shape: torch.Size([1, 384])
Latency: ~20-30 ms
Cosine similarity vs CPU: > 0.9999测试条件:单卡 Ascend 910B4,输入 (1, 3, 256, 256),FP32,重复 100 次取平均。
| Batch Size | Latency (ms) | Throughput (samples/s) |
|---|---|---|
| 1 | 27.65 | 36.17 |
| 2 | 26.06 | 76.74 |
| 4 | 21.49 | 186.10 |
| 8 | 25.78 | 310.36 |
注:小 batch 下算子下发开销占比较高,增大 batch 可显著提升吞吐。
与 CPU (FP32) 进行逐元素对比,覆盖 5 组随机种子:
| 指标 | 数值 |
|---|---|
| Cosine Similarity | 0.999998 |
| Normalized MAE | 0.20% (目标 < 1%) |
| Max Absolute Error | 0.003 |
| MSE | 6.5e-7 |
所有种子均 PASS,精度达标。
HF_ENDPOINT=https://hf-mirror.com 以加速下载。torch.npu.device_count() 确认可用设备。