Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions examples/speechlm2/conf/salm_automodel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,17 @@ model:

# Automodel backend dispatch. Selects the kernel/backend for each major module
# in the LLM (attention, linear, rms_norm, MoE experts/dispatcher). Defaults
# come from Automodel's BackendConfig and auto-select TE/DeepEP when available;
# override here to pin a specific backend (e.g. attn=sdpa to bypass TE).
# automodel_backend:
# come from Automodel's BackendConfig and auto-select TE/DeepEP when available.
# TODO (Dongji): This is a temporary release unblock. Remove the override once
# BackendConfig checks NVLINK/NVSHMEM topology before selecting DeepEP.
automodel_backend:
dispatcher: torch # Set to "deepep" only if your GPUs have NVLINK/NVSHMEM
# Optional overrides for other backends (e.g. attn=sdpa to bypass TE):
# attn: te # "te" | "sdpa" | "flex"
# linear: te # "torch" | "te"
# rms_norm: torch_fp32 # "torch" | "torch_fp32" | "te"
# rope_fusion: true # Fused RoPE (requires TE)
# experts: torch_mm # MoE expert GEMM: "torch" | "te" | "gmm" | "torch_mm"
# dispatcher: deepep # MoE token dispatcher: "torch" | "deepep" | "hybridep" | "uccl_ep"
# dispatcher_num_sms: 20 # SM count for DeepEP/UCCL-EP kernels
# fake_balanced_gate: false # Replace learned Gate with balanced fake gate (debug/bench)
# fake_gate_noise: 0.0 # [0, 1] — noise for FakeBalancedGate routing
Expand Down
25 changes: 25 additions & 0 deletions tests/collections/speechlm2/test_example_configs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from pathlib import Path

from omegaconf import OmegaConf


REPO_ROOT = Path(__file__).parents[3]


def test_salm_automodel_uses_portable_moe_dispatcher():
cfg = OmegaConf.load(REPO_ROOT / "examples/speechlm2/conf/salm_automodel.yaml")

assert cfg.model.automodel_backend.dispatcher == "torch"
Loading