# 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 B - `param_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、命令表和算子静态分析的增量价值最低。建议最后下载,优先考虑: 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、直连或中转解决,才是整体时间从数天降到数小时的关键。