[Core] Encoder separation for Encode-Prefill-Decode Disaggregation (#4176)
### What this PR does / why we need it? Support Encoder separation for Encode-Prefill-Decode Disaggregation - vLLM version: v0.11.2 - vLLM main: https://github.com/vllm-project/vllm/commit/v0.11.2 Signed-off-by: amy-why-3459 <wuhaiyan17@huawei.com>
This commit is contained in:
@@ -18,6 +18,7 @@ import os
|
||||
|
||||
import vllm_ascend.patch.platform.patch_config # noqa
|
||||
import vllm_ascend.patch.platform.patch_distributed # noqa
|
||||
import vllm_ascend.patch.platform.patch_ec_connector # noqa
|
||||
import vllm_ascend.patch.platform.patch_mamba_config # noqa
|
||||
import vllm_ascend.patch.platform.patch_sched_yield # noqa
|
||||
|
||||
|
||||
32
vllm_ascend/patch/platform/patch_ec_connector.py
Normal file
32
vllm_ascend/patch/platform/patch_ec_connector.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import vllm.distributed.ec_transfer.ec_connector.shared_storage_connector
|
||||
from safetensors.torch import load_file
|
||||
from vllm.distributed.ec_transfer.ec_connector.base import ECConnectorMetadata
|
||||
from vllm.distributed.ec_transfer.ec_connector.shared_storage_connector import (
|
||||
ECSharedStorageConnector, ECSharedStorageConnectorMetadata)
|
||||
from vllm.logger import logger
|
||||
|
||||
|
||||
class AscendECSharedStorageConnector(ECSharedStorageConnector):
|
||||
|
||||
def start_load_caches(self, encoder_cache, **kwargs) -> None:
|
||||
metadata: ECConnectorMetadata = self._get_connector_metadata()
|
||||
assert isinstance(metadata, ECSharedStorageConnectorMetadata)
|
||||
assert encoder_cache is not None
|
||||
if metadata is None:
|
||||
logger.warning((
|
||||
"In connector.start_load_caches, ",
|
||||
"but the connector metadata is None",
|
||||
))
|
||||
return
|
||||
# Load the EC for each mm data
|
||||
for mm_data in metadata.mm_datas:
|
||||
if mm_data.mm_hash in encoder_cache:
|
||||
continue
|
||||
filename = self._generate_filename_debug(mm_data.mm_hash)
|
||||
ec_cache = load_file(filename)["ec_cache"].npu()
|
||||
encoder_cache[mm_data.mm_hash] = ec_cache
|
||||
logger.debug("Success load encoder cache for hash %s",
|
||||
mm_data.mm_hash)
|
||||
|
||||
|
||||
vllm.distributed.ec_transfer.ec_connector.shared_storage_connector.ECSharedStorageConnector = AscendECSharedStorageConnector
|
||||
Reference in New Issue
Block a user