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
norm
vllm
Commits
6680129b
Commit
6680129b
authored
Feb 09, 2023
by
Woosuk Kwon
Browse files
Add blocks
parent
39161c98
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
0 deletions
+51
-0
cacheflow/block.py
cacheflow/block.py
+51
-0
No files found.
cacheflow/block.py
0 → 100644
View file @
6680129b
from
typing
import
List
from
cacheflow.utils
import
Device
BLANK_TOKEN_ID
=
-
1
class
LogicalTokenBlock
:
def
__int__
(
self
,
block_number
:
int
,
block_size
:
int
,
)
->
None
:
self
.
block_number
=
block_number
self
.
block_size
=
block_size
self
.
token_ids
=
[
BLANK_TOKEN_ID
]
*
block_size
self
.
num_tokens
=
0
def
is_empty
(
self
)
->
bool
:
return
self
.
num_tokens
==
0
def
get_num_empty_slots
(
self
)
->
int
:
return
self
.
block_size
-
self
.
num_tokens
def
is_full
(
self
)
->
bool
:
return
self
.
num_tokens
==
self
.
block_size
def
append
(
self
,
token_ids
:
List
[
int
])
->
None
:
assert
len
(
token_ids
)
<=
self
.
get_num_empty_slots
()
self
.
token_ids
[
self
.
num_tokens
:
self
.
num_tokens
+
len
(
token_ids
)]
=
token_ids
self
.
num_tokens
+=
len
(
token_ids
)
def
get_token_ids
(
self
)
->
List
[
int
]:
return
self
.
token_ids
[:
self
.
num_tokens
]
class
PhysicalTokenBlock
:
def
__init__
(
self
,
device
:
Device
,
block_number
:
int
,
block_size
:
int
,
)
->
None
:
self
.
device
=
device
self
.
block_number
=
block_number
self
.
block_size
=
block_size
self
.
ref_count
=
0
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