Files
calculet-npu-research-archive/reports/Calculet-NPU-分层打包与下载优先级建议-20260801.md
T

9.2 KiB
Raw Blame History

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.bin9,404,557,312 B
  • param_blk1.bin8,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、命令表和算子静态分析的增量价值最低。建议最后下载,优先考虑:

  1. 对方提供阿里云 OSS 预签名上传地址。
  2. 备用 VPN 节点或 SSH 白名单直连。
  3. 国内云主机中转。
  4. 只能继续当前 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 压缩包 端到端运行与回归

当前下载任务应如何调整

建议执行以下调度策略:

  1. 不丢弃任何已下载 .incoming 前缀。
  2. 暂停完整 user2-live-home,其高价值 llm 目录改由小包优先取得。
  3. 生成并优先下载约 21 MB 的 00-critical-context
  4. 随后完成已到 57.15% 的 baseline,避免继续积累半成品。
  5. 生成并下载 01-model-runtime-no-weights
  6. 完成完整 llama.cpp
  7. 再依次取得 OCI、容器 /home 和完整用户目录。
  8. 模型权重继续保持暂停,直到获得更快通道或前述资料全部完成。

分片与传输建议

  • 新包采用 64 MiB 分片,不再使用 8 MiB 分片,减少 SSH 建连和校验调度次数。
  • 每个分片和整包均生成 SHA-256。
  • 本地下载器改为固定 worker pool,完成一个分片立即补下一个,不按三文件成批等待。
  • SSH 无数据超时从 180 秒提高到 600 秒,降低高丢包时的无效重连。
  • 4/8/12 并发做十分钟 A/B,按有效文件增长而不是 VPN 字节数选择并发。
  • 已压缩的 .tar.gz、OCI 和参数块不启用 SSH 压缩。
  • 远端原始归档和旧分片在本地整包验证完成前全部保留。

最小可工作集

如果目标是尽快开始算子、新模型和接口优化,最小可工作集为:

  1. 00-critical-context
  2. 01-model-runtime-no-weights
  3. 完整 llama.cpp
  4. 现有 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、直连或中转解决,才是整体时间从数天降到数小时的关键。