[P/D] check kv extra config and del hccl backend (#4547)
### What this PR does / why we need it?
check kv extra config & del hccl backend
- vLLM version: v0.12.0
- vLLM main:
ad32e3e19c
---------
Signed-off-by: liziyu <liziyu16@huawei.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
This commit is contained in:
@@ -35,7 +35,6 @@ from vllm.v1.core.sched.output import SchedulerOutput
|
||||
from vllm.v1.kv_cache_interface import KVCacheConfig
|
||||
from vllm.v1.request import RequestStatus
|
||||
|
||||
import vllm_ascend.envs as envs_ascend
|
||||
from vllm_ascend.ascend_config import get_ascend_config, init_ascend_config
|
||||
from vllm_ascend.distributed.mooncake_transfer_engine import global_te
|
||||
from vllm_ascend.distributed.utils import get_transfer_timeout_value
|
||||
@@ -653,6 +652,7 @@ class MooncakeConnector(KVConnectorBase_V1):
|
||||
kv_cache_config: Optional[KVCacheConfig] = None):
|
||||
assert vllm_config.kv_transfer_config is not None
|
||||
self.engine_id = vllm_config.kv_transfer_config.engine_id
|
||||
self._connector_metadata = MooncakeConnectorMetadata()
|
||||
|
||||
if role == KVConnectorRole.SCHEDULER:
|
||||
self.connector_scheduler: Optional[MooncakeConnectorScheduler] = \
|
||||
@@ -744,9 +744,6 @@ class MooncakeConnectorScheduler:
|
||||
self.side_channel_host = get_ip()
|
||||
self.pcp_size = vllm_config.parallel_config.prefill_context_parallel_size
|
||||
self.dcp_size = vllm_config.parallel_config.decode_context_parallel_size
|
||||
self.max_device_id = vllm_config.parallel_config.tensor_parallel_size * \
|
||||
vllm_config.parallel_config.data_parallel_size * \
|
||||
self.pcp_size
|
||||
|
||||
# Handshake base port
|
||||
self.side_channel_port = (
|
||||
@@ -905,8 +902,6 @@ class MooncakeConnectorWorker:
|
||||
self.tp_rank = get_tensor_model_parallel_rank()
|
||||
self.tp_size = vllm_config.parallel_config.tensor_parallel_size
|
||||
self.tp_group = get_tp_group()
|
||||
self.dp_rank = vllm_config.parallel_config.data_parallel_rank
|
||||
self.dp_size = vllm_config.parallel_config.data_parallel_size_local
|
||||
self.kv_caches: dict[str, torch.Tensor] = {}
|
||||
self.side_channel_host = get_ip()
|
||||
self.pcp_size = get_pcp_group().world_size
|
||||
@@ -916,7 +911,6 @@ class MooncakeConnectorWorker:
|
||||
self.dcp_rank = get_decode_context_model_parallel_rank(
|
||||
) if self.dcp_size > 1 else 0
|
||||
|
||||
self.max_device_id = self.tp_size * self.dp_size * self.pcp_size
|
||||
self.kv_role = vllm_config.kv_transfer_config.kv_role
|
||||
self.num_key_value_heads = self.vllm_config.model_config.hf_config.num_key_value_heads
|
||||
|
||||
@@ -927,38 +921,9 @@ class MooncakeConnectorWorker:
|
||||
vllm_config.parallel_config.tensor_parallel_size * self.pcp_size)
|
||||
self.handshake_port = self.side_channel_port + self.pcp_rank * self.tp_size + self.tp_rank
|
||||
self.sockets: dict = {}
|
||||
|
||||
# get tp device id
|
||||
# TODO(kw): https://github.com/vllm-project/vllm-ascend/pull/940
|
||||
# introducing some changes
|
||||
device_ids_str = envs_ascend.PHYSICAL_DEVICES
|
||||
if device_ids_str is None:
|
||||
device_ids = list(
|
||||
range(self.dp_rank * self.tp_size * self.pcp_size,
|
||||
(self.dp_rank + 1) * self.tp_size * self.pcp_size))
|
||||
else:
|
||||
device_ids = list(map(int, device_ids_str.split(',')))
|
||||
start_index = self.dp_rank * self.tp_size * self.pcp_size
|
||||
end_index = start_index + self.tp_size * self.pcp_size
|
||||
if len(device_ids) < end_index:
|
||||
raise ValueError(
|
||||
f"Not enough physical devices available for DP rank {self.dp_rank}. "
|
||||
f"Expected at least {end_index} devices, but found {len(device_ids)} "
|
||||
"in PHYSICAL_DEVICES.")
|
||||
device_ids = device_ids[start_index:end_index]
|
||||
assert len(
|
||||
device_ids
|
||||
) > self.pcp_rank * self.tp_size + self.tp_rank # type: ignore
|
||||
self.device_id = device_ids[self.pcp_rank * self.tp_size +
|
||||
self.tp_rank] # type: ignore
|
||||
|
||||
if vllm_config.kv_transfer_config.get_from_extra_config(
|
||||
'use_ascend_direct', True):
|
||||
hostname = self.side_channel_host
|
||||
else:
|
||||
hostname = f"{self.side_channel_host}:0:npu_{self.device_id}"
|
||||
logger.info("Initializing Mooncake work %s", engine_id)
|
||||
self.engine = global_te.get_transfer_engine(hostname, device_name=None)
|
||||
self.engine = global_te.get_transfer_engine(self.side_channel_host,
|
||||
device_name=None)
|
||||
self.te_rpc_port = self.engine.get_rpc_port()
|
||||
|
||||
# Background thread for sending or receiving KV caches.
|
||||
@@ -998,19 +963,6 @@ class MooncakeConnectorWorker:
|
||||
assert "dp_size" in decode_parallel_config.keys()
|
||||
self._decode_dp_size = decode_parallel_config["dp_size"]
|
||||
|
||||
def _initialize(
|
||||
self,
|
||||
hostname: str,
|
||||
device_name: Optional[str],
|
||||
) -> None:
|
||||
"""Initialize the mooncake instance."""
|
||||
device_name = device_name if device_name is not None else ""
|
||||
ret_value = self.engine.initialize(hostname, "P2PHANDSHAKE", "ascend",
|
||||
device_name)
|
||||
if ret_value != 0:
|
||||
raise RuntimeError(
|
||||
f"Mooncake initialization failed with ret_value: {ret_value}")
|
||||
|
||||
def register_kv_caches(self, kv_caches: dict[str, torch.Tensor]):
|
||||
"""Register the KV Cache data."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user