Skip to content

[rocjitsu] Distribute strided VM policy lookups across a larger cache - #13809

Merged
kuhar merged 1 commit into
developfrom
users/jakub/vm-policy-cache-indexing
Oct 20, 2026
Merged

kuhar merged 1 commit into
developfrom
users/jakub/vm-policy-cache-indexing

Conversation

@kuhar

@kuhar kuhar commented Oct 20, 2026

Copy link
Copy Markdown
Member

Use 128 policy snapshots and offset successive page blocks to reduce repeated replacement on strided memory accesses while preserving short contiguous runs across block boundaries. Share the index calculation with both private-memory hint lookups and preserve range, generation and mutation-token validation.

Cover contiguous pages, tiled rows and large strides, plus distinct private policies and stale-hint rejection after mutation.

On a Threadripper PRO 9995WX with fixed physical CPU affinity and no CPU reservation:

  • gfx1100 FP32 Tensile: median warm GEMM time falls 31.9%, from 3.314 to 2.258 seconds across three process repeats. Whole-process CPU cycles fall 38.5% and L2 data-request misses fall 36.9%.
  • Across 37 numerical ML smoke cells, summed process time falls 4.5%; the equal-cell geometric mean falls 2.5%. This combines screening runs with repeated comparisons and is not a production workload estimate.
  • The unchanged hipRAND MT19937 initialization case is effectively neutral: 141.4 to 142.2 seconds across two process repeats.

Four fresh comparisons do not reproduce the initially flagged Gluon FP8 or integrated Tensile GSU slowdowns. Small differences remain uncertain on the shared host.

Validation: 496 focused tests and all 37 numerical smoke cells pass. Completed two local peanut-review rounds.

Use 128 policy snapshots and offset successive page blocks to reduce
repeated replacement on strided memory accesses while preserving short
contiguous runs across block boundaries. Share the index calculation with
both private-memory hint lookups and preserve range, generation and
mutation-token validation.

Cover contiguous pages, tiled rows and large strides, plus distinct private
policies and stale-hint rejection after mutation.

On a Threadripper PRO 9995WX with fixed physical CPU affinity and no CPU
reservation:

- gfx1100 FP32 Tensile: median warm GEMM time falls 31.9%, from 3.314 to
  2.258 seconds across three process repeats. Whole-process CPU cycles fall
  38.5% and L2 data-request misses fall 36.9%.
- Across 37 numerical ML smoke cells, summed process time falls 4.5%; the
  equal-cell geometric mean falls 2.5%. This combines screening runs with
  repeated comparisons and is not a production workload estimate.
- The unchanged hipRAND MT19937 initialization case is effectively neutral:
  141.4 to 142.2 seconds across two process repeats.

Four fresh comparisons do not reproduce the initially flagged Gluon FP8
or integrated Tensile GSU slowdowns. Small differences remain uncertain
on the shared host.

Validation: 496 focused tests and all 37 numerical smoke cells pass.
Completed two local peanut-review rounds.
@kuhar
kuhar requested review from IanWood1 and newling October 20, 2026 14:48
@kuhar
kuhar requested review from a team and atgutier as code owners October 20, 2026 14:48
Copilot AI balanced review requested due to automatic review settings October 20, 2026 14:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@therock-pr-bot

therock-pr-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
📝 PR Description ❌ Fail Error: PR description must reference a JIRA ID, ISSUE ID, or a GitHub closing keyword.
Expected: include a JIRA ID / ISSUE ID line (separator : or -, or omitted; value may be a JIRA key, a number with/without #, or a link), OR a closing keyword + issue reference. Accepted examples:
• JIRA ID : TESTAUTO-6039
• JIRA ID - #330
• JIRA ID #330
• JIRA ID (on separate line)
ROCM-25757
• ISSUE ID : TESTUTO-3334
• ISSUE ID #3334
• ISSUE ID - TESTAUTO-3433
• ISSUE ID (on separate line)
AIRUNTIME-2352
• ISSUE ID : https://github.com/<org_name>/<repo_name>/issues/1234
• Closes #10
• Fixes octo-org/octo-repo#100
• Resolves: #123
• #123
• https://github.com/<org_name>/<repo_name>/issues/123
Current: no valid JIRA/ISSUE/closing-keyword reference found
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

⚠️ 1 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Description

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

@kuhar
kuhar merged commit e5bf1fc into develop Oct 20, 2026
124 of 131 checks passed
@kuhar
kuhar deleted the users/jakub/vm-policy-cache-indexing branch October 20, 2026 21:10
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants