mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-05-06 09:38:33 -05:00
Add the Periodic Table of Machine Learning Systems source of truth and
the academic paper that introduces it.
* table.yml — canonical 90-element design space (8 abstraction layers
x 5 information-processing roles), with table.schema.json
* scripts/ — Node.js tools that build index.html from the YAML,
migrate prior HTML to YAML, and validate the schema
* paper/ — LaTeX paper "The Periodic Table of Machine Learning Systems:
A Constraint-Driven Design Heuristic with Compiler Correspondence"
* paper/scripts/generate_periodic_svg.py — vector hero figure
generator that reads table.yml and emits a crisp SVG/PDF the paper
embeds in place of a screenshot
* paper/figures/ — molecular_ml, mamba, and periodic_table_hero
figures (SVG sources + PDF outputs)
* paper/Makefile — full build pipeline (svgs -> rsvg-convert -> pdf)
* paper/references.bib — bibliography including Hennessy-Patterson,
Hooker, Sze/Emer, Halide, GPipe, PipeDream, Korthikanti, Kung
37 lines
1.2 KiB
Makefile
37 lines
1.2 KiB
Makefile
# Periodic Table of ML Systems — build orchestration.
|
|
#
|
|
# table.yml is the single source of truth. Both index.html (the standalone
|
|
# shareable artifact) and the StaffML React data file are generated from it.
|
|
#
|
|
# Usage:
|
|
# make — same as `make all`
|
|
# make all — validate the YAML, regenerate index.html, sync the React TS file
|
|
# make html — regenerate periodic-table/index.html from table.yml
|
|
# make sync — regenerate interviews/staffml/src/data/periodicTable.ts from table.yml
|
|
# make validate — schema-check table.yml + run cross-reference invariants
|
|
# make clean — remove generated files (DESTRUCTIVE — only run after committing)
|
|
|
|
REPO := $(shell cd .. && pwd)
|
|
YAML := table.yml
|
|
HTML := index.html
|
|
TS := $(REPO)/interviews/staffml/src/data/periodicTable.ts
|
|
|
|
NODE := node
|
|
|
|
.PHONY: all html sync validate clean help
|
|
|
|
all: html sync
|
|
@echo "✓ Built $(HTML) and $(TS) from $(YAML)"
|
|
|
|
html:
|
|
@$(NODE) scripts/build-html.mjs
|
|
|
|
sync:
|
|
@$(NODE) $(REPO)/interviews/staffml/scripts/sync-periodic-table.mjs
|
|
|
|
validate:
|
|
@$(NODE) scripts/validate.mjs
|
|
|
|
help:
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-12s %s\n", $$1, $$2}'
|