MCPcopy Create free account
hub / github.com/RightNow-AI/autokernel / cmd_report

Function cmd_report

orchestrate.py:577–713  ·  view source on GitHub ↗

Generate the aggregate report at workspace/aggregate_report.md.

(state: dict)

Source from the content-addressed store, hash-verified

575
576
577def cmd_report(state: dict) -> None:
578 """Generate the aggregate report at workspace/aggregate_report.md."""
579 _ensure_workspace()
580 kernels = state["kernels"]
581 plan = load_plan()
582 timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
583
584 lines: list[str] = []
585 lines.append("# AutoKernel -- Aggregate Optimization Report")
586 lines.append("")
587 lines.append(f"Generated: {timestamp}")
588 lines.append("")
589
590 # ---- Per-kernel summary table ----
591 lines.append("## Per-Kernel Summary")
592 lines.append("")
593 lines.append("| Rank | Kernel | Op Type | Status | Baseline (TFLOPS) | Best (TFLOPS) | Speedup | Experiments | Kept | Keep Rate | Time (min) |")
594 lines.append("|------|--------|---------|--------|-------------------|---------------|---------|-------------|------|-----------|------------|")
595
596 for k in kernels:
597 kname = Path(k["file"]).name
598 baseline_str = f"{k['baseline_tflops']:.2f}" if k["baseline_tflops"] is not None else "--"
599 best_str = f"{k['best_tflops']:.2f}" if k["best_tflops"] is not None else "--"
600 speedup_str = f"{k['speedup']:.2f}x" if k["speedup"] is not None else "--"
601 exp_run = k["experiments_run"]
602 exp_kept = k["experiments_kept"]
603 keep_rate = f"{exp_kept / exp_run * 100:.0f}%" if exp_run > 0 else "--"
604 minutes = k["time_spent_minutes"]
605 status = _STATUS_DISPLAY.get(k["status"], k["status"])
606 lines.append(
607 f"| {k['rank']} | {kname} | {k['op_type']} | {status} | {baseline_str} | "
608 f"{best_str} | {speedup_str} | {exp_run} | {exp_kept} | {keep_rate} | {minutes} |"
609 )
610 lines.append("")
611
612 # ---- Aggregate speedup ----
613 agg = estimate_aggregate_speedup(kernels)
614 lines.append("## Aggregate Model Speedup (Amdahl's Law)")
615 lines.append("")
616 if agg > 1.0:
617 lines.append(f"**Estimated end-to-end model speedup: {agg:.2f}x**")
618 else:
619 lines.append("No measurable aggregate speedup yet.")
620 lines.append("")
621
622 # Breakdown
623 lines.append("Breakdown by kernel (fraction of total GPU time):")
624 lines.append("")
625 for k in kernels:
626 pct = k.get("pct_total", 0)
627 speedup = k.get("speedup")
628 kname = Path(k["file"]).name
629 if pct > 0:
630 speedup_str = f"{speedup:.2f}x" if speedup and speedup > 1.0 else "1.00x"
631 saved = pct * (1 - 1 / speedup) if speedup and speedup > 1.0 else 0.0
632 lines.append(f"- **{kname}**: {pct:.1f}% of GPU time, {speedup_str} speedup ({saved:.1f}% time saved)")
633 lines.append("")
634

Callers 1

mainFunction · 0.85

Calls 3

_ensure_workspaceFunction · 0.85
load_planFunction · 0.85

Tested by

no test coverage detected