From ee4bf0a9d3bfb3e9ed48229d6230dc944ea56b2c Mon Sep 17 00:00:00 2001 From: Zhangheng Date: Tue, 2 Jun 2026 19:02:50 +0800 Subject: [PATCH] [UnifiedTree]: Add HiCache Nightly CI For GLM5 (#26927) --- ...=> test_unified_radix_cache_kl_nightly.py} | 59 +++++++++++++++++-- 1 file changed, 55 insertions(+), 4 deletions(-) rename test/registered/radix_cache/unified_radix_tree/{test_unified_radix_cache_kl_hicache_nightly.py => test_unified_radix_cache_kl_nightly.py} (73%) diff --git a/test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_hicache_nightly.py b/test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_nightly.py similarity index 73% rename from test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_hicache_nightly.py rename to test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_nightly.py index 16efd0220..fdc7c023f 100644 --- a/test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_hicache_nightly.py +++ b/test/registered/radix_cache/unified_radix_tree/test_unified_radix_cache_kl_nightly.py @@ -40,8 +40,8 @@ class AccuracyTwoPassMixin: num_gsm8k_questions: int = 200 gsm8k_parallel: int = 40 - mmlu_threshold: float = 0.75 - num_mmlu_examples: int = 200 + mmlu_threshold: float = 0.65 + num_mmlu_examples: int = 100 mmlu_num_threads: int = 32 max_accuracy_diff: float = 0.02 @@ -128,7 +128,7 @@ class AccuracyTwoPassMixin: self._two_pass("MMLU", self._run_mmlu, self.mmlu_threshold) -class TestGLM5HiCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase): +class TestGLM5HiRadixCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase): """GLM-5.1-FP8 + HiCache L3 (file backend), with HiRadixTree.""" @classmethod @@ -164,7 +164,58 @@ class TestGLM5HiCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase): "--hicache-storage-backend", "file", ], - env={"SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR": cls.hicache_dir}, + env={ + "SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR": cls.hicache_dir, + }, + ) + + @classmethod + def tearDownClass(cls): + kill_process_tree(cls.process.pid) + if os.path.isdir(cls.hicache_dir): + shutil.rmtree(cls.hicache_dir, ignore_errors=True) + + +class TestGLM5UnifiedRadixCacheL3Accuracy(AccuracyTwoPassMixin, CustomTestCase): + """GLM-5.1-FP8 + HiCache L3 (file backend), with UnifiedRadixTree.""" + + @classmethod + def setUpClass(cls): + cls.model = GLM5_MODEL + cls.base_url = DEFAULT_URL_FOR_TEST + cls.hicache_dir = tempfile.mkdtemp(prefix="hicache_l3_") + cls.process = popen_launch_server( + cls.model, + cls.base_url, + timeout=GLM5_LAUNCH_TIMEOUT, + other_args=[ + "--trust-remote-code", + "--tp-size", + "8", + "--page-size", + "64", + "--mem-fraction-static", + "0.85", + "--model-loader-extra-config", + '{"enable_multithread_load": true, "num_threads": 64}', + "--enable-hierarchical-cache", + "--hicache-ratio", + "2", + "--hicache-write-policy", + "write_through", + "--hicache-storage-prefetch-policy", + "wait_complete", + "--hicache-io-backend", + "direct", + "--hicache-mem-layout", + "page_first_direct", + "--hicache-storage-backend", + "file", + ], + env={ + "SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR": cls.hicache_dir, + "SGLANG_ENABLE_UNIFIED_RADIX_TREE": "1", + }, ) @classmethod