analytical-viz: Auto Suggest tab — add Top-10 by memory footprint table

Adds a second table beneath the Pareto configurations table, sorted by
(hbm_utilization ↑, pes_used ↑, latency ↑) — top 10 smallest-memory
Pareto configs first.

Columns highlight the memory story:
  HBM % | weights (GB) | KV (GB) | PEs | SIPs | lat (ms) | CP TP PP DP | kv | ffn | tp_place | cp_place

Useful when memory pressure is the real binding constraint of a
deployment — e.g., picking a config for a per-PE HBM-limited SIP,
or spotting configs that trade small latency headroom for large
memory savings.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 22:24:38 -07:00
parent 1bce080d79
commit 770aed6291
+29
View File
@@ -1685,6 +1685,35 @@ def _render_auto_explore_tab():
_df = pd.DataFrame(_rows) _df = pd.DataFrame(_rows)
st.dataframe(_df, width='stretch', hide_index=True) st.dataframe(_df, width='stretch', hide_index=True)
# ── Top-N by memory (smallest → largest) ─────────────────────
st.markdown(
"**Top 10 configurations by memory footprint** "
"(smallest HBM% first). Useful when memory pressure is the "
"real binding constraint of your deployment."
)
_pareto_by_mem = sorted(
_res.pareto_scores,
key=lambda s: (s.hbm_utilization, s.pes_used, s.total_latency_ns),
)[:10]
_mem_rows = []
for i, s in enumerate(_pareto_by_mem):
_mem_rows.append({
"#": i,
"HBM %": round(s.hbm_utilization * 100, 1),
"weights (GB)": round(s.weights_gb, 2),
"KV (GB)": round(s.kv_gb, 2),
"PEs": s.pes_used,
"SIPs": s.sips_used,
"lat (ms)": round(s.latency_ms, 3),
"CP": s.cp, "TP": s.tp, "PP": s.pp, "DP": s.dp,
"kv": s.kv_shard_mode,
"ffn": s.ffn_shard_scope,
"tp_place": s.tp_placement,
"cp_place": s.cp_placement,
})
_df_mem = pd.DataFrame(_mem_rows)
st.dataframe(_df_mem, width='stretch', hide_index=True)
# ── Parallelism sensitivity subplots ────────────────────── # ── Parallelism sensitivity subplots ──────────────────────
st.markdown( st.markdown(
"**Parallelism sensitivity** — for the *baseline* config picked " "**Parallelism sensitivity** — for the *baseline* config picked "