Skip to content

PairTAGE PPA-Aware Model Implementation - #1080

Open
Yakkhini wants to merge 11 commits into
xs-devfrom
pairtage-reduce-tablesize
Open

Yakkhini wants to merge 11 commits into
xs-devfrom
pairtage-reduce-tablesize

Conversation

@Yakkhini

@Yakkhini Yakkhini commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Enabled PairTAGE branch prediction enhancements, including second-block support, in applicable processor configurations.
    • Improved fetch behavior for simultaneous multithreading (SMT) configurations.
    • Reduced the memory footprint of branch prediction tables while preserving the updated prediction capabilities.
  • Bug Fixes

    • Corrected two-fetch mode handling so fetch behavior now automatically reflects whether SMT is enabled.

@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 92cdb129-c719-481d-a4e3-accafb039c0c

📥 Commits

Reviewing files that changed from the base of the PR and between 46d55db and 94493f2.

📒 Files selected for processing (1)
  • src/cpu/pred/BranchPredictor.py

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The KMHV3 configurations now set SMT-dependent two-fetch behavior and enable PairTAGE second-block support. PairTAGE now uses four 1024-entry tables instead of four 8192-entry tables.

Changes

KMHV3 configuration and PairTAGE updates

Layer / File(s) Summary
SMT-dependent two-fetch mode
configs/example/idealkmhv3.py, configs/example/kmhv3.py
Two-fetch mode is enabled when SMT is disabled.
PairTAGE configuration and table sizing
configs/example/idealkmhv3.py, configs/example/kmhv3.py, src/cpu/pred/BranchPredictor.py
The DecoupledBPUWithBTB configurations enable PairTAGE and second-block support. PairTAGE.tableSizes changes to four 1024-entry tables.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: happy-lx, jensen-yan

Merge Risk: ⚪ Minimal · up to 94493

This PR changes PairTAGE simulator defaults and KMHV3 prediction configuration without introducing an actionable merge-blocking risk. It is merge-ready after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main change: implementing and optimizing the PairTAGE model. It matches the PairTAGE configuration updates and reduced table sizes in the changeset.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pairtage-reduce-tablesize

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2362 📈 +0.0216 (+0.98%)

✅ Difftest smoke test passed!

@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 50534c3 to a07fbd4 Compare August 26, 2026 13:07
@Yakkhini
Yakkhini changed the base branch from xs-dev to microtage-2-taken-fix August 26, 2026 13:27
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2362 📈 +0.0216 (+0.98%)

✅ Difftest smoke test passed!

jueshiwenli
jueshiwenli previously approved these changes Aug 26, 2026
@Yakkhini Yakkhini added regression Run the full gem5 regression suite before merge perf and removed regression Run the full gem5 regression suite before merge labels Aug 27, 2026
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2441 📈 +0.0295 (+1.33%)

✅ Difftest smoke test passed!

Base automatically changed from microtage-2-taken-fix to xs-dev August 31, 2026 08:41
@Yakkhini Yakkhini changed the title PairTAGE Size Reduce & Algorithm Fine Tune PairTAGE Practical Model Implementation Aug 31, 2026
@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 01b554c to 46d55db Compare August 31, 2026 09:14
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2441 📈 +0.0295 (+1.33%)

✅ Difftest smoke test passed!

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2473 📈 +0.0327 (+1.48%)

✅ Difftest smoke test passed!

@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 3b4e58a to 60c0aea Compare September 2, 2026 07:50
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2389 📈 +0.0243 (+1.10%)

✅ Difftest smoke test passed!

@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 60c0aea to 572c326 Compare September 2, 2026 08:15
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 2.2389 📈 +0.0243 (+1.10%)

✅ Difftest smoke test passed!

@Yakkhini Yakkhini changed the title PairTAGE Practical Model Implementation PairTAGE PPA-Aware Model Implementation Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 1.9013 📉 -0.3133 (-14.15%)

✅ Difftest smoke test passed!

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.2146 -
This PR 1.8831 📉 -0.3315 (-14.97%)

✅ Difftest smoke test passed!

@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 27c0d08 to 3c3f957 Compare September 10, 2026 08:35
@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 3c3f957 to 033be4c Compare September 14, 2026 07:46
Change-Id: I2034bfe14355358e5f476a8fba94b1d804a97052
Change-Id: Ib62fc2af72ef4e55f4613e4111d130ccda48aeae
FYI, the performance decrease on SPEC06Int 0.3c is acceptable (0.95 ->
0.90)

Change-Id: I8825ef0cc7c034988924982fce6a11ff31c868ad
Change-Id: I91a6bada92f82747140a3727986b41b0de68fc85
Change-Id: Ibdc0f78c6e943866b98346ea7a37f9d35579ce71
This is GEM5 specific support since rtl impl not store predBTBEntries in
FTQ Entry.

Change-Id: I273180825c3603d49c8c8a60dc386910b575e277
Change-Id: Ia286d58ef4ce6ac7bbd9dac9eb37395ade47c96d
Change-Id: I73e570db6fd3adb7ed5fac287c5dd19ff4d12b24
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1869 -
This PR 2.2240 📈 +0.0371 (+1.70%)

✅ Difftest smoke test passed!

@Yakkhini
Yakkhini force-pushed the pairtage-reduce-tablesize branch from 033be4c to 6dd8181 Compare September 14, 2026 08:36
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1869 -
This PR 2.2240 📈 +0.0371 (+1.70%)

✅ Difftest smoke test passed!

Change-Id: Iacc5f1c74c6bdd13a546278119bd441ed3ab5239
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1869 -
This PR 2.2203 📈 +0.0334 (+1.53%)

✅ Difftest smoke test passed!

Change-Id: Ie9a9ce4a43bb66ac77fa566da339542022970477
Change-Id: I5e0e2320537d008615792637ba4a738afeb4dc93
@github-actions

Copy link
Copy Markdown

🚀 Coremark Smoke Test Results

Branch IPC Change
Base (xs-dev) 2.1869 -
This PR 2.1659 📉 -0.0210 (-0.96%)

✅ Difftest smoke test passed!

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants