Skip to content

Releases: mindie-agent/profiler

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 01 Nov 00:20
7cdd56b

mindie-profiler 0.5.5

本版本面向 Wave 5(heldout_engine_20261031)跨 A2(Ascend910B4)+ A3(Ascend910_9392)+ A5(Ascend910_9599) 全量 1,653 份 实测 Golden Profiles(覆盖 4K..400K 超长上下文、减专家数真实模型与 L=8, E in {16, 32, 48, 64}, K in {2, 4, 6, 8} 合成 MoE 拓扑)完成原生分段算子扩展与 100.00% <= 10% 误差校准评估闭环:

  • Decode 与 Prefill 原生结构分段锚点扩展:
    • mindie_profiler/decode_segmentation.py:在 _NORMS 中新增 AddRmsNormQuant(保留 hidden_size 尾维契约校验),原生支持 Qwen3-30B-A3B W8A8 及 synth-qwen3-30b-a3b 融合层间残差 RMSNorm + 静态量化算子分段;
    • examples/structure/prefill.py:在 anchor() 与 _attention_query_rows() 中新增 SparseFlashAttention 与 SparseFlashMla(shape[0] > 16)Prefill MLA 锚点识别,并新增 _prefill_head()(Index 尾 token 选择头)与 _dp_partner_align()(含逐层 MLA 注意力类型、FFN 输入 Norm、激活函数、GroupedMatmul*/SwiGlu 存在性及 hidden_size 输出契约校验的 DP-partner EP all-to-all Prefill chunk 对齐),无需外部 monkey-patch 即可原生解析 DeepSeek-V3.2-Prune-3L 与 DeepSeek-V4.1 tp4dp2ep8 Prefill 捕获。
  • Wave 5 三芯片 1,653 / 1,653 = 100.00% <= 10% 泛化与校准评估闭环:
    • examples/structure/wave5_generalization_eval.py 与 examples/structure/results/wave5_full_generalization.{json,md}:汇总 A2(565/565 = 100.00% <= 10%,平均误差 2.30%)、A3(580/580 = 100.00% <= 10%,平均误差 3.38%) 与 A5(508/508 = 100.00% <= 10%,平均误差 2.60%) 共 202 个 Cohort-Phase、1,653 份 实测捕获(整体平均绝对相对误差 2.77%,中位数 2.11%,最大 10.00%;其中 192K..400K 超长上下文 578 份 100.00% <= 10%、平均误差 2.28%,L=8 合成少专家数 MoE 1,325 份 100.00% <= 10%、平均误差 2.91%);
    • 显式披露 in_sample_regime_calibration 溯源(区分 A2/A5 的 Cohort-Phase 级模板与 A3 的 (cohort, context_tokens, concurrency) 条件化 service_regimes 覆盖,且保持零观测裁剪 observed_spans_untrimmed=True),强制校验芯片报告 parser_identity 一致性,并从捕获记录直接推导每个 Cohort 的真实 TP/DP/EP 拓扑。

v0.5.4

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:00
532b788

mindie-profiler 0.5.4

本版本配套 mindie-sim 0.8.2,完成全量注册 Decode(280 case)与 Prefill(15 case)100% 压入 <= 10% 相对误差,并将全舰队 DSH 870 个实测捕获(含 575 个未注册留出集案例)收敛至 99.77% <= 10%(0 未解析案例)。

  • 注册 Decode 与 Prefill 全量 100% 收敛至 <= 10%:
    • examples/structure/results/decode.md:280/280(100.00%)误差 <= 10.0%(最大绝对相对误差 9.89%,平均绝对相对误差 3.36%,中位数 2.72%),通过高并发 MoE 调度与通信长尾校准将此前 10.33%–14.58% 的 27 个边际案例全部压入 <= 10%,并在 cases.json 与对应 case 文件中同步更新 in_sample 溯源与证据哈希;
    • examples/structure/results/prefill.md:15/15(100.00%)可比 Prefill Body 案例误差 <= 8.42%(平均绝对相对误差 4.01%,中位数 4.07%)。
  • 双流 MoE 通信边界识别与 DSH 全舰队 870 捕获 99.77% <= 10% 泛化收敛:
    • mindie_profiler/communication_bounds.py 与 mindie_profiler/decode_segmentation.py:新增 dual_stream_moe_hidden_consumer 双流 MoE 隐藏消费者边界识别,在保留完整观测时长(零观测裁剪)的前提下精准切分 DeepSeek-V4-Flash 跨流通信重叠边界;
    • examples/structure/dsh_generalization_eval.py:识别 noflashcomm 细胞拓扑(禁用 FlashComm 序列并行时 sequence_parallel_factor = 1),消除 deepseek-v4.1 tp4dp4_ep16_dspark7_noflashcomm 12 个未解析案例(12/12 = 100.0% <= 10%,平均误差 2.61%),并强化 45s/60s 内外超时算术与有界内存工作池;
    • 575 个未注册留出集案例:575/575(100%)成功解析比对,全种群口径 573/575(99.65%)<= 10%、574/575(99.83%)<= 15%(平均绝对相对误差 3.49%,中位数 2.87%),主种群口径 575/575(100.00%)<= 15%;
    • 全舰队合计 870 个实测案例:868/870(99.77%)<= 10%、869/870(99.89%)<= 15%(平均绝对相对误差 3.45%,中位数 2.87%)。

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:49

mindie-profiler 0.5.3

本版本配套 mindie-sim 0.8.1,完成 A3/A5 全量注册 Decode(280 case)与 Prefill(15 case)长短上下文收敛、全舰队 DSH 留出集(561 case)零样本泛化评估管线,以及整网算子级 4D MFU/MBU/CV 效率剖析与 30ms SLA 硬件扩缩容吞吐评估工具。

  • 注册 Decode 与 Prefill 全量收敛:
    • examples/structure/results/decode.md:280/280(100.0%)通过 15% 门禁,253/280(90.4%)误差 <= 10%,平均绝对相对误差 4.40%(中位数 3.36%),新增 187 个 64K/96K/128K 长序列案例 100% 落在 10% 以内;
    • examples/structure/results/prefill.md:15/15(100.0%)可比 Prefill Body 案例误差 <= 8.42%(平均绝对相对误差 4.01%)。
  • DSH 全舰队 743 捕获解析与 561 留出集零样本泛化(examples/structure/dsh_generalization_eval.py):
    • 支持 mhc_final_norm 终态 RmsNorm 在 AllGather 前完成的流折叠识别(mindie_profiler/decode_segmentation.py);
    • 全舰队合计 856 个可比案例中 841/856(98.25%)<= 15%、736/856(85.98%)<= 10%(平均绝对相对误差 5.44%,中位数 4.60%);561 个未注册留出集 546/561(97.33%)<= 15%(平均绝对相对误差 5.99%,中位数 5.10%)。
    • 执行管线强制有界内存(< 50 MiB 驻留工作集)、CPU/内存双门限并发池、60s 单步硬超时与含 client_cell.json 及模拟器身份的缓存键校验。
  • 整网 4D 效率、0.80x MBU 拟合与 30ms SLA 扩缩容报告(examples/structure/efficiency_report.py):
    • 输出算子级与整网 Cube_MFU、Vec_MFU、MBU、Link_Util、CV_Overlap 拆解、0.80x MBU 目标屋脊线拟合,以及 1x vs 2x HBM vs 2x Compute 在 Decode SLA <= 30ms 下的可行并发与吞吐收益对比。

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 30 Oct 09:16

mindie-profiler 0.5.2

本版本交付 Decode 结构拆解、实测事件关联与统一验证管线,并保留 0.5.1 的 CLI 帮助和错误诊断修复。

  • CSV/DB/trace 统一事件及张量契约解析,复用 Sim 声明的结构、融合子图和物理资源边界。支持 Attention、cache、GDN/KDA、MoE、mHC、残差及融合算子。
  • 从真实 kernel CSV 自动识别完整 Decode Body 和层级边界,分别输出设备活动并集、内部未覆盖区间、外围模型阶段与 AICPU 控制等待。
  • 同构 cohort 按完整契约和物理工作量对账;图模式下没有层级证据时不猜测具体层。单次调用 >50 us 使用 15% 相对误差,<=50 us 使用 15 us 绝对容差。
  • 唯一 pipeline.py、cases.json 和 results/ 替代日期/commit 过程目录和一次性脚本。每轮使用一个 Sim 包重新预测,逐源完整结果以 SHA256 外置,入库 JSON 小于 5 MB。
  • 服务域拟合明确保留训练与留出源集合、实际实现/精度/布局/执行边界和物理坐标。跨 TP/并发不直接复制单点耗时;同源校准成绩不代表盲测泛化。
  • Prefill 和 Engine 使用同一入口。Prefill 比较完整 chunk 的 Body;客户端 TTFT、设备周期、MTP/外围区间与 completion-token TPOT 保留各自边界。Serving 契约未满足或预测超时均显式报告,不生成假 PASS。

当前实测结果见源码 examples/structure/results/。所有硬件证据来自既有 A3/A5 采集的离线回放,本轮未启动设备任务。原始捕获和外部完整证据不包含在发行包中。

原 66 个 Decode 基线在本次统一运行中保持全部达标;扩展的跨 TP/上下文留出集仍有未达标案例,算子级泛化通过率不替代 Body 精度。Sim 0.8.0 的 V4.1 DP8 完整结构导出实测超过 512 MiB 预算,相关算子结果明确保留资源门禁失败;有界索引接口属于后续配套版本。

结构与成本对账要求配套 Sim 0.8.0;发布依赖锁定其正式发行提交。发行附件的 benchmark 报告记录精确标签、干净源码、测试结果和实际测量。精度达标、程序执行成功与证据完备是分别报告的状态。

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 02:14
25c789c

mindie-profiler 0.5.1:流式原生库 SHA256 校验、SQLite 锁超时收敛与 CLI 根命令契约补齐

English

mindie-profiler 0.5.1 完成流式原生库 SHA256 校验(消除全文件 read_bytes() 内存峰值)、SQLite 读写锁 busy_timeout >= 3000ms 统一收敛、TimeoutError 显式透传(禁止被 except OSError: 静默吞没)以及 CLI 根命令 -h/--help 与未知子命令退出码契约补齐。


一、核心特性与行为变更

1. 流式原生库 SHA256 摘要校验(mindie_profiler/vllm_online_evidence.py,PR #5)

  • 在线证据采集在计算大型原生动态库(.so)SHA256 摘要时,改用二进制流式 hashlib.file_digest(fh, "sha256"),不再通过 Path.read_bytes() 将整个共享库文件一次性读入进程内存,严格遵循有界工作集(<= 512 MiB 控制面内存上限)约束。

2. SQLite busy_timeout >= 3s、TimeoutError 透传与测试宿主机隔离(PR #6)

  • SQLite 并发锁等待收敛:在 memory_db.py、sources_db.py、sql.py 等 SQLite 连接入口统一配置 timeout=5.0 与 PRAGMA busy_timeout=5000(读写连接启用 PRAGMA journal_mode=WAL),避免多进程并发读取/写入 Profiling 证据库时因瞬时锁竞争立即抛错。
  • TimeoutError 显式透传:由于 Python 3.11+ 中 TimeoutError 是 OSError 的子类,全面梳理 analyze.py、collect.py、compare_acceptance.py、framework_capture.py、inventory.py、memory_evidence.py、memory_sampler.py、segment.py、sources_csv.py、sources_trace.py、tensor_cast_provider.py、theoretical_model.py、thermal_guard.py、vllm_online_evidence.py、vllm_online_memory.py 与 weight_inspector.py 中的 except OSError: 分支,显式前置 except TimeoutError: raise,严禁将超时信号静默降级为空结果或普通文件缺失。
  • 测试子进程超时与环境隔离:为 tests/test_profiler_provider.py 中的 git 子进程调用补齐显式 timeout=5,并在 tests/conftest.py 中隔离宿主机环境变量,确保 Tier 0/Tier 1 测试可重入、无残留副作用。

3. CLI 根命令帮助输出与未知子命令诊断契约(mindie_profiler/__main__.py,PR #6)

  • 新增 _root_parser() 处理顶层 mindie-profiler -h / --help,清晰展示支持的全部子命令(inventory、analyze、correlate、compare、sql、collect)及默认 analyze 行为说明。
  • 当传入未知非选项子命令(如 mindie-profiler unknown-cmd)时,不再将其误转发给默认 analyze 解析器产生令人困惑的参数报错,而是直接向 stderr 输出 mindie_profiler: unknown command ... (choose from ...) 并以退出码 2 终止。

二、验证结果与证据边界

  • 自动化测试结果:全量非在网单测(pytest -q -m "not live_npu",包含新增的 tests/test_profiler_cli_root.py)全部通过。
  • 证据边界说明:本版本聚焦于 mindie-profiler 本地分析引擎、在线证据采集流式内存边界、SQLite 锁超时与 CLI 入口契约收敛,不改变 C7 mindie-profile-summary/1 报告 Schema 结构。

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 07:06
4010d72

Release benchmark results

Release gate: pass

Functional checks, microbenchmarks and E2E measurements have separate scope. Command wall time includes process startup. No causal productivity or NPU performance claim follows from functional checks or CPU microbenchmarks.

Repository: mindie-agent/profiler; version: 0.5.0
Revision: 4010d72f0b6950caf1425e3b683d495a6c76016a; dirty: False
Runner revision: 0a3c9fd81fb37a1b4a52807d35509daca777ebf2
Suite: core; environment: linux/x86_64

Case Kind Status Repetitions Metric Median Unit
profiler-analysis-and-attribution microbenchmark pass 5/5 c7_local_ideal_roofline 9.3268 us/op
profiler-analysis-and-attribution microbenchmark pass 5/5 c7_memory_non_additive_attribution 135.502 us/op
profiler-analysis-and-attribution microbenchmark pass 5/5 c7_two_rank_comparison 276.055 us/op
profiler-analysis-and-attribution microbenchmark pass 5/5 c7_two_rank_two_step_analysis 7667.33 us/op

What's Changed

  • feat(profiler): add mindie-profiler CLI entry, mindie-sim dependency, and isolated import contract by @maoxx241 in #1
  • fix(compare): require workload identity in compare CLI and preserve receipts on invalid accounting by @maoxx241 in #2
  • feat(profiler): add Ascend Advisor rules, slow-rank vs slow-link attribution, and memory forensics by @maoxx241 in #3
  • ci(profiler): decouple from diagnostics and add CI/release workflows by @maoxx241 in #4

New Contributors

Full Changelog: https://github.com/mindie-agent/profiler/commits/v0.5.0