CLI changes:
- Fix default PDF/EPUB config paths to use vol1 configs instead of
non-existent combined configs (_quarto-pdf.yml -> _quarto-pdf-vol1.yml)
ml_systems.qmd fixes:
- Fix bottleneck_str formatting (value is already a string, not a number)
- Fix malformed imports where 'from physx.formatting import fmt' was
incorrectly placed inside parentheses of another import block
- Fix Quarto cell directives placement (must come before any code)
- Fix precision=0 rounding 0.1 to 0 for energy values
- Update notation to use proper LaTeX subscripts ($D_{vol}$, $E_{tx}$, etc.)
Fork PRs downgrade GITHUB_TOKEN to read-only, causing 403 when
applying labels. pull_request_target runs in the base repo context
and grants the declared write permissions.
Replaces hardcoded numerical values with symbolic Python variables derived from defined constants and formulas.
This improves code maintainability and consistency, ensuring calculations are based on accurate and up-to-date physical values.
The visualization helpers have been moved to the physx library. This commit removes the old viz.py file and replaces it with a backward-compatibility shim that imports the visualization helpers from physx.viz. This ensures that the Quarto build tooling can continue to use the visualization helpers without modification.
Organizes quantitative calculations into a dedicated `physx` library, for improved code organization and maintainability.
- Moves calculation logic, constants, and formatting helpers.
- Updates chapters to import from the `physx` library.
- Adds pre-commit hooks for inline reference and unit validation.
- Deletes obsolete inline Python calculation validation files.
Instead of a separate workflow, adds a 'site_only' boolean checkbox
to the existing Publish (Live) workflow. When checked:
- Skips version bump (pyproject.toml, badges, installer, announcement)
- Skips PDF generation
- Skips tag creation and GitHub Release
The build & deploy steps still run identically. One workflow, two modes.
Removes the previously added tinytorch-deploy-site-only.yml.
Adds a new workflow 'TinyTorch · 🌐 Deploy Site Only' for deploying
website content updates without triggering version bumps, tags, or
releases. Ideal for:
- Typo fixes
- Team page updates
- CSS/styling changes
- Documentation updates
Use 'Publish (Live)' for versioned releases, 'Deploy Site Only' for
quick website-only updates.
- Add new Team page featuring core staff and contributors
- Vijay Janapa Reddi (Nerdy Professor), Andrea Garavagno (Tech Lead),
Kari Janapareddi (Chief of Staff), Kai Kleinbard (Web Wizard)
- Display community staff side-by-side with fun role titles
- Move Acknowledgments to separate page for MiniTorch/micrograd credits
- Add contributor generator script for future automation
- Update navigation: Team → Ecosystem → Acknowledgments
Replace the slide download card with an inline PDF viewer using PDF.js:
- Change grid layout from 4 cards (2x2) to 3 cards in a row
- Add embedded slide viewer with navigation, zoom, and fullscreen
- Load slides from local _static/slides/ for reliable CORS handling
- Add "· AI-generated" subtitle to match audio card pattern
- Use 🔥 icon consistently across all viewers
Affected: 20 module ABOUT.md files + big-picture.md
Ensures copyedit PDFs use the same font size as regular PDFs.
Increases float capacity for copy-edit mode to accommodate double-spacing and prevent potential layout issues.
Copies the base configuration file by first removing any existing symbolic link to prevent errors.
- Corrected 'Cost of Real-Time' calculation in data_engineering.qmd (batch core hours).
- Corrected Python dispatch overhead, TensorRT speedup, and PCIe transfer times in frameworks.qmd.
- Corrected energy of training and efficiency ratio in dl_primer.qmd.
- Corrected matrix multiplication result vector in dnn_architectures.qmd.
- Corrected GPT-2 FLOPs estimates and formulas in training.qmd.
- Corrected Attention FLOPs formula in appendix_algorithm.qmd.
- Updated ridge point calculation comment in appendix_machine.qmd.
- Updated disparity string formatting in responsible_engr.qmd.
- Reverted variable replacements for historical dates/constants in dl_primer, dnn_architectures, ml_systems, and introduction chapters as per user request.
Replaces the chapter connection callout icon with a revised SVG version.
The new icon features bolder strokes and larger chain link circles for improved visual clarity.
- Rewrite notation chapter with collision-resolution rationale and quick-reference table
- Fix foldbox.tex page-break spacing (remove forced font size, improve continuation margins)
- Make dropcap.lua robust to RawInline/index entries and non-standard PDF formats
- Add DAM Coordination (sum→max overlap) and Bottleneck Diagnostic table to appendix
- Add Bottleneck Diagnostic table to Part III Optimize principles intro
- Promote Iron Law analogy footnote to callout-perspective box in introduction
- Rename 'Napkin Math' callout labels to cleaner titles in serving/conclusion
- Inline SciPy footnote into figure caption in frameworks chapter
- Add Iron Law production monitoring callout in ops chapter
- Add Sorscher et al. 2022 to references.bib
- Fix TikZ coordinate ordering in training chapter memory chart
- Comment out non-intro chapters in PDF config for focused compilation
- Change vol2 scaling laws callout from callout-note to callout-theorem
- Connect 'ML Systems Engineering' practice back to 'AI Engineering' discipline in the Five-Pillar Framework section.
- Update Summary to explicitly frame the chapter's principles as the mandate of AI Engineering.
- Expand 'Purpose' to frame the book around the 'Physics of Machine Learning Systems' (system to silicon).
- Move 'Defining AI Engineering' section to follow 'The Efficiency Framework' for better narrative flow.
- Update 'Defining AI Engineering' to explicitly reference the four pillars (Bitter Lesson, Degradation Equation, Iron Law, Efficiency Framework).
- Convert 'Note on the Iron Law' callout to a footnote for cleaner reading.
- Streamline dimensional analysis explanation.
- Remove orphan closing div at lst-forward_structure (both code blocks
now properly contained in single listing)
- Add blank line before callout-example div to separate from \index{}
commands (required for Quarto to recognize block-level fenced divs)
- Fix \index{} commands breaking rendering when placed before footnote
definitions, div openers (:::), or on same line as headings
- Add check_index_placement.py script with --fix flag to automatically
detect and fix these patterns
- Update training.qmd and data_engineering.qmd with corrected index placement
- Include other pending content and visualization updates
- Enhance cross-reference wording across all vol1 chapters for better
readability (e.g., "see @sec-..." instead of bare references)
- Add index generation support via imakeidx in LaTeX headers
- Add FIGURE_LIST_VOL1.md with complete figure catalog (206 figures)
- Add content_map.json for figure/table tracking
Configures the table of contents and appendix structure for Volume 1 of the book in the Quarto configuration file.
Specifically, uncomments the main content chapters to include them in the book build and moves the appendices configuration to a dedicated "appendices" section, ensuring proper appendix numbering.
Adds a citation for compiling machine learning programs.
Corrects minor errors and improves clarity in framework descriptions and hardware acceleration explanations.
Reintroduces the accelerator economics and fusion benefits tables after accidental deletion. This ensures the completeness of the hardware acceleration chapter.
- Fix footnotes incorrectly breaking into definition text (appendix_machine, appendix_algorithm)
- Move forbidden footnotes out of callout divs (hw_acceleration, serving, training)
- Convert inline footnote info to inline text where appropriate
- Add fig-alt text to code-cell figures (dl_primer, hw_acceleration, serving, workflow)
- Add fig-cap and fig-alt to TikZ figures (distributed_training, introduction, edge_intelligence, networking, sustainable_ai)
- Fix hook ordering: Black formatter now runs before blank line collapse
- Move footnote definition outside TikZ div in frameworks.qmd
- Fixes fig-amortization-comparison: scales Y-axis values from 12000 to 12
to avoid LaTeX dimension limit (~16383pt)
- Fixes fig-compute-optimal-frontier: replaces problematic \fill...plot
with proper \addplot[fill=...] \closedcycle for log-scale coordinates
- Updates figure reference text to use @fig-selection-inequality
- Adds ch_data_selection.py calculation module
- Updates viz.py with new plot functions
- Various chapter updates across vol1 and vol2
Migrates the data visualization code from R to Python for better maintainability and integration with other Python-based components.
This change streamlines the code, improves readability, and ensures consistency across the project.
Updates the Total Cost of Ownership (TCO) calculation for enhanced readability and accuracy.
This includes clarifying variable names, improving the structure of calculations, and updating the display of financial and carbon impact metrics.
Adds the `engine: jupyter` metadata to multiple Quarto files.
This ensures that these files are processed using the Jupyter engine when rendered by Quarto, enabling the execution of embedded code cells.
Updates the callout icons to use the new primary color scheme
for improved visual consistency across the book.
Specifically, updates the "chapter connection" icon to use the
new color. Also updates some pdf resources and fixes an issue
where some icons were duplicated.
Enhances the benchmarking chapter by reformatting equations for improved readability and converting R plots to Python for consistency.
This change aims to present information in a clearer and more accessible manner, avoiding LaTeX rendering issues and promoting a unified code style. It focuses on improving the overall user experience and maintainability of the chapter.
Updates the color scheme for chapter connections and forward sections to improve visual consistency across the different volume formats.
Corrects units for memory capacity and updates glossary terms to reflect 'Model' instead of 'Archetype' for clarity.