Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

all_reduce: every iris.store passes a vectorization hint, none of the iris.load calls do

Open
#592 0 comments 0 reactions 0 assignees View on GitHub

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

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

good first issue help wanted iris

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 six iris.load calls, 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.distributed on 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

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ROCm/iris

All issues in ROCm/iris

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.