ARASHIOSU STAR LabNSF CROSS Project

OSU STAR Lab · NSF CROSS Project · 2026

Automating hardware accelerator design
for sparse tensor contraction

Sparse structure guides hardware specialization: two contractions, two MLIR-based lowering paths, controlled compiler improvements.

Anthony KungSTAR Lab Hardware Optimization Team

Research trajectory

From a working toolchain to better generated hardware

2025

Algorithm-to-layout feasibility

Transformer proxy; ASIC-flow barriers; FPGA evaluation; transition toward a commercial ASIC flow.

Original archived study
2026

Sparse optimization experiments

Test which sparse properties improve generated hardware, at what resource cost, and against which baseline.

Results in this talk
2027

Integration and scale

Compiler-native selection, broader coverage, and parallel sparse execution and memory systems.

Research programme

Historical scope: original 2025 slides 5–8 and 15. Completion of the Catapult → Genus → Innovus chain was a stated next step.

Experimental inputs

Two block-sparse contractions, two different bottlenecks

TIDES E2

fbag,bhai→fghi

C[f,g,h,i] = Σ(b,a) A[f,b,a,g] · B[b,h,a,i]
Stored A / B values
3,133,605 / 119
Matching block pairs
8,500
Stored output values
2,840,776
Scalar products
5,024,105
Conservative output dependence serializes independent inner-loop work.
TIDES S1

dae,fga→defg

C[d,e,f,g] = Σa A[d,a,e] · B[f,g,a]
Stored A / B values
188,454 / 189,096
Matching block pairs
1,310
Stored output values
692,685
Scalar products
27,144,530
A contraction recurrence and repeated external-memory value reads limit the pipeline.

TIDES canonical_formulation_symm_kysznf cases E2/S1. Upstream block structures; FP32 values from Xorshift32, seed 42. Exact shapes and reproduction details in backup.

Experimental toolchain

MLIR-based lowering; sparse specialization of generated HLS

01Contraction
02MLIR frontend
03HIDA / STAR Lab
04Generated HLS
05ARASHI transforms
06Vitis → RTL
HIDA path

Hierarchical-dataflow lowering; a minimally enabled build provides the controlled baseline.

Current implementation: research transformations around compiler-generated HLS. Common MLIR-native legality analysis and automatic selection are 2027 goals.

E2 · dependence + initialization

Expose independent output work; initialize on first contribution

A
×
B
→
C
fbag,bhai→fghi
  1. Check injective output addressing within the selected inner loop.
  2. Emit dependence intent: scheduled II falls from 20 to 2.
  3. Use 5,632 contiguous output groups to eliminate the global zero-fill.
Baseline
572,136,789
Optimized
57,154,011
10.01×baseline / optimized HLS average cycles
20 → 2scheduled initiation interval
12.01×derived best-tested OOC latency ratio

Vitis HLS 2023.2 average-cycle estimates; runtime-loop bounds, not measured execution. Selected E2: 57,154,011 / 57,154,009 cycles (HIDA / lab framework). Routed targets: 4.5 → 3.75 ns.

S1 · caching + banking + ownership

A true recurrence requires a different architecture

Baseline
144,140,318
Optimized
12,748,931
11.31×baseline / optimized HLS average cycles
56 → 4scheduled initiation interval
6 → 109.5routed BRAM tiles · HIDA
  1. Cache bounded A/B value blocks on chip.
  2. Bank local storage two ways for concurrent access.
  3. Assign completed reductions directly when each pair uniquely owns its output block.

HIDA: 144,140,318 → 12,748,931 estimated average cycles; 16 → 171 routed DSPs. BRAM is 5.43% of the reported device capacity. All 692,685 outputs match the generated-C++ oracle.

Ablation evidence

Combinations help—but a fixed pragma recipe does not

TransformationE2: fewer estimated cyclesS1: fewer estimated cycles
Dependence disambiguation89.52% · 9.54× ratioNo latency benefit
Grouped first-write0.49%Different ownership structure
Unbanked value cache—48.08%
Value cache + two banks—62.28%
Cache + two banks + dependence—90.67%
Selected combination90.01% · 10.01× ratio91.16% · 11.31× ratio

Within-workload HIDA baselines; “—” means not part of this ablation, not zero effect. E2 selection: dependence + first-write. S1: value cache + two banks + unique ownership.

Validation and transfer

Correct generated C++; timing-clean IP in both lowering paths

HIDAE2 10.0104×S1 11.3061×

Baseline / selected average-cycle estimates

≈
STAR Lab frameworkE2 10.0104×S1 11.3061×

Same AXI boundary and Vitis backend

3.53Moutput values checked; zero error in selected C++ variants
5 nsall selected E2/S1 IP meets OOC timing
≤ 2estimated-cycle difference between lowering paths
4 modesSPARTA regression: approximately 47% fewer estimated cycles

Generated-C++ equivalence and out-of-context place-and-route are separate checks. RTL co-simulation and U280 board execution remain open; backend agreement shares a common downstream compiler.

External performance context

The GPU sets a demanding target beyond compiler-baseline gains

Platform / implementationE2S1Measurement boundary
Jetson Orin Nano · 6× ARM37.83 ms71.26 msPortable CPU reference; execution + zero-fill
Jetson Orin Nano · TIDES CUDA14.17 ms3.09 msResident-input full-call median
Jetson Orin Nano · cuTENSOR62.20 ms10.00 msSame full-call timer; upstream integration
U280 · ARASHI-selected IP214.33 ms54.18 msHLS average cycles × clean OOC period

Orin Nano Super, 25 W mode, clocks unlocked. CPU: 3 warmups + 20 calls, prebuilt plan. GPU: 3 warmups + 20 resident-input full calls, one process. FPGA: derived estimate, not board time. No cross-platform speedup ratio.

Conclusion

Sparse specialization is worth pursuing; competitiveness is the next test

2026 controlled result10.01–11.31×

baseline / selected HLS average-cycle estimates, with distinct mechanisms and timing-clean IP.

Complete the 2026 evaluation

Runtime RTL / U280 board validation; matched CPU–GPU–FPGA system and energy measurements; broader workload evidence.

2027: integrate, generalize, scale

MLIR-native automatic selection; more contractions, formats, and toolchains; parallel execution and memory systems.

QuestionsBackup evidence followsOSU STAR Lab · NSF CROSS

Backup B1 · workload definition

Exact contractions and stored structure

E2S1
Einsumfbag,bhai→fghidae,fga→defg
A logical shape[1600, 20, 4, 1599][4, 1600, 1599]
B logical shape[20, 20, 4, 4][4, 1598, 1600]
Stored A / B blocks6,159 / 101361 / 353
Stored A / B values3,133,605 / 119188,454 / 189,096
Matching pairs / output values8,500 / 2,840,7761,310 / 692,685
Scalar products5,024,10527,144,530

Canonical block-sparse metadata + FP32 Xorshift32 seed 42, reproducing upstream 24-chunk initialization serially. Hashes and regeneration instructions are in the presenter guide.

Backup B2 · legality and compiler boundary

Structural specialization, not a universal runtime proof

Inner-loop injectivity

Distinct output addresses within the transformed loop justify inter-iteration dependence intent. This does not remove reductions across pairs.

Contiguous output groups

First-write requires each output group to be contiguous and covered. Later contributions preserve their original order.

Unique block ownership

S1 checks one contributing pair per output block before replacing output accumulation with assignment.

Bounded caches

Profiled extents bound local storage. Changed descriptors or larger blocks require revalidation and possibly regeneration.

Backup B3 · controlled experiment

What is held constant—and what the baseline means

Held constantAllowed experimental change
Equation, inputs, output layout, FP32 reduction orderGenerated storage and loop organization
Compatible equivalence frontend and required fixesDependence and scheduling directives
AXI interface, part, tool version, 5 ns HLS requestCaches, bank count, legal initialization/writeback
Oracle and comparison procedureIndividual and combined transformation candidates

Vitis HLS / Vivado 2023.2, xcu280-fsvh2892-2L-e. StreamTensor attribution refers to STAR Lab's implementation of the published methodology.

Backup B4 · physical resource trade-off

Selected IP at the common 5 ns target

HIDA designHLS avg. cyclesWNS (ns)LUTRegistersBRAM tilesDSP
E2 baseline572,136,789+0.4968,64714,0666.515
E2 selected57,154,011+0.8478,80314,5676.529
S1 baseline144,140,318+0.03230,34333,868616
S1 selected12,748,931+0.55822,25828,486109.5171

Resources from placed-IP reports; WNS from routed timing. E2 is the final first-write + dependence design, not the earlier dependence-only candidate. No board power claim.

Backup B5 · cycle and clock accounting

Derived latency is not a measured execution trace

Case / loweringBaseline periodSelected periodCycle ratioDerived latency ratio
E2 / HIDA4.50 ns3.75 ns10.0104×12.0125×
E2 / lab framework4.50 ns3.75 ns10.0104×12.0125×
S1 / HIDA4.75 ns4.25 ns11.3061×12.6362×
S1 / lab framework4.25 ns4.25 ns11.3061×11.3061×

Same synthesized RTL reimplemented at tighter clocks; HLS was not rescheduled. Best tested points, not proven Fmax. Final E2 fails 3.50 ns: WNS −0.080 / −0.093 ns.

Backup B6 · selectivity

Rejected candidates and alternative objectives

Forced inner pipeliningE2 gets slower

+49.88% HIDA latency; +80.49% on the lab framework's native interface. Within-interface experiments.

More banksNo added S1 benefit

Four/eight banks increase logic without improving latency beyond two banks.

Disable flattening1.89× latency

S1 cache + bank2 + dependence: 13,445,548 → 25,353,448 cycles without flattening.

Metadata-only cachingArea objective

S1 HIDA HLS estimates: LUT −26.34%, FF −25.12%, with little latency change.

Backup B7 · GPU timing audit

Use the matched full-call timer for the library comparison

Platform / implementationE2 median [range]S1 median [range]
Orin · TIDES full-call median14.17 ms3.09 ms
Orin · cuTENSOR full-call median62.20 ms10.00 ms
RTX 4060 · TIDES median [range]3.18 [3.09, 3.27] ms0.55 [0.49, 0.57] ms
RTX 4060 · cuTENSOR median [range]17.77 [17.64, 18.65] ms3.14 [3.10, 3.17] ms

Orin: JetPack 7.2.1, CUDA 13.2, cuTENSOR 2.6.0, SM87, 3 warmups + 20 calls, clocks unlocked. RTX: CUDA 12.6, SM89, 10 + 100 calls/process. Verification passes on both.

Backup B8 · comparison contract

Same mathematics does not imply the same timing boundary

ARM CPU referenceGPU full-call timerFPGA OOC estimate
Observed / estimatedPhysical measurementPhysical measurementDerived tool estimate
PlanningExcluded; prebuilt planPer-call setup includedHost preparation excluded
InputsHost residentDevice residentInterface model
Output initializationIncludedImplementation-specific, includedIn generated schedule
Transfers / board shellNot applicableInitial H2D/readback excludedNot measured
UsePortable ARM referenceExternal library comparisonCompiler design comparison

Backup B9 · validity

What each check establishes

Generated-C++ oracle

Full-output equivalence on frozen descriptors; selected E2/S1 variants have zero observed error.

HLS + OOC routing

A synthesizable schedule and timing-clean IP. Not a full system, RTL trace, or measured memory behavior.

Two lowering paths

Transformation transfer under a common interface. Shared Vitis is not independent downstream replication.

Complete the 2026 evaluation

Runtime RTL/board correctness, matched system costs, stronger tuned baselines, held-out sparsity/workloads.

Backup B10 · continuity with 2025

The objective persists; the evaluated flow changes

Original 2025 archiveWhat carries into this talk
Slides 2–5: Transformer proxy; model-to-layout objectiveAutomated accelerator generation remains the objective
Slides 6–7: ASIC-flow barriers; FPGA fallbackToolchain compatibility and end-to-end validation matter
Slides 8–14: SystemC / Catapult / Genus / InnovusHistorical ASIC methodology, not today's MLIR/Vitis pipeline
Slide 15: complete chain and add sparse kernelsCommercial ASIC-chain completion remained a subsequent milestone

Backup B11 · formal 2027 goals

Integrate the capability, then generalize and scale it

01

Compiler-Native Sparse Optimization and Automatic Design Selection

MLIR-integrated analysis and selection.

02

Generalization Across More Contractions, Formats, and Toolchains

More contractions, formats, and backends.

03

Scaling Parallel Sparse Execution and Memory Systems

Parallel execution and scalable memory.

Backup B12 · terminology

Terms and attribution

MLIR / HLS

Multi-Level Intermediate Representation / High-Level Synthesis. Today's sparse transforms are not yet common MLIR-native passes.

II

Initiation interval: cycles between loop-iteration launches; not complete-contraction latency.

OOC / WNS

Out-of-context IP implementation / worst setup slack. Excludes board shell and runtime memory system.

TIDES / DMRG

Block-sparse tensor-contraction implementation and benchmark context / Density Matrix Renormalization Group.

STAR Lab framework

Independent implementation of StreamTensor's published methodology; not original source or a fork.

ARASHI

Architecture Reconfiguration for Accelerating Sparse-tensor Hardware Implementations. Sparse optimization research within NSF CROSS.