diff --git a/test/registered/models_e2e/test_llama8b_nvfp4_kv_cache_sm120.py b/test/registered/models_e2e/test_llama8b_nvfp4_kv_cache_sm120.py deleted file mode 100644 index d516ef121..000000000 --- a/test/registered/models_e2e/test_llama8b_nvfp4_kv_cache_sm120.py +++ /dev/null @@ -1,64 +0,0 @@ -import unittest - -from sglang.srt.utils.common import is_sm120_supported -from sglang.test.accuracy_test_runner import AccuracyTestParams -from sglang.test.ci.ci_register import register_cuda_ci -from sglang.test.run_combined_tests import run_combined_tests -from sglang.test.test_utils import CustomTestCase, ModelLaunchSettings - -register_cuda_ci(est_time=300, stage="extra-a", runner_config="1-gpu-small") - -LLAMA8B_NVFP4_MODEL = "nvidia/Llama-3.1-8B-Instruct-NVFP4" -TP_SIZE = 1 - - -@unittest.skipUnless( - is_sm120_supported(), "requires at least 1 SM120 GPU with CUDA 12.8+" -) -class TestLlama8BNVFP4KVCacheSM120(CustomTestCase): - """Llama-3.1-8B-Instruct-NVFP4 with NVFP4 KV cache on SM120.""" - - def test_gsm8k(self): - variants = [ - ModelLaunchSettings( - LLAMA8B_NVFP4_MODEL, - tp_size=TP_SIZE, - extra_args=[ - "--quantization", - "modelopt_fp4", - "--fp4-gemm-backend", - "auto", - "--kv-cache-dtype", - "nvfp4", - "--prefill-attention-backend", - "flashinfer", - "--decode-attention-backend", - "trtllm_mha", - "--page-size", - "64", - "--cuda-graph-backend-prefill=disabled", - ], - variant="NVFP4-GEMM+NVFP4-KV+SM120-XQA", - ) - ] - - run_combined_tests( - models=variants, - test_name="Llama-3.1-8B-Instruct-NVFP4-KV-SM120", - accuracy_params=AccuracyTestParams( - dataset="gsm8k", - # Full GSM8K measured locally with 1319 requested / 1314 scored: - # - FP8 KV: 0.6461187214611872 - # - NVFP4 KV: 0.632420091324201 - # Keep the threshold 0.015 below the NVFP4 KV score. - baseline_accuracy=0.632420091324201 - 0.015, - num_examples=1319, - num_threads=200, - max_tokens=512, - api="completion", - ), - ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/registered/quant/test_llama8b_nvfp4_kv_cache_sm120.py b/test/registered/quant/test_llama8b_nvfp4_kv_cache_sm120.py new file mode 100644 index 000000000..cbbf6349e --- /dev/null +++ b/test/registered/quant/test_llama8b_nvfp4_kv_cache_sm120.py @@ -0,0 +1,51 @@ +import unittest + +from sglang.srt.utils.common import is_sm120_supported +from sglang.test.ci.ci_register import register_cuda_ci +from sglang.test.kits.eval_accuracy_kit import GSM8KMixin +from sglang.test.server_fixtures.default_fixture import DefaultServerBase + +register_cuda_ci( + est_time=300, + stage="extra-a", + runner_config="1-gpu-small", + disabled="Temporarily disabled due to failing accuracy", +) + + +@unittest.skipUnless( + is_sm120_supported(), "requires at least 1 SM120 GPU with CUDA 12.8+" +) +class TestLlama8BNVFP4KVCacheSM120(GSM8KMixin, DefaultServerBase): + """Llama-3.1-8B-Instruct-NVFP4 with NVFP4 KV cache on SM120.""" + + model = "nvidia/Llama-3.1-8B-Instruct-NVFP4" + # Full GSM8K measured locally with 1319 requested / 1314 scored: + # - FP8 KV: 0.6461187214611872 + # - NVFP4 KV: 0.632420091324201 + # Keep the threshold 0.015 below the NVFP4 KV score. + gsm8k_accuracy_thres = 0.632420091324201 - 0.015 + gsm8k_num_questions = 1319 + gsm8k_num_threads = 200 + + other_args = [ + "--quantization", + "modelopt_fp4", + "--fp4-gemm-backend", + "auto", + "--kv-cache-dtype", + "nvfp4", + "--prefill-attention-backend", + "flashinfer", + "--decode-attention-backend", + "trtllm_mha", + "--page-size", + "64", + "--mem-fraction-static", + "0.87", + "--cuda-graph-backend-prefill=disabled", + ] + + +if __name__ == "__main__": + unittest.main()