diff --git a/.github/workflows/_pr-test-check-changes.yml b/.github/workflows/_pr-test-check-changes.yml index 9591fe97a..763cb6c35 100644 --- a/.github/workflows/_pr-test-check-changes.yml +++ b/.github/workflows/_pr-test-check-changes.yml @@ -103,6 +103,9 @@ jobs: - "python/pyproject.toml" - "python/sglang/jit_kernel/**" - "test/registered/jit/**" + # sglang.kernels is the migrated kernel namespace (RFC #29630 / #30044); the + # base-b-kernel suites import it directly, so kernel edits must run them. + - "python/sglang/kernels/**" sgl_kernel: # Intentionally excludes ".github/workflows/pr-test-sgl-kernel.yml" — # see API-side detector below for rationale. diff --git a/python/sglang/srt/speculative/multi_layer_eagle_draft_extend_cuda_graph_runner.py b/python/sglang/srt/speculative/multi_layer_eagle_draft_extend_cuda_graph_runner.py index e7461021d..f75439d90 100644 --- a/python/sglang/srt/speculative/multi_layer_eagle_draft_extend_cuda_graph_runner.py +++ b/python/sglang/srt/speculative/multi_layer_eagle_draft_extend_cuda_graph_runner.py @@ -273,6 +273,7 @@ class MultiLayerEagleDraftExtendCudaGraphRunner(DecodeCudaGraphRunner): num_correct_drafts=num_correct_drafts, num_accept_tokens=num_accept_tokens, ) + spec_info.num_tokens_per_req = self.num_tokens_per_req spec_info.positions = None capture_mode = ( diff --git a/test/registered/attention/test_kda_decode_flashinfer.py b/test/registered/attention/test_kda_decode_flashinfer.py index 9a032dfba..fbea645eb 100644 --- a/test/registered/attention/test_kda_decode_flashinfer.py +++ b/test/registered/attention/test_kda_decode_flashinfer.py @@ -10,11 +10,11 @@ import torch from sglang.test.ci.ci_register import register_cuda_ci -# SM100 single-GPU kernel-unit suite, same slot as the CuteDSL KDA prefill test. +# SM100 suite, same slot as the CuteDSL KDA prefill test. # Disabled in public CI until the B200 runner image ships recurrent_kda. register_cuda_ci( est_time=60, - stage="base-b-kernel-unit", + stage="base-b", runner_config="4-gpu-b200", disabled="recurrent_kda (SM100 KDA decode) not guaranteed in public CI FlashInfer build", ) diff --git a/test/registered/attention/test_trtllm_mha_graph_metadata.py b/test/registered/attention/test_trtllm_mha_graph_metadata.py index a83e7fef2..780162d33 100644 --- a/test/registered/attention/test_trtllm_mha_graph_metadata.py +++ b/test/registered/attention/test_trtllm_mha_graph_metadata.py @@ -23,7 +23,7 @@ from sglang.srt.model_executor.forward_batch_info import ForwardMode from sglang.test.ci.ci_register import register_cuda_ci # trtllm_mha kernels are sm100-only; run this kernel-unit test on Blackwell. -register_cuda_ci(est_time=30, stage="base-b-kernel-unit", runner_config="4-gpu-b200") +register_cuda_ci(est_time=30, stage="base-b", runner_config="4-gpu-b200") DEVICE = "cuda" PAGE_SIZE = 128 diff --git a/test/registered/jit/test_custom_all_reduce.py b/test/registered/jit/test_custom_all_reduce.py index c5edd024f..be827a660 100644 --- a/test/registered/jit/test_custom_all_reduce.py +++ b/test/registered/jit/test_custom_all_reduce.py @@ -45,7 +45,7 @@ from sglang.test.ci.ci_register import register_cuda_ci register_cuda_ci( est_time=300, - stage="base-b-kernel-unit", + stage="extra-b", runner_config="8-gpu-h200", ) # Nightly is not redundant here: it sets SGLANG_JIT_KERNEL_RUN_FULL_TESTS=1 to expand get_ci_test_range sweeps. diff --git a/test/registered/jit/test_dsv32_indexer_fusion.py b/test/registered/jit/test_dsv32_indexer_fusion.py index e1991e4df..6cb2b76dc 100644 --- a/test/registered/jit/test_dsv32_indexer_fusion.py +++ b/test/registered/jit/test_dsv32_indexer_fusion.py @@ -31,7 +31,7 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci _is_hip = is_hip() -register_cuda_ci(est_time=45, stage="base-b-kernel-unit", runner_config="1-gpu-large") +register_cuda_ci(est_time=45, stage="base-b", runner_config="1-gpu-large") register_amd_ci(est_time=45, suite="jit-kernel-unit-test-amd") HEAD_DIM = 128 diff --git a/test/registered/jit/test_hicache.py b/test/registered/jit/test_hicache.py index b2ed8a4ba..2b4d2d359 100644 --- a/test/registered/jit/test_hicache.py +++ b/test/registered/jit/test_hicache.py @@ -14,7 +14,7 @@ from sglang.srt.mem_cache.pool_host.mla import MLATokenToKVPoolHost from sglang.srt.utils import is_cuda, is_hip, is_npu, is_xpu from sglang.test.ci.ci_register import register_cuda_ci -register_cuda_ci(est_time=10, stage="base-b-kernel-unit", runner_config="1-gpu-large") +register_cuda_ci(est_time=10, stage="base-b", runner_config="1-gpu-large") pytestmark = pytest.mark.skipif( not torch.cuda.is_available() diff --git a/test/registered/jit/test_hicache_page_first_write_back.py b/test/registered/jit/test_hicache_page_first_write_back.py index 3d6897e10..765e4817c 100644 --- a/test/registered/jit/test_hicache_page_first_write_back.py +++ b/test/registered/jit/test_hicache_page_first_write_back.py @@ -24,7 +24,7 @@ from sglang.srt.mem_cache.pool_host.mla import MLATokenToKVPoolHost from sglang.srt.utils import is_cuda, is_hip, is_npu, is_xpu from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci -register_cuda_ci(est_time=15, stage="base-b-kernel-unit", runner_config="1-gpu-large") +register_cuda_ci(est_time=15, stage="base-b", runner_config="1-gpu-large") register_amd_ci(est_time=30, stage="jit-kernel-unit", runner_config="amd") pytestmark = pytest.mark.skipif( diff --git a/test/registered/jit/test_kvcacheio_asymmetric.py b/test/registered/jit/test_kvcacheio_asymmetric.py index 6b93b572e..711c9f5af 100644 --- a/test/registered/jit/test_kvcacheio_asymmetric.py +++ b/test/registered/jit/test_kvcacheio_asymmetric.py @@ -7,7 +7,7 @@ import torch from sglang.srt.mem_cache.pool_host.mha import AsymmetricMHATokenToKVPoolHost from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci -register_cuda_ci(est_time=10, stage="base-b-kernel-unit", runner_config="1-gpu-large") +register_cuda_ci(est_time=10, stage="base-b", runner_config="1-gpu-large") register_amd_ci(est_time=10, suite="nightly-amd-kernel-1-gpu", nightly=True) # These tests use AsymmetricMHATokenToKVPoolHost methods and let that class call diff --git a/test/registered/jit/test_moe_wna16_marlin.py b/test/registered/jit/test_moe_wna16_marlin.py index 5efbd3825..36d9a12b8 100644 --- a/test/registered/jit/test_moe_wna16_marlin.py +++ b/test/registered/jit/test_moe_wna16_marlin.py @@ -20,7 +20,7 @@ from sglang.test.test_marlin_utils import ( marlin_quantize, ) -register_cuda_ci(est_time=10, stage="base-b-kernel-unit", runner_config="1-gpu-large") +register_cuda_ci(est_time=10, stage="base-b", runner_config="1-gpu-large") def _has_aot_moe_wna16_marlin_gemm() -> bool: diff --git a/test/registered/jit/test_symm_mem_all_gather.py b/test/registered/jit/test_symm_mem_all_gather.py index 973849a4d..fd3341a07 100644 --- a/test/registered/jit/test_symm_mem_all_gather.py +++ b/test/registered/jit/test_symm_mem_all_gather.py @@ -34,7 +34,7 @@ from sglang.srt.distributed.device_communicators.triton_symm_mem_ag import ( ) from sglang.test.ci.ci_register import register_cuda_ci -register_cuda_ci(est_time=240, stage="base-b-kernel-unit", runner_config="8-gpu-h200") +register_cuda_ci(est_time=240, stage="extra-b", runner_config="8-gpu-h200") # Nightly is not redundant here: it sets SGLANG_JIT_KERNEL_RUN_FULL_TESTS=1 to expand get_ci_test_range sweeps. register_cuda_ci(est_time=240, suite="nightly-kernel-8-gpu-h200", nightly=True) diff --git a/test/registered/jit/test_tp_qknorm.py b/test/registered/jit/test_tp_qknorm.py index c89109715..a880a0a94 100644 --- a/test/registered/jit/test_tp_qknorm.py +++ b/test/registered/jit/test_tp_qknorm.py @@ -29,7 +29,7 @@ from sglang.test.ci.ci_register import register_cuda_ci register_cuda_ci( est_time=300, - stage="base-b-kernel-unit", + stage="extra-b", runner_config="8-gpu-h200", )