[HiCache] Keep hybrid transfer layer maps stage-local under PP (#39699)
Co-authored-by: Aurick Qiao <6137920+aurickq@users.noreply.github.com> Co-authored-by: Ke Bao <ispobaoke@gmail.com>
This commit is contained in:
co-authored by
Aurick Qiao
Ke Bao
parent
0daa040e48
commit
4793f56835
@@ -76,6 +76,15 @@ def _make_layer_mapper(
|
||||
return mapper
|
||||
|
||||
|
||||
def _stage_local_layer_mapping(
|
||||
layer_mapping: dict[int, int], start_layer: int
|
||||
) -> dict[int, int]:
|
||||
return {
|
||||
global_layer - start_layer: pool_layer
|
||||
for global_layer, pool_layer in layer_mapping.items()
|
||||
}
|
||||
|
||||
|
||||
def _with_mtp_layer_mapping(
|
||||
layer_mapping: dict[int, int],
|
||||
*,
|
||||
@@ -1478,8 +1487,12 @@ class _MambaStrategy(StackStrategy):
|
||||
model_name=None,
|
||||
enable_storage_metrics=False,
|
||||
):
|
||||
full_layer_mapping = dict(kvcache.full_attention_layer_id_mapping)
|
||||
mamba_layer_mapping = dict(params.req_to_token_pool.mamba_map)
|
||||
full_layer_mapping = _stage_local_layer_mapping(
|
||||
kvcache.full_attention_layer_id_mapping, kvcache.start_layer
|
||||
)
|
||||
mamba_layer_mapping = _stage_local_layer_mapping(
|
||||
params.req_to_token_pool.mamba_map, kvcache.start_layer
|
||||
)
|
||||
host_pool_group, cache_controller = build_hybrid_mamba_stack(
|
||||
params=params,
|
||||
kv_pool=kvcache.full_kv_pool,
|
||||
@@ -1511,9 +1524,15 @@ class _MambaStrategy(StackStrategy):
|
||||
|
||||
def _swa_layer_mappings(kvcache) -> tuple[dict[int, int], dict[int, int]]:
|
||||
full = {
|
||||
gid: lid for gid, (lid, is_swa) in kvcache.layers_mapping.items() if not is_swa
|
||||
gid - kvcache.start_layer: lid
|
||||
for gid, (lid, is_swa) in kvcache.layers_mapping.items()
|
||||
if not is_swa
|
||||
}
|
||||
swa = {
|
||||
gid - kvcache.start_layer: lid
|
||||
for gid, (lid, is_swa) in kvcache.layers_mapping.items()
|
||||
if is_swa
|
||||
}
|
||||
swa = {gid: lid for gid, (lid, is_swa) in kvcache.layers_mapping.items() if is_swa}
|
||||
return full, swa
|
||||
|
||||
|
||||
@@ -1600,7 +1619,9 @@ class _MambaSwaStrategy(StackStrategy):
|
||||
enable_storage_metrics=False,
|
||||
):
|
||||
full_layer_mapping, swa_layer_mapping = _swa_layer_mappings(kvcache)
|
||||
mamba_layer_mapping = dict(params.req_to_token_pool.mamba_map)
|
||||
mamba_layer_mapping = _stage_local_layer_mapping(
|
||||
params.req_to_token_pool.mamba_map, kvcache.start_layer
|
||||
)
|
||||
host_pool_group, cache_controller = build_hybrid_mamba_swa_stack(
|
||||
params=params,
|
||||
full_kv_pool=kvcache.full_kv_pool,
|
||||
|
||||
Reference in New Issue
Block a user