Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
change
sglang
Commits
e05555fa
Unverified
Commit
e05555fa
authored
Sep 29, 2025
by
huangtingwei
Committed by
GitHub
Sep 28, 2025
Browse files
[HiCacheStorage] mooncake store support page_first_direct layout (#10591)
parent
43fa9f22
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
7 deletions
+30
-7
python/sglang/srt/mem_cache/hiradix_cache.py
python/sglang/srt/mem_cache/hiradix_cache.py
+2
-2
python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py
...ng/srt/mem_cache/storage/mooncake_store/mooncake_store.py
+4
-3
python/sglang/srt/server_args.py
python/sglang/srt/server_args.py
+9
-2
test/srt/hicache/test_hicache_storage_mooncake_backend.py
test/srt/hicache/test_hicache_storage_mooncake_backend.py
+15
-0
No files found.
python/sglang/srt/mem_cache/hiradix_cache.py
View file @
e05555fa
...
@@ -48,9 +48,9 @@ class HiRadixCache(RadixCache):
...
@@ -48,9 +48,9 @@ class HiRadixCache(RadixCache):
if
hicache_io_backend
==
"direct"
:
if
hicache_io_backend
==
"direct"
:
if
hicache_mem_layout
==
"page_first"
:
if
hicache_mem_layout
==
"page_first"
:
hicache_mem_layout
=
"
layer_firs
t"
hicache_mem_layout
=
"
page_first_direc
t"
logger
.
warning
(
logger
.
warning
(
"Page first layout is not supported with direct IO backend, switching to
layer firs
t layout"
"Page first layout is not supported with direct IO backend, switching to
page first direc
t layout"
)
)
self
.
kv_cache
=
token_to_kv_pool_allocator
.
get_kvcache
()
self
.
kv_cache
=
token_to_kv_pool_allocator
.
get_kvcache
()
...
...
python/sglang/srt/mem_cache/storage/mooncake_store/mooncake_store.py
View file @
e05555fa
...
@@ -190,9 +190,10 @@ class MooncakeStore(HiCacheStorage):
...
@@ -190,9 +190,10 @@ class MooncakeStore(HiCacheStorage):
def
register_mem_pool_host
(
self
,
mem_pool_host
:
HostKVCache
):
def
register_mem_pool_host
(
self
,
mem_pool_host
:
HostKVCache
):
super
().
register_mem_pool_host
(
mem_pool_host
)
super
().
register_mem_pool_host
(
mem_pool_host
)
assert
(
assert
self
.
mem_pool_host
.
layout
in
[
self
.
mem_pool_host
.
layout
==
"page_first"
"page_first"
,
),
"mooncake store storage backend only support page first layout"
"page_first_direct"
,
],
"mooncake store storage backend only support page first or page first direct layout"
buffer
=
self
.
mem_pool_host
.
kv_buffer
buffer
=
self
.
mem_pool_host
.
kv_buffer
try
:
try
:
buffer_ptr
=
buffer
.
data_ptr
()
buffer_ptr
=
buffer
.
data_ptr
()
...
...
python/sglang/srt/server_args.py
View file @
e05555fa
...
@@ -930,8 +930,15 @@ class ServerArgs:
...
@@ -930,8 +930,15 @@ class ServerArgs:
def
_handle_hicache
(
self
):
def
_handle_hicache
(
self
):
if
self
.
hicache_storage_backend
==
"mooncake"
:
if
self
.
hicache_storage_backend
==
"mooncake"
:
self
.
hicache_io_backend
=
"kernel"
if
self
.
hicache_mem_layout
==
"layer_first"
:
self
.
hicache_mem_layout
=
"page_first"
if
self
.
hicache_io_backend
==
"direct"
:
self
.
hicache_mem_layout
=
"page_first_direct"
elif
self
.
hicache_io_backend
==
"kernel"
:
self
.
hicache_mem_layout
=
"page_first"
logger
.
warning
(
f
"Mooncake storage backend does not support layer_first layout, "
f
"switching to
{
self
.
hicache_mem_layout
}
layout for
{
self
.
hicache_io_backend
}
io backend"
)
if
self
.
hicache_mem_layout
==
"page_first_direct"
:
if
self
.
hicache_mem_layout
==
"page_first_direct"
:
if
self
.
hicache_io_backend
!=
"direct"
:
if
self
.
hicache_io_backend
!=
"direct"
:
...
...
test/srt/hicache/test_hicache_storage_mooncake_backend.py
View file @
e05555fa
...
@@ -236,6 +236,21 @@ class TestMooncakeBackendPageFirstLayout(
...
@@ -236,6 +236,21 @@ class TestMooncakeBackendPageFirstLayout(
"""Get additional server arguments specific to configuration - override in subclasses"""
"""Get additional server arguments specific to configuration - override in subclasses"""
server_args
,
env_vars
=
super
().
_get_additional_server_args_and_env
()
server_args
,
env_vars
=
super
().
_get_additional_server_args_and_env
()
server_args
[
"--hicache-mem-layout"
]
=
"page_first"
server_args
[
"--hicache-mem-layout"
]
=
"page_first"
server_args
[
"--hicache-io-backend"
]
=
"kernel"
return
server_args
,
env_vars
class
TestMooncakeBackendPageFirstDirectLayout
(
HiCacheStorageMooncakeBackendBaseMixin
,
CustomTestCase
):
"""Page first layout tests for HiCache-Mooncake backend"""
@
classmethod
def
_get_additional_server_args_and_env
(
cls
):
"""Get additional server arguments specific to configuration - override in subclasses"""
server_args
,
env_vars
=
super
().
_get_additional_server_args_and_env
()
server_args
[
"--hicache-mem-layout"
]
=
"page_first_direct"
server_args
[
"--hicache-io-backend"
]
=
"direct"
return
server_args
,
env_vars
return
server_args
,
env_vars
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment