Files
sglang/test/registered/perf/test_dpsk_r1_fp4_4gpu_perf.py
2026-01-15 16:13:35 -08:00

75 lines
2.4 KiB
Python

import unittest
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.performance_test_runner import PerformanceTestParams
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings
# Runs on B200 via nightly-4-gpu-b200 suite
register_cuda_ci(est_time=2000, suite="nightly-4-gpu-b200", nightly=True)
DEEPSEEK_R1_FP4_MODEL_PATH = "nvidia/DeepSeek-R1-0528-NVFP4-v2"
class TestDeepseekR1FP4Unified(unittest.TestCase):
"""Unified test class for DeepSeek-R1-0528-NVFP4-v2 performance and accuracy.
Two variants:
- basic: Standard TP=4
- mtp: TP=4 + EAGLE speculative decoding
Each variant runs BOTH:
- Performance test (using NightlyBenchmarkRunner)
- Accuracy test (using run_eval with mgsm_en)
"""
def test_deepseek_r1_fp4_all_variants(self):
"""Run performance and accuracy for all DeepSeek-R1-0528-NVFP4-v2 variants."""
# Define base arguments shared by most variants
base_args = [
"--tp=4",
"--trust-remote-code",
"--model-loader-extra-config",
'{"enable_multithread_load": true}',
]
mtp_args = [
"--speculative-algorithm=EAGLE",
"--speculative-num-steps=3",
"--speculative-eagle-topk=1",
"--speculative-num-draft-tokens=4",
"--mem-frac=0.7",
]
variants = [
# Variant: "basic" - Standard TP=4
ModelLaunchSettings(
DEEPSEEK_R1_FP4_MODEL_PATH,
tp_size=4,
extra_args=base_args,
variant="TP4",
),
# Variant: "mtp" - TP=4 + EAGLE speculative decoding
ModelLaunchSettings(
DEEPSEEK_R1_FP4_MODEL_PATH,
tp_size=4,
extra_args=base_args + mtp_args,
variant="TP4+MTP",
),
]
run_combined_tests(
models=variants,
test_name="DeepSeek-R1-0528-NVFP4-v2 Unified",
accuracy_params=AccuracyTestParams(
dataset="gsm8k", baseline_accuracy=0.935
),
performance_params=PerformanceTestParams(
profile_dir="performance_profiles_deepseek_r1_fp4",
),
)
if __name__ == "__main__":
unittest.main()