143 Commits
Author SHA1 Message Date
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 ReddiandGitHub 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
Vijay Janapa Reddi f96f794995 Hard-delete interconnect constants; canonical source is Hardware/Systems registries.
Wire registry parity tests, inline fabric bit-rates in Systems.Fabrics, and update
labs, tutorials, and unit tests to use registry paths instead of loose constants.
2026-05-24 18:16:39 -04:00
Vijay Janapa Reddi 12c6e40949 Phase 0: migration manifest, LEGO baseline, parity scaffold, DATA_MODEL.
Establish verified dead-symbol inventory and chapter-level migration manifest
so registry cleanup can proceed with parity gates and one commit per step.
2026-05-24 16:35:44 -04:00
Vijay Janapa Reddi 93d609259b Merge dev into codex/notation-audit for retire
# Conflicts:
#	book/quarto/contents/vol1/backmatter/appendix_algorithm.qmd
#	book/quarto/contents/vol1/backmatter/appendix_dam.qmd
#	book/quarto/contents/vol1/benchmarking/benchmarking.qmd
#	book/quarto/contents/vol1/frameworks/frameworks.qmd
#	book/quarto/contents/vol1/hw_acceleration/hw_acceleration.qmd
#	book/quarto/contents/vol1/introduction/introduction.qmd
#	book/quarto/contents/vol1/model_compression/model_compression.qmd
#	book/quarto/contents/vol1/training/training.qmd
#	book/quarto/contents/vol2/collective_communication/collective_communication.qmd
#	book/quarto/contents/vol2/edge_intelligence/edge_intelligence.qmd
#	book/quarto/contents/vol2/network_fabrics/network_fabrics.qmd
#	book/quarto/contents/vol2/robust_ai/robust_ai.qmd
2026-05-23 16:22:27 -04:00
Vijay Janapa Reddi 05bdff6e68 Citation-reference audit: prose rewrites + author-form cleanup
Codex chapter-by-chapter audit findings applied across vol1 and vol2:
prose rewrites where the cited source supported only a narrower or
adjacent claim, plus new audit tooling
(book/tools/scripts/build_citation_reference_packets.py and the
companion workflow doc).

Author-form cleanup pass on top of the audit:
- 19 narrative @key conversions where prose already named the author
  (e.g., "Sambasivan et al. describe ... [@sambasivan2021]" -> narrative
  "@sambasivan2021 describe ...", rendering "Sambasivan et al. (2021)
  describe ...") - removes the citeproc duplication that the
  manual-bracket regex did not catch.
- 4 [-@key] suppressed-author conversions for possessive eponyms
  (Han et al., Vaswani et al., Patarasuk and Yuan, Linnainmaa).
- 2 [-@key] conversions where the prose names an author/entity that
  matches the cited author (Patterson and Hennessy's iron law,
  Google's data centers + Google whitepaper).
- 1 Horowitz footnote rewritten to narrative so the inline year
  replaces a duplicated "(ISSCC 2014, ...) (Horowitz 2014)" pair.
- 1 narrative @russell2021 anchoring "As Russell argues" that was
  previously a bare attribution.
- 1 pre-existing narrative fix for "Graham et al. report ..." in
  collective_communication that had no cite on the line.

Pre-commit cleanups landing with this commit:
- subramanya2019diskann: add publisher = Curran Associates (NeurIPS
  proceedings, per bib-check rule 3).
- Remove orphaned @misc{Wu2016} GNMT bib entry in vol2; it had no
  citations and collided case-insensitively with @inproceedings{wu2016}
  (the cited Quantized CNNs paper) under bibtex-tidy's normalization.
- vol1/training/training.qmd: drop the dead UtilizationGap LEGO cell
  (gpu_real_tflops_*, cluster_*_tflops_*) and the dead
  TrainingModels.{gpt3_gpu_years,gpt3_compute_cost}_str exports plus
  their unused upstream values.
- vol2/distributed_training/distributed_training.qmd: anchor the
  orphaned [^fn-parameter-server] footnote on the body-prose mention
  of "parameter-server systems" rather than deleting the definition.

manual-bracket hook (book-check-refs) green at this tip.
2026-05-23 13:35:14 -04:00
Vijay Janapa Reddi 216e5a0695 Resolve Vol1 notation constant consistency 2026-05-22 22:38:22 -04:00
Vijay Janapa Reddi 54ef0ae7be chore: apply bib-tidy auto-formatting
Pre-commit hook formatting fixes applied to bib files brought in from the
dev merge. Whitespace/field-order only; no semantic changes.
2026-05-20 11:22:02 -07:00
Rocky a27ff11fc1 fix(404): add body.quarto-dark selectors alongside @media dark rules 2026-05-18 18:48:28 +05:30
Vijay Janapa Reddi 281a58ca22 Add first-order mlsysim modeling extensions 2026-05-17 22:25:56 -04:00
Vijay Janapa Reddi 8362775cd3 Polish mlsysim 0.1.2 release 2026-05-17 19:32:35 -04:00
Farhan AsgharandGitHub 361752e7d9 fix(mlsysim/docs): resolve 404s on Self-Paced Tutorial sidebar links (#1746)
The three Self-Paced Tutorial sidebar entries pointed at .md files
that were either outside the docs/ Quarto project (../tutorial/*.md)
or had a .md href Quarto won't serve as a page (laws-explained.md).

Bring all three under docs/ as .qmd so Quarto renders them:
- copy tutorial/{exercises,cheatsheet}.md -> docs/tutorial/{...}.qmd
- rename docs/laws-explained.md -> docs/laws-explained.qmd
- update sidebar hrefs in config/_quarto-html.yml
2026-05-16 10:30:59 -04:00
Farhan AsgharandGitHub bd669a2c7d Fix dark mode navbar dropdown styling (#1747) 2026-05-16 10:29:49 -04:00
Farhan AsgharandGitHub 0f4176e0c1 Fix MLSysim docs inline code dark mode (#1742) 2026-05-14 09:38:19 -04:00
Farhan AsgharandGitHub 575ba0fa22 Fix MLSysim bibliography dark mode (#1743) 2026-05-14 09:38:02 -04:00
Farhan AsgharandGitHub 8f19f576a7 Fix MLSysim landing page dark mode references (#1741) 2026-05-14 09:37:55 -04:00
Vijay Janapa Reddi c005be91aa chore(announcements): drop self-link CTAs from Line 1 of every subsite
Every subsite's announcement bar Line 1 carried a 'Start reading →' / 'Start building →' / 'Get started →' link that pointed at the very subsite the reader was already on. Clicking it was a no-op self-navigation.

Strip the CTA from Line 1 across all 8 sites that have the regression:
  - announcement-vol1.yml  drop 'Start reading →'
  - announcement-vol2.yml  drop 'Start reading →'
  - tinytorch              drop 'Start building →'
  - mlsysim                drop 'Get started →'
  - kits                   drop 'Get started →'
  - labs                   drop 'Preview →'
  - slides                 drop 'Browse decks →'
  - instructors            drop 'Start here →'

Line 1 keeps the bold identity statement, which is what readers came for. The other lines (Vol I / II links, sibling row, newsletter CTA) keep their navigations since they DO lead somewhere new.

announcement-book.yml is unchanged — its Line 1 already points at the ecosystem root (https://mlsysbook.ai/), not at /book/ where the reader is.
2026-05-13 20:35:33 -04:00
Vijay Janapa Reddi 518b67e1f9 Update MLSYSIM slide references 2026-05-13 15:34:33 -04:00
Vijay Janapa Reddi d07cf72528 refactor: migrate slides + mlsysim tutorial from xelatex to pdflatex
Switches 35 chapter decks (slides/vol1 + slides/vol2) and 2 mlsysim
tutorial decks (mlsysim/tutorial/slides/tutorial_part{1,2}.tex) from
xelatex+fontspec+texgyreheros to pdflatex+helvet+courier.

Why
---
Yesterday's slides-publish-live shipped PDFs with completely blank text
(see https://github.com/harvard-edge/cs249r_book/releases/download/
slides-latest/vol1_00_course_overview.pdf — Liberation Sans was
embedded but glyphs were missing because xelatex on Ubuntu CI could
not find texgyreheros.otf and silently fell back). The mlsysim
tutorial decks fared no better, requiring four rounds of fixes
(Helvetica Neue → texgyreheros → tex-gyre apt + mktexlsr → Latin
Modern) before they would even compile.

The root cause is engine choice: fontspec on xelatex makes runtime
OS-font discovery the build's critical path. If the host TeX install
or fontconfig doesn't have the requested font, fontspec either errors
hard (mlsysim's experience) or silently substitutes (slides' silent
broken-PDF failure mode). Either way the build is fragile.

paper.tex has been using pdflatex+helvet+mathpazo+courier for months
without a single font issue. Bringing slides + mlsysim tutorial onto
the same engine + font convention eliminates the entire failure class.

Changes
-------
* 35 chapter decks: replace
    \usepackage{fontspec}
    \setsansfont{texgyreheros}[Extension=.otf, ...]
    \setmonofont{texgyrecursor}[Extension=.otf, ...]
  with
    \usepackage[T1]{fontenc}
    \usepackage[scaled=0.9]{helvet}
    \usepackage{courier}
    \renewcommand{\familydefault}{\sfdefault}
  Same Helvetica-class look (NimbusSans = URW's Helvetica clone in
  helvet), shipped via texlive-fonts-recommended Depends.

* 2 mlsysim tutorial decks: same swap (was Latin Modern from the prior
  retry).

* slides/Makefile: LATEX := xelatex → pdflatex.
* mlsysim/tutorial/Makefile: same.

* slides-build-pdfs.yml: drop texlive-xetex (engine), drop
  texlive-fonts-extra (was for tex-gyre). Result: smaller apt-install,
  no fontspec silent-fallback class of bugs.

* mlsysim-build-pdfs.yml: same engine + apt cleanup; drop JetBrains
  Mono manual fc-cache step (we no longer reference JetBrains Mono).

Bar copy
--------
* mlsysim/docs/config/announcement.yml: append Lecture Slides to the
  "Alongside the book" row — the mlsysim tutorial deliverable IS slides,
  so cross-linking is natural.

* site/config/announcement.yml: drop the "🎓 Teach with it: Lecture
  Slides · Instructor Hub" line entirely from the landing bar. Landing
  is for learners; teachers find Instructor Hub via the navbar Teach
  menu, and Slides via Instructor Hub.

Verification
------------
Local Mac builds with pdflatex:
  - vol1/01_introduction: 52 pages, NimbusSans-Regu/Bold embedded
  - vol2/05_distributed_training: 48 pages, NimbusSans embedded
  - mlsysim tutorial_part1: 90 pages, NimbusSans embedded
  - mlsysim tutorial_part2: 47 pages, NimbusSans embedded
All Type 1, sub-set, Unicode tag yes — renders cleanly.
2026-05-13 10:55:42 -04:00
Vijay Janapa Reddi 11194193c0 feat(bars): add StaffML to ecosystem cross-link row across 8 Quarto sites
For the public launch, every site's "Alongside the book" (or "Build
with your students") row now lists StaffML alongside TinyTorch, Hardware
Kits, MLSys·im, and Labs. Two coupled changes:

  • StaffML appended with verb "practice" — pairs cleanly with the
    existing verbs (build / deploy / model / explore / practice).
  • MLSys·im verb changed from "simulate" to "model" to match the
    project's own self-description ("first-principles analytical
    modeling for ML training and inference; model the physics before
    you build"). MLSys·im is analytical, not Monte-Carlo simulation;
    the new verb is more honest and the audience reads it cleanly.

Also restores tinytorch/quarto/config/announcement.yml to the canonical
4-line ecosystem template. That file had been silently rewritten to a
release-only banner ("🎉 v0.1.11 released — ...") by the
tinytorch-publish-live workflow, dropping the ecosystem cross-links
entirely. Restoration here; workflow fix is a separate commit.

Per-site row state after this commit (each site omits itself):

  site, vol1, vol2:  TinyTorch · Kits · MLSys·im · Labs · StaffML
  instructors:       TinyTorch · Kits · Slides · StaffML
  kits:              TinyTorch · MLSys·im · Labs · StaffML
  labs:              TinyTorch · Kits · MLSys·im · StaffML
  mlsysim:           TinyTorch · Kits · Labs · StaffML
  tinytorch:         Kits · MLSys·im · Labs · StaffML
  slides:            (teacher-focused row, unchanged)

The staffml site itself has its own Next.js ecosystem navbar
(EcosystemBar.tsx) which is out of scope for this Quarto-only sweep
and audited separately.
2026-05-12 09:55:35 -04:00
Vijay Janapa Reddi f9a4db830c style: standardize dimensions and multipliers to MIT Press 2026 house style 2026-05-10 15:09:47 -04:00
Vijay Janapa Reddi 2332e6f881 fix(mlsysim/docs/math): drop italics around 6 source attributions
Source notes wrapped in *...* italics tripped the source-note check's
asterisk-wrapping rule. The italics carried no semantic weight; the
trailing period was already present. Strip the asterisks so the notes
render as plain prose, matching the convention used elsewhere in
mlsysim/docs/.
2026-05-06 08:10:25 -04:00
Vijay Janapa Reddi d9e57cc736 Merge dev into chore/bib-verify-sweep (taking dev prose for conflicts) 2026-05-06 07:22:04 -04:00
Vijay Janapa Reddi a955b8142f chore: untrack 5 build-output PDFs regenerated by Makefile/CI
Five PDFs in the source tree are pure build artifacts that CI
re-deploys at every run; the committed copies served no purpose
beyond local-preview convenience and accumulated as stale snapshots.

- mlsysim/docs/mlsysim-paper.pdf
  CI overwrites at deploy: mlsysim-publish-live.yml runs
  cp ./pdf-artifacts/paper.pdf to MLSYSIM_DOCS/mlsysim-paper.pdf.
  Local quarto preview now requires building the paper first
  (cd mlsysim/paper && make).
- mlsysim/paper/figures/solver-chaining.pdf
- periodic-table/paper/figures/{mamba,molecular_ml,periodic_table_hero}.pdf
  All FORCE-regenerated from SVG by the per-paper Makefiles whose
  own comment is the rationale: "a stale committed PDF cannot mask
  a freshly edited SVG."

Drop the matching ! whitelist entries from .gitignore so the global
*.pdf rule prevents accidental re-commit. Tutorial slide PDFs and
callout icons remain whitelisted, those are sources not build outputs.

Note: tinytorch/quarto/assets/downloads/00_tinytorch.pdf is NOT
removed. Despite the slide-deck-like filename, no Beamer/Quarto
source exists for it and big-picture.qmd consumes it directly via
pdf.js viewer and download link. Treating it as a binary source
asset until a source is authored or LFS Phase 2 is set up.
2026-05-06 06:30:56 -04:00
Vijay Janapa Reddi c3921491e8 chore(bib): fix paper-subproject wrong-paper keys and corrupt entries
Round 2 of the bib audit, covering paper subprojects (mlsysim,
tinytorch, periodic-table, mlperf-edu) that the textbook-focused first
pass deferred. Same pattern as round 1: surname/year prefixes did not
match the entry's actual paper, plus several corrupt entries from
Crossref misidentification.

Renames:
- mlsysim/{docs,paper}: barrett2024 -> zheng2024sglang (SGLang paper,
  Zheng is first author).
- mlsysim/paper: zhao2025 -> deepseek2025v3 (DeepSeek-V3 ISCA paper,
  corporate author DeepSeek-AI).
- tinytorch: key499f5624 -> tanenbaum1987os (hash-fallback for
  Tanenbaum OS textbook); fry1985 -> abelson1996sicp (SICP 2nd ed,
  Fry is not in author list); wooster1982 -> papert1980mindstorms
  (Mindstorms by Papert, Wooster not in author list); collins2018 ->
  collins1989apprenticeship (Cognitive Apprenticeship paper is 1989).
- tinytorch + periodic-table: vaswani2025 -> vaswani2017attention
  (Attention paper is 2017; entries had a corrupt publisher and bogus
  DOI from Crossref misidentification).

Body fixes accompanying renames:
- tanenbaum1987os, abelson1996sicp, papert1980mindstorms: rebuilt as
  @book entries (were @article with stale review/journal DOIs).
- vaswani2017attention: rebuilt with canonical NeurIPS 2017 metadata
  (Curran Associates, vol 30, pp 5998-6008); dropped corrupt DOI.

Orphan deletions:
- tinytorch keybe9561f4 (hash-fallback, no cite sites).
- mlperf-edu vaswani2017attention (orphan).

21 cite-site updates across 4 paper subprojects. bib_lint reports 0
errors across all 5 modified bibs.
2026-05-05 20:21:04 -04:00
Vijay Janapa Reddi c0241d2f80 chore(bib): fix wrong-paper keys, DOI dupes, and corrupt entries
Per-file audit caught 14 cite keys whose surname prefix or year did not
match the entry's actual paper, plus 4 DOI duplicates and 3 corrupted
orphan entries. Renames preserve the cited paper; only the key changes.

Renames (key -> first-author-surname-year-shortform):
- vol2: agarwal2022 -> ouyang2022instructgpt; alistarh2024 ->
  ashkboos2024quarot; belkada2022 -> dettmers2022llmint8; borgeaud2022 ->
  hoffmann2022chinchilla; bosma2022 -> wei2022cot; ermon2023 ->
  rafailov2023dpo; koyejo2023 -> schaeffer2023mirage; nofal2023 ->
  beyer2016sre (year/publisher also corrected to O'Reilly 2016).
- vol1: mccarthy2006 -> mccarthy1955dartmouth; krizhevsky2017 ->
  krizhevsky2012imagenet; zhang2021 -> zhang2017rethinking; ford2012 ->
  savage2009flaw; wonyoung_kim2008 -> kim2008dvfs; estrada2026 ->
  dehghani2022datamesh; michelucci2018 -> glorot2010xavier (entry was
  Michelucci textbook chapter, prose wanted Glorot/Bengio AISTATS 2010);
  chapelle2009 -> chapelle2006semisupervised (entry was 1-page IEEE
  review, prose wanted the actual MIT Press book).
- interviews: key555befcd -> gierl2013automatic; chiang2023 ->
  zheng2023judging; boylan1989 -> tay2024interview (Grind 75 web
  resource); stenbeck1992 -> hambleton1991 (entry was 1992 review of the
  1991 IRT book, content was the book).

DOI dedup:
- vol1 palmer1980 + palmer1980intel8087 -> palmer1980intel8087 (same
  paper, redirected cite, deleted dupe).
- vol2 masanet2020 + masanet2020energy -> masanet2020energy (same paper,
  redirected cite, deleted dupe).
- vol1 abadi2016tensorflow had wrong DOI pointing to the 2018 EuroSys
  Dynamic Control Flow paper; rebuilt as the OSDI 2016 TensorFlow paper
  it claims to be. Mirrored same correction into vol2's duplicate entry.

Orphan deletions (zero cite sites, corrupted metadata):
- vol1 acun2023; vol1 aggarwal2018; interviews gallifant2024 (the clean
  GPT-4 entry already exists at openai2023gpt4).
- vol1 yu2018 (legitimate paper but unused).
- vol2 mckinsey2018ai and triton.jit (orphans flagged for missing year;
  triton.jit was a false positive from a Python decorator inside a code
  block, not a citation).

Field repairs:
- aws2020s3: added year=2020, fixed corrupted author "A. W. Services"
  to {Amazon Web Services}, added howpublished + url.

51 cite-site updates across 25 files in vol1/vol2/interviews/mlsysim.
All book-prose.md §5 cite-mechanics audit greps return zero hits.
bib_lint reports 0 errors across all three modified bibs.
2026-05-05 20:00:54 -04:00
Vijay Janapa Reddi 5f94bf3b20 chore: complete bib sweep and fix three citation bugs
Wraps up the bib-verify sweep across vol1, vol2, and the paper sub-projects,
and corrects three citation issues introduced earlier in the branch:

- Restore tang20211bit (1-bit Adam, Tang et al. ICML 2021) in vol2 bib and
  in collective_communication.qmd. The earlier sweep had renamed the cite
  to li2022, which now resolved to AlphaCode or 1-Bit LAMB.
- Restore micikevicius2018mixed in vol1 bib to point at "Mixed Precision
  Training" (Micikevicius et al. ICLR 2018). The entry had been overwritten
  with an unrelated OpenSeq2Seq paper while the cite key stayed the same.
- Drop the unused li2022 (AlphaCode) entry and the duplicate li2022 (1-Bit
  LAMB) entry from vol2 bib.

Also remove eight same-paper duplicate entries that the sweep had left
behind (vol1: lawson1979, gholami2022, lange2009, ribeiro2016; vol2:
bursztein2024, rasley2020, sevilla2022, narayanan2019).

After this commit the bibs have zero duplicate keys and zero orphan
citations across both volumes and all five paper sub-projects.
2026-05-04 21:22:07 -04:00