dino-vitb16 昇腾 NPU 推理适配
ViT-B/16 DINO 自监督特征(特征提取)已完成昇腾 NPU 确定性 forward 适配:加载真实权重做确定性前向,minimal/精度/性能/稳定性/推理六件套全 PASS。精度 rel-L2<1% 或 cosine>=0.999 达标,NPU 上 20 轮逐位一致。#+NPU
架构路由结论:特征提取,DINO ViT-B/16(自监督),权重 ascend-model/。输入/输出为确定性前向口径,CPU 与 NPU 独立子进程同输入同权重对比(float32,不做归一化)。
一、真实环境(2026-08 实测)
| 组件 | 版本 |
|---|
| Python | 3.11.14 |
| CANN | 8.5.1 |
| torch / torch_npu | 2.9.0+cpu / 2.9.0.post1 |
| NPU | Ascend 910B 单卡(npu:0) |
二、权重
ascend-model/(tf_model.h5(329.8MB)、pytorch_model.bin(327.4MB)、README.md(0.0MB));SHA256/内容见下载清单。
三、验收结果(全部为本次实测)
| 阶段 | 结果 |
|---|
| 最小前向(CPU+NPU) | PASS:形状一致、全 finite |
| 精度(CPU/NPU 独立子进程) | PASS:rel_l2_cls=3.48e-03、cos=0.999994 |
| 性能(NPU warmup≥5 + runs≥20) | PASS:mean 6.2ms、p50 6.3ms |
| 稳定性(NPU 20 轮 batch1) | PASS:20/20 逐位一致(bitwise_identical=true) |
| 推理示例(NPU) | PASS:inference_results → finite |
(results/accuracy*.json / benchmark*.json / stability*.json / inference*.json)
四、脚本与复现
| 脚本 | 作用 |
|---|
common.py | 模型加载 + 确定性输入 + 权重证据 |
minimal_repro.py | 最小前向 smoke(CPU+NPU) |
accuracy_eval.py | CPU/NPU 独立子进程精度对比 |
benchmark.py | NPU 性能基准(warmup≥5 + runs≥20) |
stability.py | NPU 稳定性(20 轮 batch1) |
inference.py | 推理演示(NPU) |
cd /opt/atomgit/stella40/s23
python3 minimal_repro.py
python3 accuracy_eval.py
python3 benchmark.py
python3 stability.py
python3 inference.py
五、已知限制
- 验收聚焦确定性 forward(单样本 batch1);未跑完整推理/训练管线。
- 权重为 fp32 直接加载,未做量化/图编译优化(保持 CPU/NPU 逐位可比)。
六、真实运行截图
三张真实终端截图(用户网页终端手动截取上传,未做任何合成/修改):
| 截图 | 说明 | 路径 |
|---|
| 适配工作流 | 完整适配工作流(阶段/脚本/结果) | assets/agent_workflow.png |
| NPU 设备调用 | 真实模型 NPU 调用证据(设备/张量/算子) | assets/npu_device_call.png |
| 模型验收结果 | CPU/NPU 最终精度验收(rel-L2/性能/稳定性) | assets/model_result.png |
目录结构
assets/agent_workflow.png # 适配工作流截图
assets/npu_device_call.png # NPU 设备调用截图
assets/model_result.png # 模型验收结果截图
common.py # 公共模块
minimal_repro.py # 最小前向复现
accuracy_eval.py # 精度对齐
benchmark.py # 性能基准
stability.py # 稳定性
inference.py # 推理演示
results/*.json # 验收证据
README.md / .gitignore