Refactoring Mooncake TE as a shared distributed component (#17810)
Signed-off-by: Shangming Cai <csmthu@gmail.com>
This commit is contained in:
@@ -373,6 +373,9 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
||||
if self.device == "cpu":
|
||||
self.init_threads_binding()
|
||||
|
||||
# Initialize MooncakeTransferEngine
|
||||
self.init_shared_mooncake_transfer_engine()
|
||||
|
||||
# Get memory before model loading
|
||||
min_per_gpu_memory = self.init_torch_distributed()
|
||||
|
||||
@@ -828,6 +831,46 @@ class ModelRunner(ModelRunnerKVCacheMixin):
|
||||
)
|
||||
return min_per_gpu_memory
|
||||
|
||||
def init_shared_mooncake_transfer_engine(self):
|
||||
"""
|
||||
Need MooncakeTransferEngine when:
|
||||
1) PD disaggregation uses mooncake for KV transfer (prefill/decode)
|
||||
2) HiCache uses mooncake storage backend
|
||||
3) Encoder disaggregation uses mooncake
|
||||
"""
|
||||
use_mooncake_te = (
|
||||
(
|
||||
self.server_args.disaggregation_mode != "null"
|
||||
and self.server_args.disaggregation_transfer_backend == "mooncake"
|
||||
)
|
||||
or (
|
||||
self.server_args.enable_hierarchical_cache
|
||||
and self.server_args.hicache_storage_backend == "mooncake"
|
||||
)
|
||||
or (
|
||||
self.server_args.encoder_only
|
||||
and self.server_args.encoder_transfer_backend == "mooncake"
|
||||
)
|
||||
or (
|
||||
self.server_args.language_only
|
||||
and self.server_args.encoder_transfer_backend == "mooncake"
|
||||
)
|
||||
)
|
||||
|
||||
if use_mooncake_te:
|
||||
from sglang.srt.distributed.device_communicators.mooncake_transfer_engine import (
|
||||
init_mooncake_transfer_engine,
|
||||
)
|
||||
|
||||
init_mooncake_transfer_engine(
|
||||
hostname=get_local_ip_auto(),
|
||||
gpu_id=self.gpu_id,
|
||||
ib_device=(
|
||||
self.server_args.disaggregation_ib_device
|
||||
or self.server_args.mooncake_ib_device
|
||||
),
|
||||
)
|
||||
|
||||
def load_model(self):
|
||||
tic_total = time.perf_counter()
|
||||
before_avail_memory = get_available_gpu_memory(self.device, self.gpu_id)
|
||||
|
||||
Reference in New Issue
Block a user