[Perf][Bugfix] Prefer MNNVL for single-node FlashInfer allreduce again (#61989)
Signed-off-by: khluu <khluu000@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Wei Zhao <51183510+wzhao18@users.noreply.github.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
Wei Zhao
parent
026f6ab268
commit
2b85d9cb65
@@ -462,8 +462,8 @@ def test_flashinfer_standalone_workspace_size(
|
||||
@pytest.mark.parametrize(
|
||||
("node_count", "is_blackwell", "expected"),
|
||||
[
|
||||
(1, False, ("trtllm", False)),
|
||||
(1, True, ("trtllm", False)),
|
||||
(1, False, ("mnnvl", True)),
|
||||
(1, True, ("mnnvl", True)),
|
||||
(2, False, (None, False)),
|
||||
(2, True, ("mnnvl", False)),
|
||||
],
|
||||
|
||||
@@ -156,10 +156,12 @@ def _resolve_fi_ar_backend(group: ProcessGroup) -> tuple[str | None, bool]:
|
||||
|
||||
node_count = _node_count(group)
|
||||
if node_count == 1:
|
||||
# TRTLLM supports single-node allreduce on Hopper and Blackwell. Do not
|
||||
# create an MNNVL workspace when the process group is node-local.
|
||||
backend = "trtllm"
|
||||
allow_trtllm_fallback = False
|
||||
# MNNVL decodes faster than TRTLLM on single-node NVSwitch systems
|
||||
# (about 3-5% throughput at TP4/TP8 on H200 and B200). Fall back to
|
||||
# TRTLLM where the node lacks NVSwitch multicast and MNNVL cannot
|
||||
# create its workspace.
|
||||
backend = "mnnvl"
|
||||
allow_trtllm_fallback = True
|
||||
elif current_platform.has_device_capability(100):
|
||||
# MNNVL requires Blackwell-class GPUs and is the only supported
|
||||
# FlashInfer backend for a multi-node allreduce process group.
|
||||
|
||||
Reference in New Issue
Block a user