18934 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 2bd97c5099 Merge dev into main: #1929 appendix layout site-only deploy 2026-07-05 22:30:31 +02:00
github-actions[bot] fc26c6257a Update contributors list [skip ci] 2026-07-05 20:05:25 +00:00
Vijay Janapa Reddi dc94f04db8 style(vol1): pre-commit whitespace/table auto-fix after #1929 merge
Trim trailing whitespace, fix EOF newlines, collapse blank lines, and align
pipe tables in appendices A-E that the pre-commit hooks flag. Content unchanged.
2026-07-05 21:52:52 +02:00
Vijay Janapa Reddi a8e5c649ad Merge remote-tracking branch 'origin/dev' into dev 2026-07-05 12:37:48 +02:00
Zeljko HrcekandGitHub 9ce5bdc776 Refined the PDF layout for Appendices A to E (#1929) 2026-07-04 23:48:45 +02:00
Vijay Janapa Reddi 30538467e8 Merge dev into main: ch15/ch16 layout site-only deploy
# Conflicts:
#	site/about/contributors.json
2026-07-03 22:40:55 +02:00
github-actions[bot] 09c6789539 Update contributors list [skip ci] 2026-07-03 20:07:24 +00:00
Vijay Janapa Reddi d20ec6e3e8 Merge fix/security-alerts: DOM XSS hardening in release-pill + ws/brace-expansion/@babel/core security bumps 2026-07-03 22:05:58 +02:00
Vijay Janapa Reddi dbdae196ad chore(deps): bump ws, brace-expansion, @babel/core to patched versions
Resolve three Dependabot advisories via lockfile-only bumps:
- ws 8.20.1 -> 8.21.0 (GHSA-96hv-2xvq-fx4p, root, transitive via puppeteer-core)
- brace-expansion 5.0.5 -> 5.0.7 (GHSA-jxxr-4gwj-5jf2, interviews/staffml)
- @babel/core 7.29.0 -> 7.29.7 (GHSA-4x5r-pxfx-6jf8, interviews/staffml)
2026-07-03 22:04:45 +02:00
Vijay Janapa Reddi 442dd3693b fix(security): reject non-http(s) hrefs in release-pill
The release pill assigned a data-link attribute straight to a.href, which
CodeQL flags as DOM XSS (js/xss-through-dom). Add a scheme allowlist so only
anchor, relative, and http(s) links pass; anything else such as javascript:
or data: falls back to #release.
2026-07-03 22:04:36 +02:00
Vijay Janapa Reddi 89e1a7c551 style(vol1): pre-commit whitespace auto-fix after #1927/#1928 merge
Collapse extra blank lines and fix end-of-file newline that the pre-commit
hooks flag on responsible_engr.qmd and conclusion.qmd. Content unchanged.
2026-07-03 21:55:50 +02:00
Zeljko HrcekandGitHub fcff434f82 Refined the PDF layout for chapter 15 (responsible_engr.qmd) (#1927) 2026-07-03 21:43:21 +02:00
Zeljko HrcekandGitHub a0ae8a08c4 Refined the PDF layout for chapter 16 (conclusion.qmd) (#1928) 2026-07-03 21:42:36 +02:00
github-actions[bot] 09feef3b7c 🚀 Release vol2-v0.2.1: Vol II content updates
Merged dev branch to main for publication.

Release Type: patch
Published by: profvjreddi
Dev Commit: origin/dev
Specific Commit: latest dev
Description: Vol II content updates
vol2-v0.2.1
2026-07-03 15:39:32 +00:00
github-actions[bot] c8d54450f7 chore: bump volume version(s) to vol2-v0.2.1 2026-07-03 15:38:04 +00:00
github-actions[bot] 0d5a9e43f7 Update contributors list [skip ci] vol1-v0.7.1 2026-07-03 14:58:53 +00:00
Vijay Janapa Reddi 6d86fce58e Merge dev into main: sync workflow files + content for vol1-v0.7.1 publish 2026-07-03 16:48:36 +02:00
github-actions[bot] ce07ebe1c0 chore: bump volume version(s) to vol1-v0.7.1 2026-07-03 13:40:22 +00:00
github-actions[bot] 525c05e1a1 Update contributors list [skip ci] 2026-07-02 21:36:19 +00:00
Vijay Janapa Reddi 6e93c4a007 Merge origin/dev into local dev (origin-pull 2026-07-02)
# Conflicts:
#	book/quarto/contents/vol1/ml_ops/ml_ops.qmd
2026-07-02 21:16:57 +02:00
Vijay Janapa Reddi e9a648dca7 Merge fix/gh-issues-1893-1844: TinyTorch autograd test requires_grad fix (#1893) + StaffML subscribe anchor fix (#1844) 2026-07-02 18:46:19 +02:00
Vijay Janapa Reddi 0279458ffc Merge dev into fix/gh-issues-1893-1844 for retire 2026-07-02 18:44:43 +02:00
Vijay Janapa Reddi 25c984a997 Merge fix/napkin-tighten: surface hidden arithmetic in 12 napkin-math boxes (audit tighten pass) 2026-07-02 18:43:03 +02:00
Vijay Janapa Reddi a3c178d7a5 Merge dev into fix/napkin-tighten for retire 2026-07-02 18:37:00 +02:00
Vijay Janapa Reddi 0cee335b77 fix(staffml): point EcosystemBar Subscribe at the newsletter page
The Subscribe link (desktop and mobile) targeted a non-existent #subscribe
anchor. Point both at https://mlsysbook.ai/newsletter/, matching the canonical
shared/config/navbar-common.yml, which documents why an internal #subscribe
anchor is avoided (Safari content blockers hide anchors containing 'subscribe').
Fixes #1844.
2026-07-02 18:33:12 +02:00
github-actions[bot] 560e399c63 docs: add @Chufeng-Jiang as contributor for bug, code (tinytorch) 2026-07-02 16:33:04 +00:00
Vijay Janapa Reddi 435760b5a9 fix(tinytorch): set requires_grad via attribute in broadcast-gradient test
Module 06's test_unit_broadcast_gradients ran Tensor(data, requires_grad=True)
before enable_autograd() upgrades the constructor to accept it, so the exported
notebook cell raised TypeError. Match the sibling test_unit_function_classes
convention and set requires_grad as an attribute instead; the constructor stays
minimal by design. Fixes #1893.
2026-07-02 18:33:00 +02:00
Vijay Janapa Reddi 2bec7ddc83 Merge fix/intro-deployment-table-scale-anchors: quantify intro deployment-paradigm table so the Observation's 10^5/10^6 span is legible 2026-07-02 18:31:35 +02:00
Vijay Janapa Reddi febc9c175d fix(callouts): surface hidden arithmetic in 3 vol2 napkin-math boxes
Napkin gate tighten pass (audit 2026-07-02), vol2 half:

- compute_infrastructure: H100-vs-H200 solver speedup now bracketed by a
  visible HBM bandwidth ratio (4.8/3.35 ~ 1.4x) with a guard that the
  solver tracks the ratio within 10 percent
- ops_scale: two-proportion sample-size formula surfaced with plug-in
  reproducing the 2,207-sample requirement (cell already computed it)
- performance_engineering: MFU formula displayed with the fleet plug-in
  (14.9 PFLOP / (128 x 989 TFLOP/s x 245 ms) ~ 48 percent) before the tax
  ratio

All new operands exported with typed fmt_* helpers; no existing values
changed.
2026-07-02 18:26:22 +02:00
Vijay Janapa Reddi 9a98e0d3c1 fix(callouts): surface hidden arithmetic in 9 vol1 napkin-math boxes
Napkin gate tighten pass (audit 2026-07-02): each box had a real estimate
whose key arithmetic was computed only in the echo:false LEGO cell or
asserted outright. The combining arithmetic is now visible in the box via
inline refs; new operands exported with typed fmt_* helpers, no hand-typed
literals, no existing values changed.

- ml_systems: TCO break-even division, board-sizing chain (derate ->
  divide -> round up), thermal 12/4=3 W counterfactual vs ceiling (trace
  steps reframed as scenario assumptions)
- ml_workflow: payback = capex / annual savings shown
- training: speedup division + time/cost subtractions shown; 1.7x wall-clock
  vs 2.4x throughput gap surfaced honestly (schedule includes unaccelerated
  work) instead of implied consistency
- model_compression: A100 INT8/FP16 spec operands (624 TOPS / 312 TFLOP/s)
  shown for the 2x
- model_serving: JSON-vs-Protobuf half-a-core chain shown; batching box
  gains a worked representative row reusing the table's own exports
- ml_ops: observability volumes derived visibly (rate x payload / interval)
2026-07-02 18:25:31 +02:00
Vijay Janapa Reddi 7c8fc0ad39 fix(introduction): make deployment-paradigm table show the span the Observation cites
The Four Deployment Paradigms callout stated a 10^5 memory / 10^6 compute gap
between Cloud and TinyML, but Table 1.5 carried only qualitative envelope
descriptions, so the Observation could not be read off the table.

Add per-tier order-of-magnitude anchors (bytes for memory, base ops/s for
compute) to the Memory and Compute columns, all derived from the same MLSysIM
tiers and hardware twins that already computed the span. The Cloud-to-TinyML
endpoints now visibly produce the 10^5 / 10^6 span, and a new guard locks those
endpoints to the cited span so the table and the Observation cannot silently
diverge. Reword the Observation to read the span off the columns rather than
assert it.
2026-07-02 18:13:27 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
66a1977f11 chore(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 in /interviews/staffml (#1915)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.2.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.1...4.2.0)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.2.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-02 17:49:50 +02:00
Zeljko HrcekandGitHub 59b6d989fc Refined the PDF layout for chapter 14 (ml_ops.qmd) (#1921) 2026-07-02 17:49:35 +02:00
Vijay Janapa Reddi 7786a83300 Merge fix/napkin-reclass: reclassify 30 napkin-math callouts that do not estimate (audit 2026-07-02) 2026-07-02 17:33:11 +02:00
Vijay Janapa Reddi 3ff5a011af fix(callouts): reclassify 13 vol2 napkin-math boxes that do not estimate
Napkin Math audit (2026-07-02, 218 boxes): these boxes are algorithm traces,
opaque solver demos, profile tables, or asserted comparisons — not redoable
estimates — so they move to the type their content promises:

- 8 -> .callout-example (ring AllReduce and error-feedback traces, both
  Tier 3 optimizer solver demos, deadlock illustration, profiler detective,
  noisy-neighbor scenario, cold-start timeline)
- 5 -> .callout-perspective (storage footprint, multi-tenancy tax,
  robustness tax, interconnection queue, price of privacy); Problem-question
  openers rewritten declaratively per the perspective register

IDs renamed nbk- -> psp-/exmp- (slugs unchanged); all refs swept; tables,
margin figures, LEGO cells, and computed values untouched.
2026-07-02 14:52:35 +02:00
Vijay Janapa Reddi e163b6f27e fix(callouts): reclassify 17 vol1 napkin-math boxes that do not estimate
Napkin Math audit (2026-07-02, 218 boxes): these boxes are profile tables,
qualitative comparisons, traces, or conceptual arguments — not redoable
estimates — so they move to the type their content promises:

- 12 -> .callout-perspective (budget/profile tables, asserted-benchmark
  comparisons, conceptual arguments); Problem-question openers rewritten
  declaratively per the perspective register
- 5 -> .callout-example (scenario walkthroughs, worked formula, trace)

IDs renamed nbk- -> psp-/exmp- (slugs unchanged); all refs swept; tables,
LEGO cells, and computed values untouched. Gate now documented in
.claude/rules/callouts.md (napkin gate).
2026-07-02 14:51:17 +02:00
Vijay Janapa Reddi 099e3085bf ci(pre-commit): exempt auto-synced newsletter posts from whitespace hooks
site/newsletter/posts/ is auto-generated from Buttondown (sync-newsletter.yml) and uses intentional 2-space markdown hard line breaks. The trailing-whitespace hook was stripping those and failing CI on the full-repo run (the posts bypass the local pre-commit gate on their automated commit). Exclude the auto-synced posts dir from trailing-whitespace + end-of-file-fixer so future syncs do not break dev CI.
2026-07-02 12:40:31 +02:00
Vijay Janapa Reddi fd344e2951 chore(model_serving): merge-hygiene + division glyph consistency
Collapse blank lines and trim trailing whitespace surfaced after the origin merge, and use the book's prose-division glyph (÷) for the prefill TTFT calc (1000 tokens ÷ 10,000 tokens/s), matching the convention used in benchmarking and clearing a spaced-slash false-positive.
2026-07-02 11:51:09 +02:00
Vijay Janapa Reddi 89c79e3d46 Merge origin/dev into dev (PDF layout #1920, contributors, newsletter sync) 2026-07-02 11:37:48 +02:00
Vijay Janapa Reddi 2e8ecae29e Merge fix/percent-calc-lines into dev
Worked-calc percent glyphs across 6 chapters (fmt_math), plus the benchmarking Step-4 achievable-perf numeric fix (perf_b32 = util x FP16 peak + guard). Rendered-HTML verified: glyph on calc lines, word in narrative, all read correctly.
2026-07-02 11:35:24 +02:00
Vijay Janapa Reddi 33d6ca4453 Merge dev into fix/percent-calc-lines (sync end-of-chapter research questions) 2026-07-02 11:34:26 +02:00
Vijay Janapa Reddi de7cd5696e style(model_serving): glyph the postfailure-utilization worked-calc percentage
Render the shown-division result with the math % glyph (fmt_math), matching the other worked-calc lines on this branch; verified in the rendered HTML (= 39.8%. reads cleanly mid-sentence). Found by the book-wide sweep.
2026-07-02 11:33:03 +02:00
github-actions[bot] 03a6492f19 chore: sync 1 newsletter post(s) from Buttondown [automated] 2026-07-02 07:11:42 +00:00
github-actions[bot] 24ee3ed03b chore: sync 1 newsletter post(s) from Buttondown [automated] 2026-07-02 07:11:39 +00:00
Vijay Janapa Reddi 18da7354f0 style(hw_acceleration): glyph the GPT-2 utilization worked-calc percentage
The Actual/Peak roofline derivation rendered its result with the prose word ("~ N percent"); render it with the math % glyph (fmt_math), matching the Step-3/Step-4 benchmarking treatment. The narrative reuse a few lines later keeps the word. Found by a book-wide sweep for the same pattern.
2026-07-02 08:48:43 +02:00
Vijay Janapa Reddi 6be402d8d2 style(percent): render worked-calc percentages as math glyphs in three chapters
In data_selection (ROI), distributed_training (comm overhead), and fleet_orchestration (checkpoint overhead + the queue-wait throughput bullets), percentages consumed inside worked-calculation lines now render with the math % glyph instead of the prose word, per the MIT Press sentence-vs-data rule. Prose twins are kept for narrative sentences.
2026-07-02 08:42:00 +02:00
Vijay Janapa Reddi a204dae8d9 fix(benchmarking): correct Step-4 achievable-perf identity and glyph its worked-calc percentages
Step 4 displayed "perf ~ 85% x 312 TFLOP/s = <value>" but computed the value from p_b32.throughput (solved at fp32, ~19.5 TFLOP/s peak), yielding 16.5 TFLOP/s -- a self-contradictory identity. Compute perf_b32 from the displayed identity (util_peak x FP16 peak = 0.85 x 312 = 265.2) and add a guard that batch-32 perf must exceed batch-1 perf.

Render the Step-3/Step-4 worked-calc percentages with the math % glyph (fmt_math) instead of the prose word, keeping the prose twins for narrative sentences.
2026-07-02 08:41:00 +02:00
Zeljko HrcekandGitHub 51e70d05ad Refined the PDF layout for chapter 13 (model_serving.qmd) (#1920) 2026-07-02 08:29:20 +02:00
Vijay Janapa Reddi 41eca1cfa3 Merge branch 'feat/research-questions' into dev 2026-07-01 12:26:53 -04:00
Vijay Janapa Reddi 82b7679c3d Add end-of-chapter research questions 2026-07-01 12:23:48 -04:00