168 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
2df92fd9d2 Merge dev into fix/site-qa-polish 2026-06-27 09:03:44 -04:00
Vijay Janapa Reddi
c53f3fe238 Site QA polish: finish MLSys.im brand migration, fix broken links, add memory-tier figure
- Complete the MLSYSIM -> MLSys.im display-name migration across mlsysim/docs,
  instructors, and shared config (code identifiers stay lowercase mlsysim)
- Fix broken TinyTorch module links (_ABOUT.html -> .html)
- Route the navbar Subscribe action to the newsletter page so Safari content
  blockers stop hiding the #subscribe anchor
- Add the Accelerator Memory Tiers figure to compute_infrastructure with a
  registry-driven log-log capacity/bandwidth scatter
- Add four sourced cloud accelerator specs (Groq LPU, Graphcore GC200,
  Untether speedAI240, d-Matrix Corsair) feeding the local-SRAM tier
- Remove the unshipped Coming Soon audio-lectures placeholder and related
  Binder/audio references
2026-06-27 08:14:00 -04:00
Vijay Janapa Reddi
c07b37eca6 fix(site): open subscribe modal from navbar CTA 2026-06-24 11:55:00 -04:00
Vijay Janapa Reddi
08c07f7bed fix: hide MLSysim homepage page toc 2026-06-23 12:13:31 -04:00
Vijay Janapa Reddi
d549068bde fix: preserve site-only release identity 2026-06-23 00:38:44 -04:00
Vijay Janapa Reddi
c2259df1ce fix: clean website preflight issues 2026-06-22 14:34:24 -04:00
Vijay Janapa Reddi
d2c3a57b25 Render missing dataset split counts as --- in the Datasets Zoo table.
DatasetProfile makes test_examples/num_classes Optional by design (MSWC
sources only the 23.4M corpus total), but the zoo table called
.magnitude unconditionally and crashed the MLSysIM docs-site build with
AttributeError on the MSWC row. Guard the optional fields the same way
the cell already guards image dimensions.
2026-06-07 07:43:01 -04:00
Vijay Janapa Reddi
6e42a8b23e Restore the dimensional-strictness flagship story in paper and docs
With [flop] as a real dimension, the paper's lst:units listing again
shows the honest headline behavior — compute rate + bandwidth raises —
and the 'count-like units are mutually convertible by design' caveat
is gone. for-engineers Type Safety demonstrates both raises live
(verified by execution); DATA_MODEL's validation invariant states the
dimension split. Paper rebuilt clean, 42 pages, all 7 anchors match.
2026-06-06 13:27:56 -04:00
Vijay Janapa Reddi
9c3dce60dc Delete the core/constants.py compat shim; migrate the whole corpus
No-backward-compat sweep, part 2. The module had been reduced to a
units-only re-export ('retired, do not add values'); per policy it is
now gone and every consumer reads the real home:

- 32 internal modules, the package __init__, and core/__init__ import
  core.units (physics modules keep their own physics/constants)
- 43 book chapters' LEGO cells migrated (star imports, named imports,
  and the appendix attribute style 'constants.VIDEO_*' -> units.*);
  lego_focal_verify confirms identical pass/flag state to pre-sweep
  (8 pre-existing structural flags, A/B-verified unchanged)
- tutorial/tools/test imports migrated (incl. binder test_units.py);
  book tests' legacy-symbol scanner treats a missing constants.py as
  'nothing defined'
- test_constants_allowlist.py rewritten as a deletion pin: the module
  (and any shim for it) must never return; core.units must keep the
  measurement surface (ureg, Q_, GB, BYTES_FP16, PRECISION_MAP, ...)
- test_mlsysim_registry_parity.py deleted: it compared registry values
  against legacy constants 'before deletion' — that migration is
  complete (registry gate list updated)
- Docs prose (DATA_MODEL, architecture, contributing) states the
  deletion instead of describing a retired shim

749 passed; binder registry gate green; star import intact.
2026-06-06 11:34:47 -04:00
Vijay Janapa Reddi
9edee7d67e Remove the engine/solver.py compat shim; migrate all consumers
No-backward-compat policy: mlsysim.engine.solvers is the canonical
implementation package and mlsysim.solvers the public path — the
middle re-export module served no purpose once both ends derive
mechanically. All 16 internal/test import sites repointed; the module-
exports test now pins the shim's ABSENCE (ModuleNotFoundError) plus
exact public/engine surface identity; docstrings, CLI design doc, and
docs links updated. 751 passed.
2026-06-06 11:25:54 -04:00
Vijay Janapa Reddi
54f35d847b Freeze registry models; fix the one mutation site; zoo UX
- frozen=True on all registry pydantic types (hardware, models,
  systems, infrastructure, datasets, platforms): registry entries are
  shared singletons read by every LEGO cell in a render — a stray
  assignment in any cell previously corrupted every downstream cell
  silently; it now raises ValidationError at the assignment site
- The freeze immediately caught the one real mutation site:
  SensitivitySolver's deepcopy-then-assign perturbation now builds
  modified copies via model_copy(update=...) instead
- mlsysim zoo: the CATEGORY argument --help always marked optional now
  actually is — omitting it renders both registries and exits 0
  (previously errored); contract test re-pinned, cli-reference updated

751 passed; training/ml_systems/distributed_training chapters execute
clean against frozen registries.
2026-06-06 11:08:18 -04:00
Vijay Janapa Reddi
80b5361656 Docs site: persona-audit fixes, CLI parity, architecture bridge
User journey (every code block executed against the package):
- getting-started: Hardware.Tiny.ESP32 -> ESP32_S3 (raised
  AttributeError as written); dev-install cd path fixed; index
  carousel device count 19 -> 30+
- for-engineers: 'Type Safety' example claimed a DimensionalityError
  that pint does not raise (bytes/flops are dimensionless aliases);
  rewritten with a true example + the real require_unit_family checks

Developer path:
- contributing.qmd: solver home engine/solvers/, real test-gate
  filenames, real check() signature, 32-solver count, retired
  constants.py description
- architecture.qmd <-> DATA_MODEL.md now bridge each other (runtime
  5-layer view vs data 8-zoo view); DATA_MODEL opener said 'Six zoos'
  while its own table lists eight
- provenance.qmd core.calibration -> engine.calibration; accuracy.qmd
  blesses mlsysim.solvers as the public import path

CLI reference (every command --help diffed against the doc):
- eval YAML example was unrunnable (missing required name:) and
  asserted a nonexistent metric; exit-code example was wrong (renders
  FAIL scorecard, exits 0) — replaced with verified exit-1/exit-3
  examples and a note that exit 2 is reserved for hard OOMErrors
- schema/audit: documented -t/-w shorthands and defaults

README: PyPI/docs badges + quick-links row (standalone-package pitch).
2026-06-06 10:03:10 -04:00
Vijay Janapa Reddi
46aab52b38 Fix broken docs links and stale LEGO header comments
- math.qmd: three GitHub links had a tripled mlsysim/ path segment
- models-and-solvers.qmd: DSE link pointed at deleted core/dse.py
  (now engine/dse.py)
- data_engineering/benchmarking LEGO headers still cited retired
  core.constants names (NETWORK_100G_BW, GPT3_TRAINING_TOKENS,
  GPT3_TRAINING_ENERGY_MWH); comments now name the actual registry
  sources the cells read
- book/tests/test_units.py: fmt_unit FLOP-count expectation updated to
  the shared-label singular form ('GFLOP'), matching the fmt dedup
2026-06-06 09:24:19 -04:00
Vijay Janapa Reddi
2dd81eaa38 Add shared ecosystem cards to landing pages
Add shared/config/_ecosystem-cards.qmd: one source of truth for the
'Part of the MLSysBook Ecosystem' section (full 7-member set). Each landing
page includes it; a small script marks the current site 'You are here' by
reading that site's own release-manifest meta, so one block shows each page
its own state. Replace the divergent inline sections in kits (3 hand-written
cards) and labs (prose paragraph); add the section to slides, instructors,
and mlsysim.
2026-06-03 15:34:30 -04:00
Vijay Janapa Reddi
5a6c71911d Standardize shared footer and version pill across Quarto sites
Add shared/config/footer-common.yml (mirrors navbar-common.yml) and point
slides, labs, kits, and instructors at it via metadata-files, replacing their
drifted inline footers. The release pill now lives in the footer right slot
(not dangling below the page) as a fixed muted-gray chip, pinned so it looks
identical regardless of each site's theme accent. mlsysim and the book keep
their own footers (dual license / build stamp) but carry the same pill span.
release-pill.html is now assets-only and populates every data-release-pill
span from each site's own release-manifest.
2026-06-03 15:27:50 -04:00
Vijay Janapa Reddi
bf733c5781 Merge dev into fmt-fix 2026-06-01 22:34:40 -04:00
Vijay Janapa Reddi
363869fcf0 Update MLSysIM docs and tutorial guidance 2026-06-01 21:54:41 -04:00
Vijay Janapa Reddi
8a89d00a5f Keep MLSysIM provenance book neutral 2026-06-01 16:30:55 -04:00
Vijay Janapa Reddi
2b322bea8c Clean MLSysIM docs solver references 2026-05-31 15:05:17 -04:00
Vijay Janapa Reddi
49518363d2 Clean MLSysIM standalone API boundaries 2026-05-31 14:10:17 -04:00
Vijay Janapa Reddi
6a771e6e4f Clean MLSysIM registry boundaries 2026-05-31 13:54:25 -04:00
Vijay Janapa Reddi
aa0e1df10d Clarify MLSysIM scenario ownership 2026-05-31 13:05:41 -04:00
Vijay Janapa Reddi
e6e5b1ff40 Add registry-backed empirical validation anchors 2026-05-31 12:07:36 -04:00
Vijay Janapa Reddi
eb9d7637de Document MLSysIM validation follow-up plan 2026-05-31 10:58:53 -04:00
Vijay Janapa Reddi
1d9b72db58 Harden MLSysIM validation and topology contracts 2026-05-31 10:57:23 -04:00
Vijay Janapa Reddi
3c98b4e32d Harden MLSysIM loaders and rendered book audits 2026-05-30 14:22:01 -04:00
Vijay Janapa Reddi
50326e1673 fix(mlsysim-docs): repoint solver API links core.solver → engine.solver after taxonomy refactor
The MLSysIM taxonomy refactor moved the solver classes from core.solver to
engine.solver and regenerated the quartodoc API stubs accordingly
(api/engine.solver.*.qmd), but five hand-written doc pages still linked to the
old api/core.solver.* paths, breaking 43 internal links (caught by
check-internal-links).

- solver-guide.qmd, models-and-solvers.qmd, math.qmd, zoo/infra.qmd,
  zoo/datasets.qmd: repoint every api/core.solver.<Model> link to the existing
  api/engine.solver.<Model> stub; table links that pointed at the bare module
  page now point at the specific model page matching their link text.
- The generic "Solver API Reference" link → api/engine.qmd.
- Stale GitHub source link mlsysim/core/solver.py → mlsysim/engine/solver.py.
2026-05-29 22:25:58 -04:00
Vijay Janapa Reddi
cb0ae4082f docs(mlsysim): regenerate quartodoc API stubs for the new module layout
Run quartodoc build against the refactored package (engine/ extracted from core/,
infra->infrastructure): regenerate the API reference so every stub points at the new
paths. Adds engine.*/infrastructure.* stubs, removes the 41 stale core.solver.* /
core.engine.* / core.scenarios.* / core.config.* / core.evaluation.* / infra*.qmd
orphans, and refreshes the package pages (core now primitives-only) + index.

Verified: all 47 documented symbols resolve in the new package; every index link
resolves; zero stale mlsysim.core.<engine-mod> / mlsysim.infra references anywhere in
docs/. (objects.json inventory is gitignored -- regenerated at build.)
2026-05-29 21:35:39 -04:00
Vijay Janapa Reddi
5b17578797 docs(mlsysim): P10a — propagate core→engine + infra→infrastructure rename to docs/tutorial/paper
Repoint mlsysim.core.<engine-mod> -> mlsysim.engine.<mod>, the
from-mlsysim.core-import-calibration form, and mlsysim.infra -> mlsysim.infrastructure
across the deferred consumers: docs prose + tutorials, tutorial slides/cheatsheet/
exercises, paper.tex, README, cli/DESIGN.md, and the mlsysim_constants audit README.
Also fix two docstrings inside the moved engine modules (calibration.py, pipeline.py)
that still named the old core paths. Update the quartodoc config (sections list) to
the new module paths and add the engine package.

NOTE: the generated quartodoc API stubs under mlsysim/docs/api/ (core.*.qmd,
infra*.qmd) still carry the old paths — they regenerate from the updated config via
`quartodoc build` (toolchain not installed in this worktree), so they are left
untouched here rather than hand-edited. Run `quartodoc build` to refresh them.

482 passed; import clean.
2026-05-29 18:35:38 -04:00
Vijay Janapa Reddi
4290ca0dba refactor(mlsysim): P9a — rename infra/ → infrastructure/ (namespace↔package match)
Pure rename so the package name matches its public namespace (Infrastructure).
All internal + example + doc importers repointed; public mlsysim.Infrastructure
unchanged. Generated docs/api/infra*.qmd stubs left for quartodoc regen (P10).

482 passed, import clean.
2026-05-29 18:22:03 -04:00
Vijay Janapa Reddi
5947a26148 docs(website): replace hardcoded GitHub URLs with dynamic Quarto variables
- Extracted all hardcoded repository and slide download URLs into a central _variables.yml configuration file.
- Replaced 100+ hardcoded URL strings across the website documentation (.qmd, .md, and _quarto-html.yml) with {{< var slides_latest >}} and {{< var github_repo >}} shortcodes.
- Ensures the website correctly points to the canonical cs249r_book repository while enabling instantaneous, single-file URL updates in the future.
2026-05-27 16:51:47 -04:00
Vijay Janapa Reddi
e5ecf995ee chore(tutorial): update CI pipelines, docs, and Makefiles for the new 4-module tutorial structure
- Updated all GitHub Actions workflows (build-pdfs, preview-dev, publish-live, update-pdfs) to loop over `tutorial_module1` through `tutorial_module4` instead of the legacy `part1`/`part2`.
- Updated Quarto documentation (`slides.qmd`, `_quarto-html.yml`) to correctly surface the 4 new module PDFs on the website.
- Updated the tutorial Makefile to compile all 4 modules.
- Updated `.gitignore` and instructor quickstart documentation to reflect the new slide outputs.
2026-05-27 16:47:56 -04:00
Vijay Janapa Reddi
f79d657e3f Merge pull request #1779 from Shashank-Tripathi-07/fix/404-pages-quarto-dark-toggle
Adds body.quarto-dark selectors to all 404 pages, mirroring existing @media rules.
2026-05-27 08:13:40 -04:00
Vijay Janapa Reddi
e7b86fcae1 docs(mlsysim): add docstrings to internal private functions for contributor clarity
- Ensured 100 percent docstring coverage for all internal private methods and functions across the codebase.
- Documented private optimization backends, plugin loaders, CLI formatting hooks, and provenance auditing utilities.
- Makes the codebase fully self-documenting for open-source contributors navigating the internals.
2026-05-25 19:58:34 -04:00
Vijay Janapa Reddi
ff8c5c0f83 chore(mlsysim): OSS developer QoL improvements and test resilience
- Added 'make docs', 'make docs-preview', and 'make audit' targets to Makefile for easier local development.
- Added comprehensive README.md to the vscode-ext workbench extension.
- Refactored test_engine.py to dynamically import calibration constants rather than hardcoding physics assumptions, ensuring tests don't break if base parameters are tuned.
- Fixed a registry path alias in philosophy.qmd caught by the doc drift linter.
2026-05-25 19:47:11 -04:00
Vijay Janapa Reddi
b718eb353b docs: promote philosophy page to main landing hero CTA 2026-05-25 19:44:34 -04:00
Vijay Janapa Reddi
23dc10f2ac docs: standardize Mermaid diagram accent colors to match site brand
- Replaced default light-blue stroke colors with the site's primary accent color (#0284c7) for consistency.
- Applied the highlighting style to the Solvers layer (Layer E) across all architectural diagrams.
2026-05-25 19:36:55 -04:00
Vijay Janapa Reddi
ec0a918a95 docs(mlsysim): enhance documentation with Mermaid diagrams
- Added Mermaid diagram illustrating the Provenance chain in philosophy.qmd.
- Added Mermaid diagram illustrating the Demand vs. Supply abstraction in philosophy.qmd.
- Added Mermaid diagram illustrating the 3-Tier Resolver Architecture in models-and-solvers.qmd.
2026-05-25 19:32:56 -04:00
Vijay Janapa Reddi
da16debd89 docs: add The MLSysim Philosophy explaining analytical rigor and no hallucinations 2026-05-25 19:27:18 -04:00
Vijay Janapa Reddi
e7e403cbbc fix(mlsysim): scale tutorial roofline figures for web layout.
Set Quarto figure defaults, cap notebook image width in site CSS, export web plots at 120 DPI, and let Quarto capture matplotlib figures without fig.show().
2026-05-25 16:01:12 -04:00
Vijay Janapa Reddi
3a191191c7 docs(mlsysim): finish tutorial slides and API reference coverage.
Align part 1/2 slide imports with post-migration solver paths, add registry API stubs, extend doc CI to scan .tex slides, and fix release-note examples.
2026-05-25 15:44:47 -04:00
Vijay Janapa Reddi
ff614a3682 docs(mlsysim): align website with registry migration and add zoo coverage.
Update tutorials and landing pages to canonical nested registry paths, fix solver
import examples, add Platforms/Datasets/Literature/Ops zoo pages plus provenance
docs, and gate doc drift with test_doc_registry_paths.
2026-05-25 15:21:50 -04:00
Vijay Janapa Reddi
7664813119 Merge dev into codex/notation-audit-mlsysim.
Resolve training.qmd conflicts: keep UtilizationGap ProfilingScenarios cell,
drop duplicate static tables in favor of LEGO-generated tables, fix loss-scaling
math to use MarkdownStr equation exports. Tutorial docs use shared includes.
2026-05-25 13:28:14 -04:00
Vijay Janapa Reddi
525c0b70e9 refactor(mlsysim/docs): make tutorial qmds thin includes of canonical .md sources 2026-05-25 13:10:58 -04:00
Vijay Janapa Reddi
1859afa546 Remove mlsysim.core.defaults and migrate book to domain registries.
Delete the catch-all defaults module and relocate assumptions into
Literature, Systems, Infrastructure, Ops, Platforms, and core.calibration.
Update textbook QMD cells, labs, audit tooling, and CI gates so registry
paths are authoritative with no package-root aliases or defaults shims.
2026-05-25 13:08:13 -04:00
Vijay Janapa Reddi
1cad15bbfc Backfill provenance on all mlsysim registry entries and grids.
Adds provenance_catalog records, metadata.provenance on every hardware/model
zoo entry, infra grid profiles, and catalog-linked TraceableConstants; CI
enforces via test_provenance_audit and audit_provenance --strict.
2026-05-25 12:25:02 -04:00
Vijay Janapa Reddi
4031e26652 Merge dev into codex/notation-audit-mlsysim (dev-sync 2026-05-25)
# Conflicts:
#	book/quarto/contents/vol1/introduction/introduction.qmd
#	book/quarto/contents/vol1/ml_systems/ml_systems.qmd
#	book/quarto/contents/vol1/nn_architectures/nn_architectures.qmd
#	book/quarto/contents/vol1/nn_computation/nn_computation.qmd
#	book/quarto/contents/vol1/training/training.qmd
#	book/quarto/contents/vol2/compute_infrastructure/compute_infrastructure.qmd
#	book/quarto/contents/vol2/data_storage/data_storage.qmd
#	book/quarto/contents/vol2/distributed_training/distributed_training.qmd
#	book/quarto/contents/vol2/fault_tolerance/fault_tolerance.qmd
#	book/quarto/contents/vol2/sustainable_ai/sustainable_ai.qmd
#	book/tests/test_units.py
2026-05-25 10:27:42 -04:00
Vijay Janapa Reddi
852176d5cf Document completed registry migration and refresh LEGO baseline.
Update contributing architecture overview, audit README build gates, and post-migration lego_baseline.json snapshot.
2026-05-24 18:53:11 -04:00
Vijay Janapa Reddi
1d33fb03fb Add registry lint lock: pre-commit gates, QMD scanner, refreshed audit YAMLs.
Wire mlsysim allowlist tests and book_check_registry_sources into pre-commit;
refresh 44 mlsysim_constants YAML target_source fields; update LEGO_CELLS.md
and contributing.qmd for registry-first authoring.
2026-05-24 18:42:56 -04:00
Vijay Janapa Reddi
38f0aadb01 Hard-delete model workload duplicates from constants.py.
Remove BERT/ResNet/MobileNet/YOLO/KWS/AlexNet/WakeVision symbols now canonical in
Models.*; fix BERT-Large inference_flops to 72 GFLOPs and extend parity tests.
2026-05-24 18:22:30 -04:00