Feat/add fi selective state update kernel call (#18070)

Signed-off-by: Shahar Mor <smor@nvidia.com>
This commit is contained in:
shaharmor98
2026-02-19 16:56:06 +08:00
committed by GitHub
parent 0be30d4b0d
commit 82a0bafc1c
8 changed files with 366 additions and 2 deletions
+19
View File
@@ -0,0 +1,19 @@
import pytest
from sglang.srt.layers.attention.mamba.ops import ssu_dispatch
from sglang.srt.layers.attention.mamba.ops.ssu_dispatch import (
initialize_mamba_selective_state_update_backend,
)
from sglang.srt.server_args import ServerArgs
@pytest.fixture(scope="session", autouse=True)
def _init_mamba_ssu_backend():
"""Initialize the Mamba SSU dispatch backend for the test session.
In production this happens in Scheduler.init_mamba_backend(). Tests have no
scheduler, so we do it here via the same public API.
"""
initialize_mamba_selective_state_update_backend(ServerArgs(model_path="dummy"))
yield
ssu_dispatch._mamba_ssu_backend = None
@@ -26,6 +26,19 @@ class TestNvidiaNemotron3Nano30BBF16(LMEvalMixin, DefaultServerBase):
] + NEMOTRON_3_NANO_THINKING_ARGS
class TestNvidiaNemotron3Nano30BBF16FlashInfer(LMEvalMixin, DefaultServerBase):
"""Test Nemotron-3-Nano-30B BF16 model with lm-eval GSM8K evaluation using flashinfer mamba backend."""
model = "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16"
model_config_name = "lm_eval_configs/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16.yaml"
other_args = [
"--tp-size",
"2",
"--mamba-backend",
"flashinfer",
] + NEMOTRON_3_NANO_THINKING_ARGS
class TestNvidiaNemotron3Nano30BFP8(LMEvalMixin, DefaultServerBase):
"""Test Nemotron-3-Nano-30B FP8 model with lm-eval GSM8K evaluation."""
+5 -1
View File
@@ -188,7 +188,11 @@ def run_a_suite(args):
auto_partition_size = args.auto_partition_size
# All tests (per-commit and nightly) are now in registered/
files = glob.glob("registered/**/*.py", recursive=True)
files = [
f
for f in glob.glob("registered/**/*.py", recursive=True)
if not f.endswith("/conftest.py")
]
# Strict: all registered files must have proper registration
sanity_check = True