all_reduce: every iris.store passes a vectorization hint, none of the iris.load calls do
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- Half a day
- Newbie friendliness
- 62/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- python
- Domain
- distributed-systems, performance
Research direction
Start with iris/ccl/triton/all_reduce.py at lines 319, 411, 661, 665, 684 and 688, the six iris.load calls, and compare them with the hint=(1, BLOCK_SIZE_N) already passed to the iris.store calls in the same kernels. The hint is applied in iris/mem/triton/ops.py around line 59. Done means all six loads carry the hint, the 2/4/8-rank correctness check against torch.distributed passes, and benchmark/ccl/bench_all_reduce.py shows before/after numbers for every variant. Multi-GPU ROCm hardware is needed to finish.
Written by the indexing model from the issue text.
Description
all_reduce: every iris.store passes a vectorization hint, none of the iris.load calls do
hint= applies tl.multiple_of / tl.max_contiguous to the translated
pointer (iris/mem/triton/ops.py:59). It matters because translation rebases
through heap_bases, a runtime value, which erases the alignment and contiguity
the compiler knew about the original pointer — so the access falls back to a
narrower width. The hint restores it.
iris/ccl/triton/all_reduce.py:
| line | op | hint= |
|---|---|---|
| 332, 538, 675, 698 | iris.store |
yes, all four |
| 319, 411, 661, 665, 684, 688 | iris.load |
no, none of the six |
661/665 are the two_shot full-tile path, 684/688 its masked twin, 319 and 411 the
one_shot and spinlock paths.
The other three collectives are complete — all_gather 2/2, all_to_all 2/2,
reduce_scatter 4/4. all_reduce.py is the only file where the loads were missed.
Work
- Add
hint=to the sixiris.loadcalls, matching the shape already used on
the stores in the same kernel (hint=(1, BLOCK_SIZE_N)) - Confirm the access width changes in the ISA, per variant
- Correctness vs
torch.distributedon 2/4/8 ranks before timing - Before/after through
benchmark/ccl/bench_all_reduce.py, all variants
We expect a performance improvement here; it needs measuring.
- Dominant language
- Python
- Stars
- 202
- Forks
- 52
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 23
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ROCm/iris
-
core examples good first issue help wanted iris python
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 2 days
-
benchmarks bug examples iris test
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 2 days
-
bug examples invalid iris
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 2 days
-
enhancement gluon help wanted iris
Difficulty 5/5 Over a week Newbie friendliness 18/100
Maintainers usually reply within 2 days
-
gluon good first issue help wanted iris python
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 2 days
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/policyengine-us#10262 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
kellyjonbrazil/jc#788 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
`/search.json` ignores the documented `editions.sort` parameterPossibly taken @PranavD2905 claimed this today. OpenAffects: Server Good First Issue Module: Solr Needs: Triage Theme: Public APIs Theme: Search
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
internetarchive/openlibrary#13989 · 1 comment ·
Maintainers usually reply within 1 day
-
bug P2: misleading query
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
jeffknupp/association#478 ·