-
Notifications
You must be signed in to change notification settings - Fork 17
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_modifier
andvolatile
parameters - 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.
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:
load
withcache_modifier
andvolatile
options.store
withcache_modifier
.get
andput
with bothload_cache_modifier
andstore_cache_modifier
.tests/run_tests_distributed.py
to correctly forward worker exit codes.volatile
option.Test Plan
I added comprehensive tests under
tests/unittests
:test_load_cache_modifiers.py
– verifiesiris.load
with all cache modifiers and volatile settings.test_store_cache_modifiers.py
– verifiesiris.store
with all store cache modifiers across ranks.test_get_cache_modifiers.py
– verifiesiris.get
with load/store cache modifier combinations.test_put_cache_modifiers.py
– verifiesiris.put
with load/store cache modifier combinations.Each test checks correctness by comparing against expected tensors across distributed ranks.
Test Result
See CI
Submission Checklist