Files
cs249r_book/mlsysim
Vijay Janapa Reddi e42c8bc4ea Refactor figures to SVG; enhance validation logic
Converts numerous inline TikZ diagrams to external SVG files across the book's content. This improves rendering performance, streamlines figure management, and ensures consistent visual presentation.

Enhances CLI validation by:
- Ignoring cross-reference IDs when checking for multiplication to prevent false positives.
- Stripping inline math spans before currency checks to avoid misinterpreting mathematical expressions as currency.
- Applying hex literal exclusions to pre-processed lines for more accurate validation.

Adds optional Matplotlib import to the plotting module for improved flexibility in environments where the library may not be available.
2026-03-02 11:59:41 -05:00
..

🚀 mlsysim

The ML Systems Infrastructure & Modeling Platform

mlsysim is the high-performance, physics-grounded analytical engine powering the Machine Learning Systems textbook ecosystem (mlsysbook.ai). It provides a unified "Single Source of Truth" (SSoT) for modeling systems from sub-watt microcontrollers to exaflop-scale global fleets.


🏗 One Core, Multiple Worlds

mlsysim is designed to be the shared brain for every product in the ecosystem:

  • 📚 The Book: Powers the precise "Napkin Math" and invariant checks in every chapter.
  • 🧪 The Labs: Drives the interactive "Persona-based" simulations and trade-off explorers.
  • 🛠 The Kits: Interfaces with physical hardware kits to bridge theory and measurement.
  • 🔥 Tito (TinyTorch): Provides the analytical baseline for custom framework profiling.

📐 Architecture (The 3-Layer Stack)

The package is organized into three professional domains:

  1. mlsysim.core (The Physics & Definitions):
    • Constants: Immutable physical truths (H100 specs, Grid carbon intensity).
    • Formulas: The "Iron Laws" of ML systems (Stateless math via pint).
    • Scenarios: Definitive workloads like Doorbell, AV, and GPT-4.
    • Engine: The analytical solver for single-node performance (Latency, MFU, Energy).
  2. mlsysim.sim (The Analytical Simulator):
    • Personas: Scale multipliers and constraints (Cloud Titan, Tiny Pioneer).
    • Simulations: Domain logic (Sustainability, Reliability) that processes choices into ledgers.
    • Ledger: The universal multi-dimensional scorecard.
  3. mlsysim.viz (The Presentation):
    • Presentation logic: LaTeX formatting, Markdown helpers, and professional plotting.

🚀 Getting Started

Installation (Developer Mode)

To use mlsysim across the monorepo (Labs, Book, etc.), perform an editable install from the root:

pip install -e .

Quick Usage

import mlsysim
from mlsysim.sim import ResourceSimulation

# 1. Setup Scenario & Persona
scenario = mlsysim.Applications.Doorbell
persona = mlsysim.sim.Personas.TinyPioneer

# 2. Run an analytical simulation
sim = ResourceSimulation(scenario, persona)
ledger = sim.evaluate({"region": "Quebec", "duration_days": 365})

# 3. Inspect the results
print(f"Annual Carbon: {ledger.sustainability.carbon_kg:,.0f} kg CO2e")

🛡 Stability & Integrity

Because this core powers a printed textbook, we enforce strict Invariant Verification: All math cells in the book use check() guards. If a core formula change breaks the book's narrative, the build system will fail immediately.


👩‍💻 For Contributors & TAs

We built mlsysim to be extensible. To add a new domain lab, simply subclass BaseSimulation in the sim sub-package.

See the Developer Documentation for full API details and the "Wicked Sick" guide to building custom systems models.