dd525bfcb7
New `/paper` slash-command skill that synthesizes ADR/SPEC content and live KernBench benchmark results into a sectioned LaTeX technical paper compiled to PDF with Tectonic (auto-installed). The skill negotiates a TOC, grounds every number in committed artifacts or fresh bench runs, and keeps report-only benches isolated. This commit also includes the first generated report: - docs/report/1H-codesign-paper/ — main.tex + per-section .tex, figures, toc.md contract, and the built 8-page main.pdf. Covers the platform (source-level kernels, latency model + accuracy, HW config from topology.yaml), GEMM via composite command, All-Reduce via PE_IPCQ, and fused GQA combining both, plus discussion/conclusion/2H future work. - scripts/paper/ — isolated report harnesses (not registered benches): paper_gqa_latency.py harvests per-panel GQA end-to-end latency + engine occupancy (the milestone only emitted op-counts); paper_plot_gqa.py renders the GQA figures. GEMM/All-Reduce reuse committed milestone figures/CSVs; GQA results are generated fresh. Honest flags retained: PE_CPU dispatch cost is 0 in this config, and the proposed two-composite softmax_merge decode is marked designed-not-measured. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
97 lines
2.2 KiB
JSON
97 lines
2.2 KiB
JSON
{
|
|
"version": 1,
|
|
"panels": [
|
|
"single_user_prefill_gqa",
|
|
"multi_user_prefill_gqa",
|
|
"single_user_decode_gqa",
|
|
"multi_user_decode_gqa"
|
|
],
|
|
"rows": [
|
|
{
|
|
"panel": "single_user_prefill_gqa",
|
|
"kind": "prefill",
|
|
"C": 1,
|
|
"S_kv": 16,
|
|
"latency_ns": 445.1180000000004,
|
|
"op_log_summary": {
|
|
"gemm_count": 2,
|
|
"ipcq_copy_count": 0,
|
|
"dma_read_count": 3,
|
|
"dma_write_count": 1
|
|
},
|
|
"engine_occupancy_ns": {
|
|
"pe_gemm": 2.048000000000002,
|
|
"pe_math": 5.0,
|
|
"pe_dma": 72.0,
|
|
"pe_fetch_store": 0,
|
|
"pe_ipcq": 0,
|
|
"pe_cpu": 0
|
|
}
|
|
},
|
|
{
|
|
"panel": "multi_user_prefill_gqa",
|
|
"kind": "prefill",
|
|
"C": 4,
|
|
"S_kv": 16,
|
|
"latency_ns": 4630.408000000019,
|
|
"op_log_summary": {
|
|
"gemm_count": 32,
|
|
"ipcq_copy_count": 24,
|
|
"dma_read_count": 12,
|
|
"dma_write_count": 4
|
|
},
|
|
"engine_occupancy_ns": {
|
|
"pe_gemm": 8.192000000000917,
|
|
"pe_math": 236.0,
|
|
"pe_dma": 1446.945000000003,
|
|
"pe_fetch_store": 0,
|
|
"pe_ipcq": 0,
|
|
"pe_cpu": 0
|
|
}
|
|
},
|
|
{
|
|
"panel": "single_user_decode_gqa",
|
|
"kind": "decode",
|
|
"C": 1,
|
|
"P": 8,
|
|
"S_kv": 64,
|
|
"latency_ns": 3631.730500000015,
|
|
"op_log_summary": {
|
|
"gemm_count": 16,
|
|
"ipcq_copy_count": 21,
|
|
"dma_read_count": 24,
|
|
"dma_write_count": 1
|
|
},
|
|
"engine_occupancy_ns": {
|
|
"pe_gemm": 16.383999999998196,
|
|
"pe_math": 160.0,
|
|
"pe_dma": 1450.1150000000016,
|
|
"pe_fetch_store": 0,
|
|
"pe_ipcq": 0,
|
|
"pe_cpu": 0
|
|
}
|
|
},
|
|
{
|
|
"panel": "multi_user_decode_gqa",
|
|
"kind": "decode",
|
|
"C": 4,
|
|
"P": 8,
|
|
"S_kv": 128,
|
|
"latency_ns": 6692.578999999866,
|
|
"op_log_summary": {
|
|
"gemm_count": 64,
|
|
"ipcq_copy_count": 93,
|
|
"dma_read_count": 96,
|
|
"dma_write_count": 1
|
|
},
|
|
"engine_occupancy_ns": {
|
|
"pe_gemm": 32.76799999998184,
|
|
"pe_math": 688.0000000000009,
|
|
"pe_dma": 15919.751500000013,
|
|
"pe_fetch_store": 0,
|
|
"pe_ipcq": 0,
|
|
"pe_cpu": 0
|
|
}
|
|
}
|
|
]
|
|
} |