Support unified memory page-envelope transfers in PD (#39477)
Co-authored-by: yhzhuang <yhzhuang@fb.com> Co-authored-by: Lianmin Zheng <lianminzheng@gmail.com> Co-authored-by: Yonghao Zhuang <yhzhuang@users.noreply.github.com> Co-authored-by: Cheng Wan <cheng.wan@radixark.ai>
This commit is contained in:
co-authored by
yhzhuang
Lianmin Zheng
Yonghao Zhuang
Cheng Wan
parent
d0730a0e8b
commit
5931fd60ee
@@ -17,6 +17,9 @@ from sglang.srt.managers.scheduler import Scheduler
|
||||
from sglang.srt.runtime_context import get_context, publish, reset_context
|
||||
from sglang.srt.server_args import ServerArgs
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.separate_buffer_allocator_double import (
|
||||
bind_separate_buffer_capacity,
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=11, suite="base-a-test-cpu")
|
||||
@@ -71,7 +74,8 @@ class TestDecodeQueueCleanup(CustomTestCase):
|
||||
queue.retracted_queue = reqs.copy()
|
||||
queue.num_reserved_decode_tokens = 0
|
||||
queue.req_to_token_pool = SimpleNamespace(available_size=lambda: len(reqs))
|
||||
queue.token_to_kv_pool_allocator = SimpleNamespace(page_size=page_size)
|
||||
queue.token_to_kv_pool_allocator = MagicMock(page_size=page_size)
|
||||
bind_separate_buffer_capacity(queue.token_to_kv_pool_allocator)
|
||||
queue.tree_cache = MagicMock()
|
||||
queue.scheduler = SimpleNamespace(
|
||||
sliding_window_size=2047,
|
||||
@@ -81,6 +85,9 @@ class TestDecodeQueueCleanup(CustomTestCase):
|
||||
queue._swa_aware_allocatable_token_budgets = MagicMock(
|
||||
return_value=(physical_available, physical_available)
|
||||
)
|
||||
queue._allocatable_token_budgets = MagicMock(
|
||||
side_effect=lambda **_: physical_available
|
||||
)
|
||||
queue._swa_tail_allocatable_token_budget = MagicMock(
|
||||
side_effect=lambda **_: physical_available
|
||||
)
|
||||
@@ -120,6 +127,10 @@ class TestDecodeQueueCleanup(CustomTestCase):
|
||||
queue.retracted_queue = []
|
||||
queue._resolve_pending_reqs = MagicMock()
|
||||
queue._uses_swa_tail_prealloc = MagicMock(return_value=False)
|
||||
# `_uses_swa_reservation` consults the allocator once tail prealloc is
|
||||
# off, so this abort path needs one even though it never allocates.
|
||||
queue.token_to_kv_pool_allocator = MagicMock()
|
||||
bind_separate_buffer_capacity(queue.token_to_kv_pool_allocator)
|
||||
queue._allocatable_token_budgets = MagicMock(return_value=0)
|
||||
queue._hicache_pending_restore_tokens = MagicMock(return_value=0)
|
||||
|
||||
@@ -175,6 +186,10 @@ class TestDecodeQueueCleanup(CustomTestCase):
|
||||
queue._resolve_pending_reqs = MagicMock()
|
||||
queue._update_handshake_waiters = MagicMock()
|
||||
queue._uses_swa_tail_prealloc = MagicMock(return_value=False)
|
||||
# `_uses_swa_reservation` consults the allocator once tail prealloc is
|
||||
# off, so this abort path needs one even though it never allocates.
|
||||
queue.token_to_kv_pool_allocator = MagicMock()
|
||||
bind_separate_buffer_capacity(queue.token_to_kv_pool_allocator)
|
||||
queue._allocatable_token_budgets = MagicMock(return_value=0)
|
||||
queue._hicache_pending_restore_tokens = MagicMock(return_value=0)
|
||||
|
||||
@@ -234,6 +249,9 @@ class TestDecodeQueueCleanup(CustomTestCase):
|
||||
)
|
||||
queue._hicache_pending_restore_tokens = MagicMock(return_value=0)
|
||||
queue._pre_alloc = MagicMock()
|
||||
queue.token_to_kv_pool_allocator = MagicMock()
|
||||
bind_separate_buffer_capacity(queue.token_to_kv_pool_allocator)
|
||||
queue.tree_cache = MagicMock()
|
||||
queue.req_to_token_pool = MagicMock()
|
||||
queue.req_to_token_pool.available_size.return_value = 1
|
||||
# Non-hybrid pools have no mamba allocator; MagicMock would otherwise
|
||||
|
||||
Reference in New Issue
Block a user