-
Couldn't load subscription status.
- Fork 21
Introduce cache modifiers #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds cache modifier support to the Iris framework's load and store operations. The changes enable fine-grained control over GPU cache behavior during memory operations, allowing developers to optimize performance by specifying how data should be cached across the CU (L1), L2, and LLC levels.
Key changes:
- Enhanced
load()andstore()functions withcache_modifierandvolatileparameters - Added comprehensive test coverage for different cache behaviors (default, writeback, cache global, cache streaming, write-through, and volatile)
- Updated function documentation to explain cache modifier options and their effects on GPU cache hierarchy
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| iris/iris.py | Enhanced load() and store() functions with cache_modifier and volatile parameters, plus detailed documentation |
| tests/unittests/test_load_cache_modifiers.py | New comprehensive test suite covering all cache modifier behaviors and volatile flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
… function (#230) Signed-off-by: Muhammad Awad <MuhammadAbdelghaffar.Awad@amd.com> Co-authored-by: Muhammad Awad <112003944+mawad-amd@users.noreply.github.com>
Motivation
This PR introduces support for cache modifiers and volatile flags in Iris' distributed memory operations (
load,store,get,put).The goal is to provide fine-grained control over caching behavior at different cache levels. This allows developers to have fine grained control over caching behavoir.
Technical Details
Changes include:
loadwithcache_modifierandvolatileoptions.storewithcache_modifier.getandputwith bothload_cache_modifierandstore_cache_modifier.tests/run_tests_distributed.pyto correctly forward worker exit codes.volatileoption.Test Plan
I added comprehensive tests under
tests/unittests:test_load_cache_modifiers.py– verifiesiris.loadwith all cache modifiers and volatile settings.test_store_cache_modifiers.py– verifiesiris.storewith all store cache modifiers across ranks.test_get_cache_modifiers.py– verifiesiris.getwith load/store cache modifier combinations.test_put_cache_modifiers.py– verifiesiris.putwith load/store cache modifier combinations.Each test checks correctness by comparing against expected tensors across distributed ranks.
Test Result
See CI
Submission Checklist