TL/UCP: Relax Allreduce Ring Constraints - #1336
Open
wfaderhold21 wants to merge 2 commits into
Open
Conversation
Ring reduce-scatter only implements post-op AVG and rejects UCC_OP_AVG when REDUCE_AVG_PRE_OP=1 (the default). With the default selector now routing >=4MB allreduce to ring, a large default AVG allreduce is first offered to ring; the score-map fallback must transparently complete it on a pre-op-capable algorithm (knomial/sra). Add two gtests to the test_allreduce_avg_order fixture: - avg_ring_pre_op_fallback: force @Ring for all sizes under default pre-op and verify the collective still completes with correctly averaged results (deterministic fallback proof). - avg_large_default_selection: default config with a >4MB message so the real default selector routes to ring; regression guard for the 4m-inf ring routing.
Contributor
|
| Filename | Overview |
|---|---|
| src/components/tl/ucp/allgather/allgather_ring.c | Replaces equal-block arithmetic with consistent remainder-aware counts and offsets for sends, receives, and the initial copy. |
| src/components/tl/ucp/allreduce/allreduce.h | Changes default allreduce selection to knomial below 4 KiB, SRA knomial through 4 MiB, and ring for larger messages. |
| src/components/tl/ucp/allreduce/allreduce_ring.c | Removes the divisibility guard so the composed reduce-scatter and allgather ring can use uneven block partitioning. |
| test/gtest/coll/test_allreduce.cc | Adds broad correctness coverage for non-divisible ring counts and AVG fallback under forced and default selection. |
| test/gtest/common/test_ucc.cc | Preserves each unique environment variable's original presence and value, including unsetting variables that were initially absent. |
Reviews (1): Last reviewed commit: "TEST: add allreduce pre-op fall back tes..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Addresses #1293