2301_76761127/pi3-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

yyfz233/Pi3 — Ascend NPU

本仓库提供 Pi3 的 Ascend NPU-only 运行入口。验收只确认真实 NPU 前向、输出形状/数量、有限值和正常退出,不进行 CPU golden 或精度比较,也没有 CPU fallback。

零上下文复现

主模型与官方实现均固定到不可变 revision,并放在仓库相对目录:

git clone https://gitcode.com/hf_mirrors/yyfz233/Pi3.git model
git -C model checkout --detach ae722e7039287d0c8fde9f11f197f804f44b510c
git -C model lfs pull

mkdir -p third_party
git clone https://github.com/yyfz/Pi3.git third_party/Pi3
git -C third_party/Pi3 checkout --detach 9fa3ddb3f8d53041f8b2738df404f62223bbaa7b
git -C third_party/Pi3 apply ../../patches/pi3_npu.patch

python -m pip install --target ./pydeps --no-deps \
  -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

已验证平台为 Ascend 910_9362、CANN 8.5.1、Python 3.11、PyTorch 2.9 与 torch_npu 2.9.0.post1。容器保留平台提供的 CANN、torch 与 torch_npu; requirements.txt 仅安装锁版模型级依赖。 patches/pi3_npu.patch 仅把 3×3 torch.det 展开为等价张量算式,避免 Ascend 上该算子回落 CPU。

真实 NPU 命令

source /usr/local/Ascend/cann-8.5.1/set_env.sh
PYTHONNOUSERSITE=1 PYTHONPATH=./pydeps:./third_party/Pi3 \
  EVIDENCE_HOLD_SECONDS=90 \
  python3 inference.py --model_path ./model --source_path ./third_party/Pi3 \
  --device npu:1 --seed 20260817 --output_json result.json

入口会在目标 NPU 上生成 8 组四视角输入并执行 8 次真实前向,产出 points、local_points、conf 与 camera_poses。设备必须为 npu:N;输出数量/形状、NaN/Inf 或退出状态异常会直接失败。

EVIDENCE_HOLD_SECONDS 可在真实 forward 后保持模型、输入与输出存活 0–600 秒,便于同时采集 PID、完整命令和 npu-smi info。

最终托管结果与双份截图

最终托管运行在 npu:1 完成 8 次真实 Pi3 forward。模型、输入和输出均位于 npu:1;8 个四视角 224×224 样本共输出 44,544 个值,全部 finite,退出码为 0。 结果截图记录的 forward_ms=606801.539493259 包含证据保持时间。两张设备图分别取自 07:12:22 与 07:15:18 UTC,均清晰显示 npu:1 上同一 PID 31699 及其显存占用。

  • assets/agent_workflow.png
  • assets/agent_workflow_2.png
  • assets/npu_device_call.png
  • assets/npu_device_call_2.png
  • assets/model_result.png
  • assets/model_result_2.png

Agent workflow

Agent workflow duplicate

NPU device call

NPU device call duplicate

Model result

Model result duplicate

本仓为 2301_76761127 队伍交付件(与备份账号合并提交)。