[NPU] Optimize DeepSeek-V4 performance (#31931)
This commit is contained in:
@@ -41,7 +41,12 @@ from torch.distributed import barrier
|
||||
from sglang.kernels.ops.mamba.triton_ops import (
|
||||
initialize_mamba_selective_state_update_backend,
|
||||
)
|
||||
from sglang.srt.configs.model_config import ModelConfig, ModelImpl, is_minimax_sparse
|
||||
from sglang.srt.configs.model_config import (
|
||||
ModelConfig,
|
||||
ModelImpl,
|
||||
is_deepseek_v4,
|
||||
is_minimax_sparse,
|
||||
)
|
||||
from sglang.srt.constrained.grammar_manager import GrammarManager
|
||||
from sglang.srt.debug_utils.pr_fix_toggle import maybe_revert_pr_fix
|
||||
from sglang.srt.disaggregation.decode import (
|
||||
@@ -291,6 +296,13 @@ else:
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _prewarm_hccl_group(device, group, device_module):
|
||||
warmup_tensor = torch.zeros(1, dtype=torch.int32, device=device)
|
||||
torch.distributed.all_reduce(warmup_tensor, group=group)
|
||||
device_module.synchronize()
|
||||
|
||||
|
||||
# Test retract decode for debugging purposes
|
||||
TEST_RETRACT = envs.SGLANG_TEST_RETRACT.get()
|
||||
TEST_RETRACT_INTERVAL = envs.SGLANG_TEST_RETRACT_INTERVAL.get()
|
||||
@@ -488,6 +500,22 @@ class Scheduler(
|
||||
self.disable_radix_cache = result.disable_radix_cache
|
||||
self.tree_cache = result.tree_cache
|
||||
|
||||
if _is_npu and is_deepseek_v4(
|
||||
self.tp_worker.model_runner.model_config.hf_config
|
||||
):
|
||||
rank = (
|
||||
self.ps.dp_rank
|
||||
if self.ps.dp_rank is not None
|
||||
else self.tp_group.rank_in_group
|
||||
)
|
||||
logger.info("HCCL DP prewarm start: rank=%s", rank)
|
||||
_prewarm_hccl_group(
|
||||
device=self.tp_group.device,
|
||||
group=self.tp_group.device_group,
|
||||
device_module=self.tp_group.device_module,
|
||||
)
|
||||
logger.info("HCCL DP prewarm done: rank=%s", rank)
|
||||
|
||||
if (c := self.tp_worker.model_runner.canary_manager) is not None:
|
||||
c.attach_radix_cache(self.tree_cache)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user