Feat/add fi selective state update kernel call (#18070)
Signed-off-by: Shahar Mor <smor@nvidia.com>
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user