30 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
8fc8411ca3 feat(mlsysim): site release manifest + footer pill
Adopts the shared versioning pattern for the MLSYSIM docs site without
touching the paper LaTeX or PyPI publish flow — both deliberately stay
under their existing identities. The site release_id binds to the docs
corpus + python source via release_hash, and the paper PDF rides
alongside as a bundled artifact (with its own LaTeX-driven version).

mlsysim/docs/_quarto.yml:
  - <meta name="release-manifest" content="/mlsysim/release-manifest.json">
    in include-in-header.
  - shared/release/release-pill.html added to include-after-body.

.github/workflows/mlsysim-publish-live.yml:
  - workflow_dispatch inputs: release_type, description, site_only,
    explicit_version, confirm — same shape as staffml-publish-live.
  - New `prepare:` job calls _release-prepare.yml for release_id math.
  - New "Emit release manifest" step writes release-manifest.json into
    the build dir before deploy. Hashes mlsysim/docs + mlsysim/python +
    mlsysim/pyproject.toml; excludes _build/, .quarto, etc.
  - New `create-tag:` job tags mlsysim-v<release_id> and drafts a
    GitHub Release with auto notes after deploy succeeds.
  - The existing `mlsysim-pypi-publish.yml` (tag-triggered, OIDC PyPI
    push) remains untouched. Pushing the new mlsysim-v* tag will fire
    it as before. Pyproject.toml's version field is unchanged — it
    remains PyPI's source of truth, separate from this site's.
2026-04-28 18:15:59 -04:00
Vijay Janapa Reddi
0b782b4c0f fix(mlsysim): publish tutorial slides alongside the docs site
The mlsysim docs hero linked "Slide Decks" to mlsysbook.ai/slides/, the
textbook teaching site, which has no relationship to the MLSys·im ISCA
tutorial. Wire the tutorial decks into the same publish path the paper
uses so the link resolves to mlsysim's own slides.

- mlsysim-build-pdfs.yml: split into build-paper / build-slides; new
  job installs xelatex + JetBrains Mono and uploads MLSYSIM-Slides
- mlsysim-publish-live.yml, mlsysim-preview-dev.yml: download
  MLSYSIM-Slides and inject tutorial_part{1,2}.pdf into MLSYSIM_DOCS
- mlsysim-update-pdfs.yml: redeploy slide PDFs in PDF-only hot-fix path
- mlsysim/tutorial/Makefile: build both decks (was part1 only) with
  proper target tracking
- mlsysim/docs/slides.qmd: new landing page with download buttons and
  a pointer disambiguating the textbook lecture decks
- mlsysim/docs/index.qmd: hero CTA now targets slides.qmd
- mlsysim/docs/config/_quarto-html.yml: register slide PDFs as
  resources and add navbar entry
2026-04-27 17:27:48 -04:00
Vijay Janapa Reddi
1eb30f5f86 fix(mlsysim): harden release QA and paper artifacts
Align the MLSys·im code, docs, paper, website, workflows, and lab wheel for the 0.1.1 release. This also fixes runtime/API issues found during release review and prepares the paper PDF plus archive package.
2026-04-25 10:06:01 -04:00
Vijay Janapa Reddi
b5d50bed9e mlsysim: relicense code under Apache-2.0 for v0.1.0 PyPI release
Switch mlsysim from CC-BY-NC-SA-4.0 to Apache-2.0 for the Python
package. Creative Commons itself advises against CC licenses for
software: they do not cover patent grants, source/object distinctions,
or derivative-work definitions the way a software license does, and
the NonCommercial clause makes the package unusable in any corporate
setting — defeating the goal of a teaching tool intended for working
engineers.

Apache-2.0 preserves full copyright-holder rights to commercialize
(dual-license future versions, sell commercial editions, offer paid
support/SaaS), while enabling the broad adoption appropriate for a
textbook companion.

The textbook prose remains CC-BY-NC-SA-4.0. The docs site footer is
updated to state both licenses explicitly so readers do not conflate
the two.

- mlsysim/LICENSE.md          : full Apache-2.0 text with copyright
- mlsysim/pyproject.toml      : license = "Apache-2.0" + OSI classifier
- mlsysim/CITATION.cff        : license: Apache-2.0
- mlsysim/RELEASE_NOTES_0.1.0 : license line split (code vs docs)
- mlsysim/paper/paper.tex     : "MIT license" → "Apache-2.0 license"
- mlsysim/docs/config/_quarto-html.yml : footer shows both licenses
2026-04-23 17:14:08 -04:00
Vijay Janapa Reddi
ad98437b4c docs(announcements): unify announcement bars across nine Quarto sites
Every site's announcement bar now follows one template:

  Line 1  — identity + primary CTA (what is THIS site)
  Line 2  — the book (or, on book sites, the other volume)
  Line 3  — "Alongside the book:" sibling row (3 most-relevant verbs)
  Line 4  — newsletter

The book is the anchor of the curriculum; every other site is a verb
applied to it — TinyTorch (build), Hardware Kits (deploy), MLSys·im
(simulate), Labs (explore), Slides + Instructors (teach). Making that
shape visible in every bar turns nine independent sites into chapters
of one curriculum.

Removed stale copy: "Happy New Year!" on kits + labs, "coming in 2026"
on labs (we are in 2026; replaced with "Coming Summer 2026"), TinyTorch
v0.1.10 single-line release notice (belonged in a release changelog,
not the always-visible nav bar).

Normalized outbound links: /book -> /vol1/ and /vol2/, consistent
trailing-slash hygiene on every URL. Newsletter link points to
https://mlsysbook.ai/newsletter/ (the actual Quarto page) instead of
#subscribe (which only resolves on the landing page).

The landing site (mlsysbook.ai) uses a 5-line variant that covers all
four learner verbs + the teacher-tools row; every other site uses the
4-line form.

StaffML is a Next.js app, not a Quarto site, so its banner is out of
scope for this PR and will ship as a separate React component change.
2026-04-23 16:35:57 -04:00
Vijay Janapa Reddi
9e009f2840 nav(mlsysim): add Paper (PDF) to site-local MLSys·im dropdown
Mirrors the TinyTorch pattern from the previous commit: the companion
paper PDF belongs next to the site it documents, not in the shared
Build menu. Path follows mlsysim-publish-live's workflow output
(mlsysim-paper.pdf at site root), so the link resolves on production
even though the file is not in this repo.

Completes the restructure — both product sites that previously had
paper entries in the shared Build menu now have site-local dropdown
entries, and Build is a clean 4-row ecosystem index everywhere.
2026-04-21 17:41:22 -04:00
Vijay Janapa Reddi
69f330b2db fix(shared): centralize font loading via site-head.html + fix carousel
- Replace inline Google Fonts <link> tags in all 8 site configs with
  a single `- file: shared/config/site-head.html` reference, so fonts
  (Inter 400-800, JetBrains Mono) and Font Awesome are inherited from
  one shared file instead of duplicated across every _quarto.yml
- Add missing Inter weight 800 (was only in site-head.html, not configs)
- Add carousel CSS + JS for MLSys·im landing page (arrows, dots, slides,
  auto-rotation, keyboard nav) — fixes non-functional < > buttons
2026-04-18 16:26:39 -04:00
Vijay Janapa Reddi
20512761c9 docs(mlsysim): release-prep audit fixes for 0.1.0
Fixes the broken links, stale numerical claims, and naming inconsistencies
surfaced by the 0.1.0 release-prep review. Output of the docs site now matches
what the engine actually computes, internal navigation has no unresolved targets,
and the Hatch announcement banner uses an absolute URL so sub-pages render the
"Get started" link correctly.

Notable changes:
- Hero example on docs/index.qmd and getting-started.qmd now reflect the actual
  Engine.solve(ResNet50, A100, bs=1, fp16) output (Memory / 0.54 ms / 1843).
- Update Python version requirement (3.10+) and document the editable-install
  limitation (Hatch sources rewrite is not supported by editables).
- Standardize the typographic brand to "MLSys·im" in the navbar, OG/Twitter
  metadata, and the shared cross-site dropdown.
- Add the four solvers missing from the quartodoc list
  (BatchingOptimizer, ForwardModel, NetworkRooflineModel, PlacementOptimizer)
  and surface the orphan tutorials (01_pipeline_callbacks,
  02_differential_explainer, 12_design_space_exploration) in the sidebar.
- Rename every reference to the now-deleted hello_world / llm_serving /
  sustainability / 11_full_stack_audit tutorials to their current filenames.
- Add the missing @mlsysbook2024 entry to references.bib so whitepaper.qmd
  no longer logs a citeproc warning.
- Fix the CLI sample on the parent site/index.qmd card to use real model
  identifiers (Llama3_70B H100 --batch-size 1).
- Soften the Colab/Binder copy until launch buttons are wired in.
- Remove the duplicate "Differential Explainer" card on tutorials/index.qmd.
2026-04-18 10:30:01 -04:00
Vijay Janapa Reddi
e7dddf5934 refactor(navbar): standardize fonts, logos, and dark mode across all sites
- instructors: remove Outfit display font, use Inter for headers like
  all other sites. Remove redundant @import and h1-h4 font override.
- mlsysim: replace site-specific logo.svg with ecosystem shield logo
- tinytorch: replace TinyTorch-specific logo with ecosystem shield logo

All Quarto sites now have identical navbar: same shield logo, same Inter
font stack, same dark mode toggle, same shared responsive behavior.
2026-04-18 09:56:11 -04:00
Vijay Janapa Reddi
e0d64da7f9 fix(mlsysim): address reviewer feedback + improve landing page
Paper:
- Define "bind/binding" at first use with footnote
- Clarify Table 2 caption and accelerator terminology
- Rename "Progressive Lowering" to "Layered Input Stack"

Website:
- Remove decontextualized stats bar from hero
- Move interactive carousel right under hero tagline
- Reorder carousel slides for narrative flow
- Fix broken tutorial links on landing page
- Fix sidebar: tutorial 11 → 12, comment out missing Interactive Apps
2026-04-09 20:40:49 -04:00
Vijay Janapa Reddi
a3160d83e5 refactor(monorepo): remove redundant navbar props — shared config handles it
Tested: Quarto metadata-files merge DOES inherit responsive properties
(background, pinned, collapse, collapse-below) from navbar-common.yml.
Local configs only need logo, search, title, and site-specific left: items.

Removed 4 redundant lines from each of: mlsysim, labs, kits, instructors, site.
Single source of truth: shared/config/navbar-common.yml
2026-04-03 08:49:41 -04:00
Vijay Janapa Reddi
bb0c30e6c6 fix(docs): add navbar responsive properties (collapse, pinned, background) 2026-04-03 08:49:41 -04:00
Vijay Janapa Reddi
10eea5fc0f fix(docs): quarto config update from site rebuild 2026-04-03 08:49:41 -04:00
Vijay Janapa Reddi
396506d29d refactor(site): unify 4 site subsites into single Quarto project
Architecture:
- Merge landing, about, community, newsletter into one site/ project
- Move navbar-common.yml to shared/config/ (used by 12 configs)
- Create shared/config/footer-site.yml for centralized footer
- Create shared/scripts/subscribe-modal.js as canonical copy
- Single _quarto.yml replaces 4 independent configs
- One site_libs/ copy replaces four

Features gained:
- Google Analytics on ALL hub pages (was only on book volumes)
- Subscribe modal on landing page (was missing)
- Centralized footer with consistent links

Workflows updated:
- site-preview-dev.yml: matrix strategy → single build job
- site-publish-live.yml: loop over subsites → single build + deploy
- sync-newsletter.yml: builds from unified site project
- publish-all-live.yml: removed stale subsite input
- rewrite-dev-urls.sh: added --shallow flag for unified builds

All 12 navbar-common.yml references updated:
  book vol1/vol2, site (unified), slides, instructors, interviews,
  kits, labs, mlsysim
2026-03-21 13:30:24 -04:00
Vijay Janapa Reddi
73f2906a38 refactor(mlsysim): core refactor with provenance, DSE, and docs updates
Remove pedagogy module, add provenance tracking and design space
exploration. Update evaluation engine, pipeline callbacks, and
documentation including new tutorials.
2026-03-21 08:31:34 -04:00
Vijay Janapa Reddi
665af60f85 refactor(site): use native Quarto metadata-files for shared navbar
Replace the generate-navbar.py script approach with direct metadata-files
references to navbar-common.yml. Quarto natively merges navbar arrays,
so site-local dropdowns defined inline in each _quarto.yml get appended
to the shared navbar automatically.

- Delete generate-navbar.py script (no longer needed)
- Delete all _navbar-generated.yml and _navbar-local.yml files
- Each subsite now references ../book/quarto/config/shared/html/navbar-common.yml
  directly via metadata-files
- Sites with local dropdowns (slides, instructors, mlsysim) define them inline
  in their _quarto.yml navbar.left — Quarto merges with the shared left items
- Zero tooling, zero generated files, zero maintenance scripts
2026-03-19 10:48:41 -04:00
Vijay Janapa Reddi
5790e2706c feat(site): centralize navbar across all subsites
Single source of truth for the navigation bar in navbar-common.yml.
New 5-dropdown structure: Read | Build | Teach | Community | About.

- Add generate-navbar.py script to merge shared + site-local dropdowns
- Add _navbar-local.yml for slides, instructors, mlsysim (site-specific menus)
- Generate _navbar-generated.yml for all 6 subsites (committed, no CI changes needed)
- Strip hardcoded navbars from all _quarto.yml configs (landing, vol1, vol2, slides,
  instructors, mlsysim, kits, labs, newsletter)
- Add community/ and about/ paths to rewrite-dev-urls.sh for dev preview

To update navbar: edit navbar-common.yml, run generate-navbar.py --all, commit.
2026-03-19 10:41:25 -04:00
Vijay Janapa Reddi
3ce08f8f08 updates 2026-03-18 17:40:35 -04:00
Vijay Janapa Reddi
4de23c16d4 feat(mlsysim): unify navbar with Subscribe button to match Labs/Kits
Add subscribe-modal.js and Subscribe navbar button to MLSYSIM docs
site, matching the unified navbar pattern across all components
(Labs, Kits, MLSYSIM). Right-side items now follow the same order:
Downloads, Star, Support, Subscribe, GitHub.
2026-03-14 19:46:00 -04:00
Vijay Janapa Reddi
f0c87467a2 feat(ci): add run_id input to book-preview; add dev banner to MLSYSIM
- book-preview-dev.yml: add run_id input for workflow_dispatch to allow
  deploying from a specific validate run (bypasses success check when
  HTML artifacts exist but EPUB/PDF builds fail)
- mlsysim: add announcement.yml config and metadata-files reference so
  the modify_dev_announcement.py script can inject the dev preview banner
2026-03-14 13:44:48 -04:00
Vijay Janapa Reddi
31d632743e docs(mlsysim): auto-generate and integrate CLI reference using Typer 2026-03-13 08:55:00 -04:00
Vijay Janapa Reddi
2bbe3e1a69 docs(mlsysim): redesign website, add 12 tutorials, and CLI entry points
Replace 9 old tutorials with 12 new numbered tutorials (00-11) covering
roofline through full-stack audit. Redesign landing page, add
models-and-solvers and extending-the-engine guides. Add __main__.py,
cli.py, and cli/ package for command-line interface.
2026-03-12 16:04:51 -04:00
Vijay Janapa Reddi
5c52507f27 feat(mlsysim): add prompt caching to ServingSolver and release-readiness fixes
Add cached_prefix_len parameter to ServingSolver for prefix/prompt
caching (grounded in Zheng et al. SGLang/RadixAttention). TTFT reduces
proportionally to cache hit ratio; ITL and memory unchanged.

Export 4 missing solvers from __init__.py (ContinuousBatchingSolver,
WeightStreamingSolver, TailLatencySolver, CheckpointSolver).

Fix dict-style access in for-engineers.qmd and architecture_comparison
tutorial. Add math sections 3.4-3.6 for prompt caching, disaggregated
serving (Patel et al. Splitwise ISCA'24), and speculative decoding
(Leviathan et al. ICML'23) with literature citations. Update paper.tex
Wall 4 description to include prompt caching. Fix remaining MLSYSIM
branding in _quarto-html.yml.
2026-03-12 16:04:51 -04:00
Vijay Janapa Reddi
1b32571af7 docs(mlsysim): harmonize website with paper and add 5 tutorials
Website-paper consistency:
- Rename Operations to Ops across architecture, glossary, solver-guide
- Fix Mermaid diagram arrows for progressive lowering
- Add extensibility section to architecture page
- Add workload types table to getting-started and zoo/models
- Add Binding Constraint and Systems Wall to glossary
- Expand sidebar to list all 10 tutorials

New tutorials covering all 6 paper domains:
- design_space.qmd: bottleneck regime map (Node domain)
- data_pipeline.qmd: CPU bottleneck analysis (Data domain)
- cot_economics.qmd: inference cost scaling (Algorithm domain)
- sensitivity.qmd: binding constraint audit (Analysis domain)
- architecture_comparison.qmd: GPU vs Cerebras (Node domain)

Persona page updates:
- for-students: expanded learning path to 8 tutorials
- for-instructors: expanded course integration to 7 weeks
- for-engineers: added sensitivity and architecture links
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
25f5ca99a3 docs(mlsysim): improve paper structure and complete quartodoc config
Paper improvements:
- Fix Cerebras Wall 6 reference: bare text → \citealt{lie2023cerebras}
- Move 22-wall summary table earlier (before wall descriptions, not after)
- Introduce MLSys Zoo terminology (Silicon/Model/Fleet/Infrastructure Zoos)
- Add appendix bridge sentence in solver formalism section

Quartodoc: add all 7 missing solvers to config, ordered by wall number
(EfficiencySolver, TransformationSolver, TopologySolver, InferenceScalingSolver,
ResponsibleEngineeringSolver, SensitivitySolver, SynthesisSolver)
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
8db12f0ee4 refactor(mlsysim): rebrand MLSYSIM to MLSys·im across paper and website
Update display name from MLSYSIM to MLSys·im (with interpunct) in
paper title, website config, and all 18 QMD documentation pages.
Technical name (imports, file paths) remains lowercase mlsysim.
Paper subtitle updated to "First-Principles Infrastructure Modeling
for Machine Learning Systems". Preserve explicit anchor ID for
cross-referenced #extending-mlsysim heading.
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
943c72b21a refactor(mlsysim): replace whitepaper page with embedded PDF viewer
Slim whitepaper.qmd to a thin page that embeds paper.pdf via
<object> tag with download fallback. Add CI steps to both preview
and publish workflows to build paper.tex and copy PDF into docs
before Quarto render. Update sidebar references from "Whitepaper"
to "Research Paper".
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
7d807316ba docs(mlsysim): update website for 21 solvers, Cerebras, and new workload types
Add 4 new solver API pages (CheckpointSolver, ContinuousBatchingSolver,
WeightStreamingSolver, TailLatencySolver). Update solver-guide, architecture,
getting-started, index, and whitepaper to reflect 21 solvers, SSM/Diffusion
workloads, HuggingFace importer, and MLSYSIM as Infrastructure Modeling.
Restore deleted _quarto-html.yml config with updated quartodoc entries.
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
7b145803c3 docs(mlsysim): update API docs, tutorials, and whitepaper for new architecture
Rewrite API reference pages to match domain subpackage structure.
Add solver doc pages for CompressionSolver, DataSolver,
OrchestrationSolver, and ScalingSolver. Update whitepaper,
math reference, getting-started guide, and tutorial index.
Add extending tutorial for custom solvers.
2026-03-12 16:04:50 -04:00
Vijay Janapa Reddi
c0560a402a feat(mlsysim): add ecosystem workflows, navbar integration, and variable-driven CI
- Add mlsysim-validate-dev, mlsysim-preview-dev, and mlsysim-publish-live workflows
- Move mlsysim docs config to config/ dir with symlink (matching kits/labs pattern)
- Add MLSYSIM to ecosystem navbar across all 7 site configs
- Add mlsysim/ URL rewrite to book-preview-dev for dev site
- Replace hardcoded paths with GitHub variables in kits and labs workflows
- New repo variables: MLSYSIM_ROOT, MLSYSIM_DOCS, DEV_MLSYSIM_PATH, KITS_ROOT,
  KITS_DOCS, LABS_ROOT, LABS_DOCS
2026-03-12 16:04:49 -04:00