9.2 KiB
Calculet NPU 分层打包与下载优先级建议
日期:2026-08-01
执行状态更新:第 1-8 步现已全部完成,包括关键上下文、基线、无权重运行时、完整源码、容器 /home、OCI 镜像、完整 /home/user2 和完整模型归档。下文保留当时的资源判断与调度依据,用于解释取数顺序和性能调优资料的完整范围。
结论
建议继续保留“最终全部取回”的目标,但改变下载顺序:先取得高信息密度、不可替代且能立即支持源码与算子分析的资料,再取得完整运行环境,最后取得模型参数和重复性较高的取证数据。
当前链路的主要问题是 VPN 丢包导致 SSH TCP 拥塞窗口频繁降到 1。仅增加压缩或改用 scp 无法解决;分层打包的价值在于让关键资料在 1-3 小时内可用,而不是等待全部资料 3-4 天。
资源价值判断
第一类:立即开展分析所必需
这些资源决定我们能否分析接口、编译关系、调用链、算子布局和新模型接入方式。
| 资源 | 当前大小 | 价值 | 建议 |
|---|---|---|---|
| 基线分析归档 | 436,398,080 B | 包含 SDK、驱动/硬件环境、模型元数据、工具、历史源码包和构建复现包 | 当前已完成 57.15%,优先完成 |
完整 llama.cpp 仓库 |
264,921,801 B | 完整 .git、工作树、build、对象文件、测试和生成产物 |
基线完成后立即下载 |
| CalRT SDK | 310,976 B | 头文件、CMake 配置和 CalRT 0.7.6 动态库 | 可单独快速取回;基线中已有副本 |
| 环境清单 | 364,368 B | PCIe、驱动、内核参数、CPU、包版本、Podman 和源码状态 | 必须保留 |
| 模型元数据 | 7,146,468 B | YAML、profparts、I/O buffer layout、词表和内存布局 | 必须保留 |
| 远端工具 | 3,358,991 B | 原始运行脚本和容器启动脚本 | 必须保留 |
| 服务支持文件 | 5,768,962 B | server/CLI/bench 脚本、测试脚本和测试用例 | 必须保留 |
/home/user2/llm |
3,493,888 B | 客户端、提示词、性能 CSV、测试用例和启动脚本 | 必须优先取回 |
SDK、环境、元数据、工具、支持文件和用户测试目录合计不足约 21 MB。建议组成独立的 00-critical-context-20260801.tar.zst,使关键上下文不依赖 436 MB 基线包完成后才能使用。
第二类:模型算子分析所必需,但不含权重
完整模型原始文件共 18,749,687,350 B,其中两个参数块占 18,186,784,768 B,约为 97%。其余约 562,902,582 B 才是当前算子和编译产物分析的重点:
| 内容 | 原始大小 | 用途 |
|---|---|---|
| runtime command 文本 | 423,772,059 B | 分析 prefill/decode 调度、命令序列和双芯片行为 |
非参数 .bin |
约 85.5 MB | ping/pong、PLD CPU 等运行二进制 |
| CCU ELF | 24,353,680 B | 指令与 kernel 静态分析 |
| Tokenizer JSON/GGUF 等 | 约 27.8 MB | 新模型接入、词表和服务行为复现 |
| YAML、profparts、I/O layout | 约 1.2 MB | shape、buffer、芯片映射和编译配置 |
| CPU 运行库 | 261,688 B | Host/RISC-V 辅助执行路径 |
建议在远端生成 01-model-runtime-no-weights-20260801.tar.zst,明确排除:
param_blk0.bin,9,404,557,312 Bparam_blk1.bin,8,782,227,456 B
命令表是文本,压缩率预计较高。该包生成后需要实测大小,但应远小于 563 MB。它对算子优化的价值远高于两个参数块,应排在 OCI 镜像和完整用户目录之前。
第三类:精确重建运行环境
| 资源 | 大小 | 重复关系 | 建议 |
|---|---|---|---|
| OCI 镜像 | 1,646,166,016 B | 最完整的 OS、依赖、二进制和镜像层 | 精确重建首选,第二阶段优先 |
容器完整 /home |
740,994,223 B | 与 OCI 镜像部分重复,但更容易直接检查工具链和源码 | OCI 之后取得 |
| 构建复现包 | 10,408,099 B | 基线与完整仓库中有重叠 | 基线中保留即可 |
如果只能在 OCI 和容器 /home 中二选一,应优先 OCI;它能还原完整镜像。容器 /home 适合快速静态分析,但不能单独重建基础系统和镜像层。
第四类:用户侧测试历史与取证数据
完整 /home/user2 压缩归档为 1,684,911,580 B。其原始空间主要由 /home/user2/.local 占用:
.local:约 1.457 GB,主要是 rootless Podman 存储,与 OCI 镜像高度重复。llm:约 3.49 MB,包含高价值测试脚本、提示词和性能日志。- Shell 配置和历史:不足 10 KB,但对环境还原和审计有价值。
- 两个早期源码抽取包:约 32.65 MB,本地已有副本且与完整仓库重复。
建议先生成 02-user-workspace-no-container-store-20260801.tar.zst,包含:
/home/user2/llm.bash_history、.bashrc、.profile、.bash_logout/home/user2/calbin_inspect.cpp
排除:
/home/user2/calculet-analysis-export/home/user2/.local/share/containers- 缓存目录
- 已在本地保存、且会由完整归档再次覆盖的两个顶层源码 tar
完整 user2-live-home 仍保留在最终取回清单,但放到取证阶段,不再与关键资料抢带宽。
第五类:模型参数
| 文件 | 原始大小 | 作用 |
|---|---|---|
param_blk0.bin |
9,404,557,312 B | 双芯片模型参数块 0 |
param_blk1.bin |
8,782,227,456 B | 双芯片模型参数块 1 |
两个参数块对运行完整 Qwen3-30B-A3B 必不可少,但对当前源码调用链、API、buffer layout、命令表和算子静态分析的增量价值最低。建议最后下载,优先考虑:
- 对方提供阿里云 OSS 预签名上传地址。
- 备用 VPN 节点或 SSH 白名单直连。
- 国内云主机中转。
- 只能继续当前 VPN 时,再恢复现有模型分片下载。
模型参数不能永久舍弃。它们只是后置,最终仍需按 SHA-256 完整取回,用于端到端性能、精度和回归验证。
推荐打包清单
| 顺序 | 建议包 | 主要内容 | 预计规模 | 目标 |
|---|---|---|---|---|
| 0 | 00-critical-context |
SDK、环境、模型元数据、工具、支持文件、用户测试目录、清单 | 约 21 MB 原始 | 立即可分析 |
| 1 | 现有 baseline | 历史源码包、构建复现、全部基础资料 | 还剩约 187 MB | 保留历史调优路径 |
| 2 | 01-model-runtime-no-weights |
command、ELF、非参数 bin、Tokenizer、YAML、profparts、SO | 563 MB 原始,压缩后待测 | 算子与编译产物分析 |
| 3 | 现有完整 llama.cpp |
完整 Git、build、测试和生成产物 | 还剩约 256.5 MB | 源码和版本分析 |
| 4 | 02-user-workspace-no-container-store |
用户测试脚本、提示词、CSV、Shell 配置 | 约 4 MB,不含已有源码包 | 测试复现 |
| 5 | OCI 镜像 | 完整镜像 | 1.646 GB | 精确重建环境 |
| 6 | 容器 /home |
工具链、依赖和源码副本 | 741 MB | 静态检查和补充 |
| 7 | 完整 /home/user2 |
包含 rootless Podman 存储的完整取证包 | 1.685 GB | 最终完整性 |
| 8 | 模型参数/完整模型 | 两个参数块及完整模型目录 | 16.285 GB 压缩包 | 端到端运行与回归 |
当前下载任务应如何调整
建议执行以下调度策略:
- 不丢弃任何已下载
.incoming前缀。 - 暂停完整
user2-live-home,其高价值llm目录改由小包优先取得。 - 生成并优先下载约 21 MB 的
00-critical-context。 - 随后完成已到 57.15% 的 baseline,避免继续积累半成品。
- 生成并下载
01-model-runtime-no-weights。 - 完成完整
llama.cpp。 - 再依次取得 OCI、容器
/home和完整用户目录。 - 模型权重继续保持暂停,直到获得更快通道或前述资料全部完成。
分片与传输建议
- 新包采用 64 MiB 分片,不再使用 8 MiB 分片,减少 SSH 建连和校验调度次数。
- 每个分片和整包均生成 SHA-256。
- 本地下载器改为固定 worker pool,完成一个分片立即补下一个,不按三文件成批等待。
- SSH 无数据超时从 180 秒提高到 600 秒,降低高丢包时的无效重连。
- 对
4/8/12并发做十分钟 A/B,按有效文件增长而不是 VPN 字节数选择并发。 - 已压缩的
.tar.gz、OCI 和参数块不启用 SSH 压缩。 - 远端原始归档和旧分片在本地整包验证完成前全部保留。
最小可工作集
如果目标是尽快开始算子、新模型和接口优化,最小可工作集为:
00-critical-context01-model-runtime-no-weights- 完整
llama.cpp - 现有 API 测试报告与环境源码分析报告
该集合不包含模型参数,不能离线运行完整 Qwen3,但足以完成:
- CalRT API 与 ABI 分析
- llama.cpp 调用链和 buffer 生命周期优化
- prefill/decode 命令、ELF 和 I/O layout 分析
- MoE、Attention、KV、DMA 和调度优化设计
- 新模型接入 schema 与工具链需求分析
- 指标、错误处理和服务接口设计
要执行真实精度和性能回归,再补 OCI 镜像和模型参数。
最终建议
继续“全部取回”,但不要继续让 18 GB 参数和 1.46 GB Podman 存储阻塞高价值资料。先在约 1-3 小时内形成可工作的分析集,再逐步补齐可复现环境和完整取证数据;模型参数通过 OSS、直连或中转解决,才是整体时间从数天降到数小时的关键。