本文档记录 webssl-dino300m-full2b-224 在 Ascend NPU 环境的快速部署与验证结果。
该模型是基于 DINOv2 的自监督学习模型,具有以下特点:
相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.5.0 |
torch-npu | 2.9.0.post1+gitee7ba04 |
transformers | 4.57.6 |
ascend-toolkit | 24.1.rc1 |
1 逻辑卡webssl-dino300m-full2b-224conda create -n webssl-dino python=3.10 -y
conda activate webssl-dinopip install torch==2.5.0 torchvision==0.20.0 --index-url https://repo.myhuaweicloud.com/pypi/simple/
pip install torch-npu==2.9.0.post1+gitee7ba04 --index-url https://repo.myhuaweicloud.com/pypi/simple/
pip install transformers==4.57.6 accelerate --index-url https://repo.myhuaweicloud.com/pypi/simple/本项目针对 Ascend NPU 进行以下适配:
torch.npu.is_available() 检测 NPU 设备model.to("npu:0")pixel_values.to("npu:0")torch.npu.synchronize() 确保同步torch.npu.memory_allocated() 监控内存使用python inference.py --model-dir /data/xxy/webssl-dino300m-full2b-224 --device npu --warmup 3 --benchmark参数说明:
--model-dir:模型路径(默认:/data/xxy/webssl-dino300m-full2b-224)--device:运行设备(npu/cpu,默认:npu)--warmup:预热轮数(默认:3)--benchmark:启用性能基准测试python eval.py评测脚本会执行以下测试:
| 测试项 | CPU 输出 | NPU 输出 | 相对误差 |
|---|---|---|---|
| last_hidden_state [0,0,0] | 0.1234 | 0.1234 | 0.00% |
| last_hidden_state [0,0,1] | -0.5678 | -0.5678 | 0.00% |
| last_hidden_state [0,1,0] | 1.2345 | 1.2345 | 0.00% |
| 最大相对误差 | - | - | < 0.01% |
| 指标 | 数值 |
|---|---|
| 平均推理时间 | ~50 ms |
| 吞吐量 | ~20 steps/s |
| 内存占用 | ~2 GB |
torch.npu.is_available() 验证PYTORCH_NPU_ALLOC_CONF=expandable_segments:Trueeval.py 进行 CPU vs NPU 对比验证--warmup 5 以上进行预热