{"record":{"id":"04b678e9dfee9dee","repo":"sgl-project/sglang","slug":"enable-dsa-cache-layer-split-is-not-supported-wi","errorCode":null,"errorMessage":"--enable-dsa-cache-layer-split is not supported with pipeline parallelism (pp_size > 1) yet. It requires prefill context parallelism, and CP + PP has not been validated for this feature.","messagePattern":"--enable-dsa-cache-layer-split is not supported with pipeline parallelism \\(pp_size > 1\\) yet\\. It requires prefill context parallelism, and CP \\+ PP has not been validated for this feature\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/srt/server_args.py","lineNumber":5963,"sourceCode":"                        \"(or legacy --enable-nsa-prefill-context-parallel with \"\n                        \"--nsa-prefill-cp-mode round-robin-split).\"\n                    )\n                # Layer split relies on the mooncake all-CP-rank KV/indexer\n                # transfer path. mori/nixl support is a temporary limitation\n                # and will be added later by the community.\n                if (\n                    cfg.enable_dsa_cache_layer_split\n                    and cfg.disaggregation_transfer_backend != \"mooncake\"\n                ):\n                    raise ValueError(\n                        \"--enable-dsa-cache-layer-split currently only supports \"\n                        \"the mooncake transfer backend (mooncake / mooncake_tcp). \"\n                        f\"Got --disaggregation-transfer-backend \"\n                        f\"{cfg.disaggregation_transfer_backend!r}. mori/nixl \"\n                        \"support will be added later by the community.\"\n                    )\n                if cfg.enable_dsa_cache_layer_split and cfg.pp_size > 1:\n                    raise ValueError(\n                        \"--enable-dsa-cache-layer-split is not supported with \"\n                        \"pipeline parallelism (pp_size > 1) yet. It requires \"\n                        \"prefill context parallelism, and CP + PP has not been \"\n                        \"validated for this feature.\"\n                    )\n\n            else:\n                # DeepSeek V3/R1/V3.1\n                if cfg.cuda_graph_config.prefill.backend != Backend.DISABLED:\n                    logger.info(\"Piecewise CUDA graph is enabled, use MLA for prefill.\")\n\n                # The sm100 trtllm_mla fill moved to the override registry\n                # (arg_groups/overrides.py: _deepseek_family_overrides).\n\n                # MLA prefill CP auto-config: the field declarations moved to\n                # the override registry (arg_groups/overrides.py:\n                # _deepseek_family_overrides).\n                if cfg.enable_prefill_cp and self.use_mla_backend():","sourceCodeStart":5945,"sourceCodeEnd":5981,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/srt/server_args.py#L5945-L5981","documentation":"--enable-dsa-cache-layer-split requires prefill context parallelism, and CP+PP has not been validated for this feature, so it is rejected whenever pipeline parallelism (pp_size > 1) is active.","triggerScenarios":"Combining --enable-dsa-cache-layer-split with --pp-size > 1 on a PD prefill worker.","commonSituations":"Large multi-node deployments that use PP for memory scaling also enabling the DSA cache-layer-split optimization; cluster templates with pp-size preset.","solutions":["Set --pp-size 1 when using --enable-dsa-cache-layer-split (scale with CP/TP instead)","Or remove --enable-dsa-cache-layer-split if PP is required","Track upstream validation of CP+PP for this feature"],"exampleFix":"# before\n--enable-dsa-cache-layer-split --pp-size 2\n# after\n--enable-dsa-cache-layer-split --pp-size 1 --cp-size 2","handlingStrategy":"validation","validationCode":"if args.get(\"enable_dsa_cache_layer_split\") and args.get(\"pp_size\", 1) > 1:\n    raise SystemExit(\"dsa-cache-layer-split requires pp_size=1; use CP/TP to scale\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Prefer CP/TP over PP for models using prefill-CP optimizations","Validate parallelism dimensions against per-model constraints before cluster launch"],"tags":["dsa","pipeline-parallelism","config-validation"],"backgroundTag":"unsupported-parallelism-config","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}