[1/2] Support deterministic inference with flashinfer attention backend (#10645)
Co-authored-by: hebiao064 <hebiaobuaa@gmail.com> Co-authored-by: Qiaolin-Yu <liin1211@outlook.com>
This commit is contained in:
co-authored by
hebiao064
Qiaolin-Yu
parent
1d1ce62495
commit
8ecef73f12
@@ -541,7 +541,9 @@ class PrefillAdder:
|
||||
|
||||
return self.budget_state()
|
||||
|
||||
def add_one_req(self, req: Req, has_chunked_req: bool):
|
||||
def add_one_req(
|
||||
self, req: Req, has_chunked_req: bool, truncation_align_size: Optional[int]
|
||||
):
|
||||
if req.sampling_params.ignore_eos and getattr(self.tree_cache, "disable", True):
|
||||
return self.add_one_req_ignore_eos(req, has_chunked_req)
|
||||
|
||||
@@ -600,6 +602,17 @@ class PrefillAdder:
|
||||
if trunc_len <= 0:
|
||||
return AddReqResult.OTHER
|
||||
|
||||
# When truncation align size is set, we want to assert that the prefill prefix length is multiple of truncation align size
|
||||
# A typical use case is when deterministic inference is enabled with flashinfer attention backend,
|
||||
# we need the prefill prefix length to be multiple of attention split size
|
||||
if truncation_align_size is not None:
|
||||
if trunc_len < truncation_align_size:
|
||||
return AddReqResult.OTHER
|
||||
else:
|
||||
trunc_len = truncation_align_size * (
|
||||
trunc_len // truncation_align_size
|
||||
)
|
||||
|
||||
# Chunked prefill
|
||||
req.extend_input_len = trunc_len
|
||||
req.fill_ids = req.fill_ids[: len(req.prefix_indices) + trunc_len]
|
||||
|
||||
Reference in New Issue
Block a user