(self, request: CompletionRequest)
| 12866 | return match_seq_id, match_length |
| 12867 | |
| 12868 | def can_admit(self, request: CompletionRequest) -> bool: |
| 12869 | match_seq_id, match_length = self.exact_checkpoint_match(request.prompt_tokens) |
| 12870 | request.match_sequence_id = match_seq_id |
| 12871 | request.match_length = match_length |
| 12872 | claimable = match_seq_id in self.scheduler.free_sequences |
| 12873 | required_sequence_ids = request.internal_completion_count - int(claimable) |
| 12874 | prompt_length = len(request.prompt_tokens) |
| 12875 | prompt_kv = request.prompt_plan.eval_token_count |
| 12876 | generation_kv = self.generation_kv_for_request(request, prompt_length) |
| 12877 | if self.try_set_sequence_cache_match( |
| 12878 | request, |
| 12879 | resident_reuse_len=match_length, |
| 12880 | required_sequence_ids=request.internal_completion_count, |
| 12881 | required_attn_kv=self.attention_kv_required( |
| 12882 | prompt_kv, |
| 12883 | reused_kv=0, |
| 12884 | generation_kv=generation_kv, |
| 12885 | ), |
| 12886 | skip_attention_budget_when_unbounded=True, |
| 12887 | ): |
| 12888 | return True |
| 12889 | required_attn_kv = self.attention_kv_required( |
| 12890 | prompt_kv, |
| 12891 | reused_kv=max(0, min(match_length, request.prompt_plan.length)), |
| 12892 | generation_kv=generation_kv, |
| 12893 | ) |
| 12894 | if len(self.scheduler.unused_sequences) >= required_sequence_ids and ( |
| 12895 | not self.scheduler.model.has_attention_budget |
| 12896 | or self.scheduler.sequence_history.size + required_attn_kv <= self.scheduler.model.n_ctx |
| 12897 | ): |
| 12898 | return True |
| 12899 | best_free = match_seq_id if claimable else None |
| 12900 | for seq_id in self.reclaim_order(best_free): |
| 12901 | self.scheduler.delete_free_sequence(seq_id) |
| 12902 | if len(self.scheduler.unused_sequences) >= required_sequence_ids and ( |
| 12903 | not self.scheduler.model.has_attention_budget |
| 12904 | or self.scheduler.sequence_history.size + required_attn_kv <= self.scheduler.model.n_ctx |
| 12905 | ): |
| 12906 | request.match_sequence_id, request.match_length = self.exact_checkpoint_match( |
| 12907 | request.prompt_tokens, |
| 12908 | ) |
| 12909 | return True |
| 12910 | return False |
| 12911 | |
| 12912 | def admit_request(self, request: CompletionRequest) -> None: |
| 12913 | match_seq_id = request.match_sequence_id |
nothing calls this directly
no test coverage detected