19 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 47818b0353 fix(tinytorch): use decimal MB/KB/GB consistently across modules, tooling, and docs
Memory figures now divide by powers of ten everywhere (1 KB = 10^3 B,
1 MB = 10^6 B, 1 GB = 10^9 B), matching the book's prose convention.
Removes MiB/GiB labels and 1024-based divisors from src modules, tito
system info, milestones, tests, book chapters, guide pages, and the
regenerated code listings. Binary units remain only where a module
explicitly teaches the SI-vs-IEC distinction.
2026-10-03 11:36:00 -04:00
Vijay Janapa Reddi afa5449a68 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	tinytorch/README.md
#	tinytorch/book/00_welcome.qmd
#	tinytorch/book/01_tensors.qmd
#	tinytorch/book/02_activations.qmd
#	tinytorch/book/03_layers.qmd
#	tinytorch/book/04_losses.qmd
#	tinytorch/book/05_dataloader.qmd
#	tinytorch/book/06_autograd.qmd
#	tinytorch/book/07_optimizers.qmd
#	tinytorch/book/08_training.qmd
#	tinytorch/book/09_convolutions.qmd
#	tinytorch/book/10_tokenization.qmd
#	tinytorch/book/11_embeddings.qmd
#	tinytorch/book/12_attention.qmd
#	tinytorch/book/13_transformers.qmd
#	tinytorch/book/14_profiling.qmd
#	tinytorch/book/15_quantization.qmd
#	tinytorch/book/16_compression.qmd
#	tinytorch/book/17_acceleration.qmd
#	tinytorch/book/18_memoization.qmd
#	tinytorch/book/19_benchmarking.qmd
#	tinytorch/book/20_capstone.qmd
#	tinytorch/book/21_extensions.qmd
#	tinytorch/book/_listings/21_extensions/LoRALinear.qmd
#	tinytorch/book/_listings/21_extensions/custom_accelerated_op.qmd
#	tinytorch/book/_quarto.yml
#	tinytorch/book/assets/images/diagrams/05_dataloader-margin-shm.svg
#	tinytorch/book/assets/images/diagrams/08_training-margin-eval-mode.svg
#	tinytorch/book/assets/images/diagrams/20_capstone-margin-order.svg
#	tinytorch/book/assets/images/diagrams/milestone_01-margin-bce.svg
#	tinytorch/book/assets/images/diagrams/milestone_03-margin-csr-overhead.svg
#	tinytorch/book/conclusion.qmd
#	tinytorch/book/synthesis_01.qmd
#	tinytorch/book/synthesis_02.qmd
#	tinytorch/book/synthesis_03.qmd
#	tinytorch/guide/_quarto.yml
#	tinytorch/guide/assets/images/demos/tinytorch-01-install-and-run.gif
#	tinytorch/guide/assets/images/demos/tinytorch-01-install-and-run.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-02-modules-mastery.gif
#	tinytorch/guide/assets/images/demos/tinytorch-02-modules-mastery.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-03-tinygpt-chat.gif
#	tinytorch/guide/assets/images/demos/tinytorch-03-tinygpt-chat.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-04-tinycopilot.gif
#	tinytorch/guide/assets/images/demos/tinytorch-04-tinycopilot.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-05-mlperf-opt.gif
#	tinytorch/guide/assets/images/demos/tinytorch-05-mlperf-opt.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-06-tito-companion.gif
#	tinytorch/guide/assets/images/demos/tinytorch-06-tito-companion.mp4
#	tinytorch/guide/assets/images/demos/tinytorch-07-tito-olympics.gif
#	tinytorch/guide/assets/images/demos/tinytorch-07-tito-olympics.mp4
#	tinytorch/guide/assets/scripts/terminal-carousel.js
#	tinytorch/guide/datasets.qmd
#	tinytorch/guide/demos.html
#	tinytorch/guide/extensions.qmd
#	tinytorch/guide/getting-started.qmd
#	tinytorch/guide/glossary.qmd
#	tinytorch/guide/index.qmd
#	tinytorch/guide/instructors.qmd
#	tinytorch/guide/milestones/05_transformer.qmd
#	tinytorch/guide/milestones/06_mlperf.qmd
#	tinytorch/guide/milestones/07_kernels.qmd
#	tinytorch/guide/milestones/index.qmd
#	tinytorch/guide/preface.qmd
#	tinytorch/guide/tiers/optimization.qmd
#	tinytorch/guide/tito/commands.qmd
#	tinytorch/guide/tito/workflow.qmd
#	tinytorch/guide/tools/record_tapes.py
#	tinytorch/guide/tools/tape_env.sh
#	tinytorch/guide/tools/tapes/01_install_and_run.tape
#	tinytorch/guide/tools/tapes/02_modules_mastery.tape
#	tinytorch/guide/tools/tapes/03_tinygpt_chat.tape
#	tinytorch/guide/tools/tapes/04_tinycopilot.tape
#	tinytorch/guide/tools/tapes/05_mlperf_opt.tape
#	tinytorch/guide/tools/tapes/06_tito_companion.tape
#	tinytorch/guide/tools/tapes/07_tito_olympics.tape
#	tinytorch/milestones/01_1958_perceptron/01_rosenblatt_forward.py
#	tinytorch/milestones/02_1969_xor/01_xor_crisis.py
#	tinytorch/milestones/02_1969_xor/02_xor_solved.py
#	tinytorch/milestones/03_1986_mlp/01_rumelhart_tinydigits.py
#	tinytorch/milestones/05_2017_transformer/03_tinycopilot.py
#	tinytorch/milestones/05_2017_transformer/04_tinygpt_chat.py
#	tinytorch/milestones/05_2017_transformer/README.md
#	tinytorch/milestones/06_2018_mlperf/01_optimization_olympics.py
#	tinytorch/milestones/06_2018_mlperf/02_generation_speedup.py
#	tinytorch/milestones/06_2018_mlperf/README.md
#	tinytorch/milestones/07_2024_kernels/01_custom_kernels.py
#	tinytorch/milestones/07_2024_kernels/README.md
#	tinytorch/milestones/README.md
#	tinytorch/milestones/journey.svg
#	tinytorch/tests/extensions/test_template.py
#	tinytorch/tests/milestones/README.md
#	tinytorch/tests/milestones/test_milestones_run.py
#	tinytorch/tests/milestones/test_milestones_smoke.py
#	tinytorch/tinytorch/extensions/template.py
#	tinytorch/tito/commands/milestone.py
2026-09-30 15:02:40 -04:00
Vijay Janapa Reddi abff1562fa TinyTorch 0.2.0: From Tensors to Transformers
Release-hardening and transformer-era release of TinyTorch, audited as one
tree. This commit brings tinytorch/ and the TinyTorch CI workflows to the
state of the audit/tinytorch-release branch, where the individual changes
are recorded commit by commit.

- Milestones: transformer-era parts (TinyGPT, sequence routing, TinyCopilot,
  conversational Q&A), Milestone 06 "MLPerf to Generative Serving (2018)",
  Milestone 07 kernels; per-part recording; NumPy-referenced losses and
  causality, attention-content and position probes; try-it prompts after a
  pass.
- Framework: dropout eval mode, target gradients, float32 stays float32,
  layer validation, LoRA adapters.
- tito: loopback login callback with a state nonce, consented progress sync,
  TLS-verified update check, Ctrl-C after a pass keeps the pass.
- Grading: graded tests compare values against NumPy references; tests that
  could not fail now check something.
- CI: the publish preflight runs its tests and ships the commit it tested;
  workflow inputs pass through env; third-party actions pinned.
- Guide and book: read line by line against the code; every demo is a real
  recording.

See tinytorch/CHANGELOG.md, section 0.2.0.
2026-09-29 21:53:23 -06:00
Vijay Janapa Reddi 26cf0cc04a refactor(milestones): rename code completion script and assets to TinyCopilot 2026-09-28 12:05:33 -06:00
Vijay Janapa Reddi a9afe3ab6e feat(guide): move terminal showcase above the fold and add tito companion and olympics recordings 2026-09-28 10:00:49 -06:00
Vijay Janapa Reddi 1710caf2b0 feat(guide): replace svg terminal exports with authentic png raster screenshots 2026-09-28 06:06:40 -06:00
Vijay Janapa Reddi 692b25e79e feat(guide): polish terminal showcase chevrons and update code completion tape
Update carousel navigation chevrons to float comfortably inside the terminal area with frosted glass styling and generous spacing.

Enlarge the zoom lightbox close button for improved touch accessibility.

Streamline showcase section heading to Interactive Terminal Showcase.

Standardize milestone execution in Tape 04 to tito milestone run 05-code and re-record demo assets.

Align learning path stage count with the five curriculum tiers.
2026-09-27 20:49:25 -06:00
Vijay Janapa Reddi 5f5ffebb66 feat(showcase): upgrade TinyGPT chat to ConceptTokenizer with coherent Q&A generation 2026-09-27 20:25:24 -06:00
Vijay Janapa Reddi 1f301b059d Upgrade showcase tapes to Retina resolution and TrueColor MP4 2026-09-27 19:34:18 -06:00
Vijay Janapa Reddi da9cf576cc feat(showcase): add Tiny🔥Torch flame branding to terminal window and lightbox titles 2026-09-27 18:39:15 -06:00
Vijay Janapa Reddi c08d09cc3d fix(tito): clarify milestone status terminology and polish showcase tapes 2026-09-27 18:23:58 -06:00
Vijay Janapa Reddi 4918f8bf70 feat(landing): add terminalizer window styling to showcase gifs and remove obsolete assets
Remove deprecated showcase gifs and fix tape installer pipeline. Add Terminalizer-style window frame with traffic lights, title bar, borders, padding, and subtle shadow baked directly into all five terminal recordings.
2026-09-27 12:00:53 -06:00
Vijay Janapa Reddi bf0072ed59 feat(tapes): record slowed authentic terminal showcase gifs with vhs
Add reproducible Charmbracelet VHS tape scripts, frame extractor, and tape environment wrappers. Re-record all five showcase GIFs with calm pacing and readable sleep intervals for install, module mastery, TinyGPT chat, TinyPy code generation, and MLPerf optimization.
2026-09-27 11:36:06 -06:00
Vijay Janapa Reddi a732692878 feat(landing): replace ascii boxes with real animated terminal gifs and dot carousel 2026-09-27 09:48:06 -06:00
Vijay Janapa Reddi 21d7cb94c4 fix(tinytorch): enforce explicit UTF-8 across test suites, SIMD ops, and book tools
- Add encoding='utf-8' to module file reads in test_module_integration, test_training_edge_cases, and test_backward_boundaries
- Add encoding='utf-8' to CLI test fixtures (test_completion_certification, test_progressive_integration_selection, test_community_flow, test_live_submission, test_user_journey)
- Add encoding='utf-8' and errors='replace' to SIMD compiler subprocess and book tools
- Add encoding='utf-8' to Jupyter PID file read/write in workflow.py
2026-09-22 12:35:54 +02:00
Vijay Janapa Reddi 28ef9051e7 guide: split workflow and commands, add pedagogical SVGs, polish terminal figures, and suppress anchor collision 2026-09-20 09:51:26 +02:00
Vijay Janapa Reddi 757bffad31 tinytorch site: replace the Quick Start terminal image with a real capture
The Milestone 01 figure did not match what `tito milestone run
perceptron` prints (a six-point "Synthetic Data & Decision Boundary"
step that no longer exists), and nothing in the repo could regenerate
it. guide/tools/capture-terminal.py runs a command with color forced
on and renders its exact output with Rich's SVG exporter, headed by the
command; --lines keeps unedited ranges and marks what was left out.

The new figure is an excerpt of a real run in a scratch checkout where
Modules 01-03 were completed with `tito module complete`. The run is
unseeded; the caption says so and that a run occasionally guesses right
by luck. The PNG is replaced by the SVG.
2026-09-18 11:04:12 +02:00
Vijay Janapa Reddi 76358fb6f7 fix(tinytorch): an invisible overlay was eating clicks on 52 of 62 pages
Found while driving the site with Playwright to check the TITO CLI page.

ml-timeline.js appended #ml-timeline-popup to document.body on every page
load, whether or not the page had a timeline. Its closed state is
`display: flex; opacity: 0` with no pointer-events rule, so it sat as a
full-viewport, z-index 1000, hit-testable box over the content:
elementFromPoint at the middle of the page returned the overlay rather
than the article. Every click on 52 of the 62 pages went into it,
including the home page. The script set display:none only when *closing*
a popup, so a page became usable after opening and dismissing one.

Fixed in two layers, because either alone would have prevented it:

- style.scss gives the closed overlay pointer-events: none, restored to
  auto on .active. Invisible now means non-interactive.
- ml-timeline.js returns early when a page has no .ml-timeline-content,
  so the overlay is built only on the one page with a timeline.

Verified the feature still works on index.html: six cards, click opens
the popup, Escape closes it, page is clickable afterwards.

Also reworks "Commands by User Role". Three code blocks in a 3-up card
grid left each command roughly 220px, which wrapped
`tito nbgrader generate 01 --tier student` between the flag and its
value. A panel-tabset gives each role the full column width; every line
in all three tabs now fits without wrapping, verified by measuring
rendered height against line count.

And `tito module complete 03 --verbose` in troubleshooting.qmd exits 2,
because --verbose is global and belongs before the subcommand.
guide/tools/check-documented-commands.py now walks tito's real argparse
tree and checks every `tito ...` invocation in the .qmd sources for
unknown subcommands, unknown flags, and invalid values for flags that
declare choices. It re-execs under the project venv when the calling
interpreter lacks tito's dependencies, and turns a skip into a failure
under CI so the gate cannot quietly stop running. Wired into pre-commit.
2026-09-17 13:28:33 +02:00
Vijay Janapa Reddi 53b8f58224 refactor(tinytorch): rename quarto directory to guide and update all ecosystem references 2026-09-16 22:13:23 +02:00