[AMD] Support triton backend decode context parallel for Qwen3.5 (#25090)
Co-authored-by: Baizhou Zhang <sobereddiezhang@gmail.com> Co-authored-by: Kangyan-Zhou <zky314343421@gmail.com> Co-authored-by: Khoa Pham <khoa.pham@radixark.ai> Co-authored-by: Hubert Lu <55214931+hubertlu-tw@users.noreply.github.com> Co-authored-by: zhengyao <zayao@amd.com>
This commit is contained in:
co-authored by
Baizhou Zhang
Kangyan-Zhou
Khoa Pham
Hubert Lu
zhengyao
parent
9ef1830701
commit
b2c8f7a22e
@@ -503,6 +503,9 @@ class ForwardBatch(ForwardBatchDeepSeekMHAMixin):
|
||||
|
||||
attn_cp_metadata: Optional[ContextParallelMetadata] = None
|
||||
|
||||
# Decode context parallel KV write mask.
|
||||
dcp_kv_mask: Optional[torch.Tensor] = None
|
||||
|
||||
# For ngram embedding
|
||||
ngram_embedding_info: Optional[NgramEmbeddingInfo] = None
|
||||
|
||||
@@ -857,6 +860,11 @@ class ForwardBatch(ForwardBatchDeepSeekMHAMixin):
|
||||
|
||||
model_runner.lora_manager.prepare_lora_batch(ret)
|
||||
|
||||
if getattr(model_runner, "dcp_size", 1) > 1 and ret.out_cache_loc is not None:
|
||||
ret.dcp_kv_mask = (
|
||||
ret.positions % model_runner.dcp_size == model_runner.dcp_rank
|
||||
)
|
||||
|
||||
return ret
|
||||
|
||||
def _maybe_init_non_generation_fields(self, batch: ScheduleBatch):
|
||||
|
||||
@@ -374,6 +374,8 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
||||
self.gpu_id = gpu_id
|
||||
self.tp_rank = tp_rank
|
||||
self.tp_size = tp_size
|
||||
self.dcp_size = server_args.dcp_size
|
||||
self.dcp_rank = self.tp_rank % self.dcp_size
|
||||
self.moe_ep_rank = moe_ep_rank
|
||||
self.moe_ep_size = moe_ep_size
|
||||
self.dp_rank = dp_rank
|
||||
@@ -1234,6 +1236,7 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
||||
expert_model_parallel_size=self.moe_ep_size,
|
||||
attention_context_model_parallel_size=self.attn_cp_size,
|
||||
moe_data_model_parallel_size=self.moe_dp_size,
|
||||
decode_context_parallel_size=self.dcp_size,
|
||||
duplicate_tp_group=self.server_args.enable_pdmux,
|
||||
enable_symm_mem=self.server_args.enable_symm_mem,
|
||||
recovered_rank=self.server_args.elastic_ep_rejoin,
|
||||
|
||||
@@ -885,7 +885,7 @@ class ModelRunnerKVCacheMixin:
|
||||
host_to_device_ratio=hisparse_cfg.host_to_device_ratio,
|
||||
)
|
||||
)
|
||||
elif self.page_size == 1:
|
||||
elif self.page_size == 1 and self.dcp_size == 1:
|
||||
self.token_to_kv_pool_allocator = TokenToKVPoolAllocator(
|
||||
self.max_total_num_tokens,
|
||||
dtype=self.kv_cache_dtype,
|
||||
@@ -895,8 +895,8 @@ class ModelRunnerKVCacheMixin:
|
||||
)
|
||||
else:
|
||||
self.token_to_kv_pool_allocator = PagedTokenToKVPoolAllocator(
|
||||
self.max_total_num_tokens,
|
||||
page_size=self.page_size,
|
||||
self.max_total_num_tokens * self.dcp_size,
|
||||
page_size=self.page_size * self.dcp_size,
|
||||
dtype=self.kv_cache_dtype,
|
||||
device=self.device,
|
||||
kvcache=self.token_to_kv_pool,
|
||||
|
||||
Reference in New Issue
Block a user