Domain Flow Graphs
DL graphs as chains of operators, each with a domain of computation derived from its tensor operands — not loop nests and memory views.
Domain Flow Graphs
DL graphs as chains of operators, each with a domain of computation derived from its tensor operands — not loop nests and memory views.
SURE / SARE Operators
Operators defined by Systems of Uniform or Affine Recurrence Equations, the formalism behind systolic and spatial dataflow execution.
Schedule Analysis
Prove a schedule legal (tau.theta >= 1 on every dependency edge) and
measure the memory cardinality it implies — before committing silicon.
SURE Simulator
Execute recurrence systems numerically with dfactl: free vs linear
schedules, legality reports, peak-live-value analysis, .dfg import.
MLIR Import
Read MLIR bytecode (TOSA, Torch, StableHLO) and lower DL graphs into domain flow form for analysis.
Header-Only C++20
Just #include <dfa/dfa.hpp> — no linking, no dependencies for the core
library.
The same matrix-multiply recurrence under two schedules, driven by one clock. Left,
the data-flow-earliest (free) schedule finishes in 29 steps and holds; right,
the linear schedule keeps sweeping to 43 — the extra steps you watch it wait
are the latency it trades for a smaller, regular, systolic footprint. Making that
latency↔parallelism choice explicit is the point of the analysis. Rendered offline from the
live interactive viewers with npm run video.
Data movement — not arithmetic — dominates the energy cost of deep learning execution. Domain Flow Architecture, rooted in E. Theodore Omtzigt’s Yale dissertation on domain flow and streaming architectures, structures computation by its computational domains: static schedules, maximal data locality, and spatial mappings that avoid resource contention. This repository provides the compiler-side tooling to analyze DL graphs in that form.