Skip to content

Add sparsity-aware modelling pipeline#33

Open
fisherxue wants to merge 46 commits intoAccelergy-Project:mainfrom
fisherxue:sparsity-support
Open

Add sparsity-aware modelling pipeline#33
fisherxue wants to merge 46 commits intoAccelergy-Project:mainfrom
fisherxue:sparsity-support

Conversation

@fisherxue
Copy link
Collaborator

  • Sparse tensor modelling support, including sparsity propagation through memory hierarchy, compression formats and metadata costs, latency/energy adjustments for skipping/gating
  • Benchmarks validated against Sparseloop artifacts

fisherxue and others added 29 commits March 2, 2026 21:38
fisherxue and others added 14 commits March 3, 2026 00:29
Drain reads are included in psum_spad bandwidth in AccelForge but
modeled at the NoC level in Sparseloop, causing an exact 13/12
overhead for conv3-5. Widen cycle tolerance for those layers accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Unwrap Optional (Union[X, None]) before calling get_args so that
EvalableList and EvalableDict correctly find their inner type argument
instead of failing with "Expected exactly one type argument".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convenience property that returns True when the optimization is
position-skipping (self-conditioned), i.e. kind == "position_skipping"
with no explicit condition_on target.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add tile_shape dict and total_parent_fill_write_actions fields for use
by the sparse pipeline's latency bandwidth calculations. Remove unused
stride_and_halo argument from analyze_reuse call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated execution timestamps and outputs for all 6 reproduction
notebooks (fig1, fig12, fig13, fig15, lab4, table7).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The latency model previously only used compute_latency_ratio to scale
MAC cycles, which reduced cycles for both gating and skipping. Gated
and skipped compute counts only went to the energy path, so the arch
ERT's per-action latency had no effect on cycle computation.

Now LatencyInfo carries gated_compute_count and skipped_compute_count,
and run_model populates them in the Compute node's action table. This
lets the arch control whether gated/skipped computes contribute cycles
via their per-action latency (e.g., gated_compute: latency: 1 means
gating does not reduce cycles, matching the conceptual model).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds InvalidMappingError and a validate parameter (default True) to
evaluate_mapping so hand-crafted mappings are checked for memory
capacity overflow (including metadata occupancy), spatial fanout
violations, and architecture tile/loop constraints. The mapper's
internal evaluate_mapping call passes validate=False since it already
validates during tile enumeration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants