55653cbb3e
New last tab distilling the parallelism-selection discussion into
tables. Framed up-front as heuristics + hard constraints, not a
production procedure — with public counterexamples (DeepSeek-V3 PP16
no TP; vLLM PP-on-non-NVLink) that break the naive 'start TP at 8'
rule.
Ten sections, all table-first:
1. The core principle (chattiest comm on fastest links)
2. Parallelism techniques × comm profile (DP/TP/PP/CP/EP with
Shards, Pattern, Frequency, Per-link volume as degree ↑,
Hard ceiling)
3. Dominant problem → first axis to try (11 rows: weight fit,
activation memory, single-seq KV, many-seq KV, MoE experts,
TPOT, aggregate throughput, multi-node, expert layer, global
batch cap)
4. When to add / when to stop, per axis (DP/TP/PP/CP/EP/FSDP/SP)
5. Common misconceptions vs reality (9 rows: KV-head hard
ceiling, always start TP at 8, EP comm falling, attn-DP
shards KV for free, DP > CP always, PP inside domain
worthless, memory is only feasibility, FSDP as substrate,
pipeline bubble = (P-1)/m)
6. Inference decision procedure (7 ordered steps)
7. Inference cases → recommended shape (A–E: fits on 1 GPU /
within NVLink / multi-node / extreme context / many moderate)
8. Training baseline recipe (6 ordered steps)
9. Sanity checks for any candidate config (7 checks)
10. One-paragraph rule + honest caveat block
All content is st.markdown + st.dataframe — no new pure functions.
Smoke test asserts the tab title + `with tab_prules:` block are both
present in app.py.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>