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
1a31229c
Unverified
Commit
1a31229c
authored
Oct 03, 2025
by
Alex Chi Z
Committed by
GitHub
Oct 02, 2025
Browse files
fix: radix cache memory accounting (#10637)
Signed-off-by:
Alex Chi Z
<
iskyzh@gmail.com
>
parent
de89ef49
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
8 deletions
+14
-8
python/sglang/srt/mem_cache/radix_cache.py
python/sglang/srt/mem_cache/radix_cache.py
+14
-8
No files found.
python/sglang/srt/mem_cache/radix_cache.py
View file @
1a31229c
...
...
@@ -267,7 +267,7 @@ class RadixCache(BasePrefixCache):
"""
key
.
token_ids
=
self
.
key_convert_fn
(
key
.
token_ids
)
if
self
.
disable
or
len
(
key
)
==
0
:
def
empty_match_result
()
:
return
MatchResult
(
device_indices
=
torch
.
empty
(
(
0
,),
...
...
@@ -278,10 +278,16 @@ class RadixCache(BasePrefixCache):
last_host_node
=
self
.
root_node
,
)
if
self
.
disable
or
len
(
key
)
==
0
:
return
empty_match_result
()
if
self
.
page_size
!=
1
:
page_aligned_len
=
len
(
key
)
//
self
.
page_size
*
self
.
page_size
key
=
key
[:
page_aligned_len
]
if
len
(
key
)
==
0
:
return
empty_match_result
()
value
,
last_node
=
self
.
_match_prefix_helper
(
self
.
root_node
,
key
)
if
value
:
value
=
torch
.
cat
(
value
)
...
...
@@ -475,9 +481,9 @@ class RadixCache(BasePrefixCache):
delta
=
0
while
node
!=
self
.
root_node
:
if
node
.
lock_ref
==
0
:
self
.
evictable_size_
-=
len
(
node
.
value
)
self
.
protected_size_
+=
len
(
node
.
value
)
delta
-=
len
(
node
.
value
)
self
.
evictable_size_
-=
len
(
node
.
key
)
self
.
protected_size_
+=
len
(
node
.
key
)
delta
-=
len
(
node
.
key
)
node
.
lock_ref
+=
1
node
=
node
.
parent
return
delta
...
...
@@ -489,9 +495,9 @@ class RadixCache(BasePrefixCache):
delta
=
0
while
node
!=
self
.
root_node
:
if
node
.
lock_ref
==
1
:
self
.
evictable_size_
+=
len
(
node
.
value
)
self
.
protected_size_
-=
len
(
node
.
value
)
delta
+=
len
(
node
.
value
)
self
.
evictable_size_
+=
len
(
node
.
key
)
self
.
protected_size_
-=
len
(
node
.
key
)
delta
+=
len
(
node
.
key
)
node
.
lock_ref
-=
1
node
=
node
.
parent
return
delta
...
...
@@ -589,7 +595,7 @@ class RadixCache(BasePrefixCache):
new_node
.
key
=
key
new_node
.
value
=
value
node
.
children
[
child_key
]
=
new_node
self
.
evictable_size_
+=
len
(
value
)
self
.
evictable_size_
+=
len
(
key
)
self
.
_record_store_event
(
new_node
)
return
total_prefix_length
...
...
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