This artifact validates the symbolic STeP simulator against a cycle-accurate HDL model for a SwiGLU layer running on a tiled spatial accelerator. The workflow mirrors the paper: build the STeP graph, retile it to the hardware’s 16×16 compute tiles, generate Bluespec, simulate with a Ramulator2-backed HBM2 model, and compare cycle counts and off-chip traffic.
src/: Rust STeP front-end and compiler passes. Defines the graph IR, tiling/downtiling logic, dot export, and codegen utilities used by the paper’s experiments.hwsim/graphandpasses/: symbolic graph construction plus passes like the downtiler and conversion to static Bluespec.test/: paper-oriented tests;run_dse_sweepbuilds the validation graphs, exercises the HDL, and writesdse_results.csv.
bluespec/: cycle-accurate Bluespec SystemVerilog model of the tiled accelerator, plus BDPI hooks into Ramulator2 for HBM timing.ramulator2/: vendored Ramulator2 source.
- Outputs
validation.tex/validation.pdf(after running): LaTeX for the validation figure;dse_results.csvandsweep_results_rescored.csvhold the sweep results used in the plot. run_dse_and_figure.sh: helper scripts to regenerate the sweep data and figure.
- Regenerate sweep data and the validation figure:
- Run STeP Simulator to provide results for
step_reference.csv. - Requirements (already included in the submitted docker): Rust/cargo,
cmake+make(for Ramulator2), andlatexmkfor the PDF, and Bluespecbsc. - Command:
./run_dse_and_figure.sh- Builds Ramulator2 if missing, runs
cargo test run_dse_sweep -- --nocaptureto producedse_results.csv, then compiles the LaTeX figure. - The figure will be stored in
validation.pdf.
- Builds Ramulator2 if missing, runs
- Run STeP Simulator to provide results for
The resulting data shows the close agreement between the STeP simulator and the HDL (Pearson ≈ 0.99 on cycle counts) while also correlating off-chip traffic measured in the symbolic front-end with the Ramulator2-backed HDL runs.