Skip to content

Add optional all-dims-small (AND) rule for SUP threshold#944

Draft
jeffhammond wants to merge 1 commit into
flame:masterfrom
jeffhammond:feature/sup-routing
Draft

Add optional all-dims-small (AND) rule for SUP threshold#944
jeffhammond wants to merge 1 commit into
flame:masterfrom
jeffhammond:feature/sup-routing

Conversation

@jeffhammond

Copy link
Copy Markdown
Member

BLIS's default SUP threshold rule routes to the skinny/unpacked path when ANY dimension is below its threshold (m<MT || n<NT || k<KT). That sends rank-k updates and tall/wide panels -- skinny in one dimension but large in another -- to SUP, where they run far slower than the packed native path (e.g. 4000x4000x64: SUP 474 vs native 683 GFLOP/s on GB10).

Add a config-gated ALL-dims variant (BLIS_SUP_THRESH_ALL) of bli_cntx_l3_sup_thresh_is_met: take SUP only when m, n AND k are all below threshold, i.e. genuinely small matrices. A lone small dimension no longer forces SUP; small squares (which do want SUP) are unaffected. Opt-in; default OR behavior preserved when the macro is undefined.

BLIS's default SUP threshold rule routes to the skinny/unpacked path when
ANY dimension is below its threshold (m<MT || n<NT || k<KT). That sends
rank-k updates and tall/wide panels -- skinny in one dimension but large in
another -- to SUP, where they run far slower than the packed native path
(e.g. 4000x4000x64: SUP 474 vs native 683 GFLOP/s on GB10).

Add a config-gated ALL-dims variant (BLIS_SUP_THRESH_ALL) of
bli_cntx_l3_sup_thresh_is_met: take SUP only when m, n AND k are all below
threshold, i.e. genuinely small matrices. A lone small dimension no longer
forces SUP; small squares (which do want SUP) are unaffected. Opt-in;
default OR behavior preserved when the macro is undefined.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jeffhammond
jeffhammond marked this pull request as draft July 16, 2026 15:24
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.

1 participant