MultiDeviceExecutor ignores stream-parallel allocation IterDomains.
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start with csrc/multidevice/execution_utils.cpp, especially lines 69-85, and compare the allocation contracts in MultiDeviceExecutor and FusionExecutorCache. Trace the stream-parallel allocation-domain handling for the example output TV, then validate that the resulting allocation follows the allocation domain without the current logical-domain workaround.
Written by the indexing model from the issue text.
Description
For example, a fusion segment with an output TV logical/loop/allocation: [iStream{2}, 3] will produce a tensor of shape [2, 3]. This full allocation is not necessary when the segment that consumes that tensor is in the same loop.
Instead, FusionExecutorCache allocates a "sharded" tensor when the TV's allocation domain is stream-parallel. For example, the above output TV leads to shape [1, 3] instead. This contract also sounds more natural because the allocation domain dictates allocation.
Currently, I'm hacking around this difference by following MultiDeviceExecutor's contract when the allocation ID is in the logical domain and following the FusionExecutorCache's contract when the allocation ID is not in logical -- e.g. a split of a logical ID.
But let me know if there's a better way.
cc @samnordmann
- Dominant language
- C++
- Stars
- 404
- Forks
- 84
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
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 NVIDIA/Fuser
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Multi-GPU
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Multi-GPU
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Multi-GPU
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·