(self, request: CompletionRequest)
| 12701 | return request.prompt_plan.clamp_to_reusable_boundary(reuse_len) |
| 12702 | |
| 12703 | def admit_request(self, request: CompletionRequest) -> None: |
| 12704 | match_seq_id = request.match_sequence_id |
| 12705 | match_length = request.match_length |
| 12706 | reuse_len = self.reuse_len_for_request(request, match_length) |
| 12707 | claimable = match_seq_id in self.scheduler.free_sequences |
| 12708 | if request.sequence_cache_match is not None: |
| 12709 | base_seq_id = self.scheduler.claim_unused_sequence() |
| 12710 | reuse_len, request.prompt_logits = self.scheduler.hydrate_sequence_cache_match( |
| 12711 | request, |
| 12712 | base_seq_id, |
| 12713 | ) |
| 12714 | elif claimable: |
| 12715 | base_seq_id = self.scheduler.claim_free_sequence(match_seq_id) |
| 12716 | if self.scheduler.radix_trie.length(base_seq_id) > reuse_len: |
| 12717 | self.scheduler.truncate_sequence(base_seq_id, reuse_len) |
| 12718 | else: |
| 12719 | base_seq_id = self.scheduler.claim_unused_sequence() |
| 12720 | if reuse_len > 0 and match_seq_id >= 0: |
| 12721 | self.copy_prompt_state(match_seq_id, base_seq_id, reuse_len) |
| 12722 | sibling_count = request.internal_completion_count - 1 |
| 12723 | sibling_seq_ids: List[int] = [] |
| 12724 | for _ in range(sibling_count): |
| 12725 | seq_id = self.scheduler.claim_unused_sequence() |
| 12726 | sibling_seq_ids.append(seq_id) |
| 12727 | self.scheduler.activate_request( |
| 12728 | request, |
| 12729 | base_seq_id=base_seq_id, |
| 12730 | sibling_seq_ids=sibling_seq_ids, |
| 12731 | ) |
| 12732 | request.prompt_cursor = reuse_len |
| 12733 | if request.prompt_cursor == len(request.prompt_tokens): |
| 12734 | request.prompt_done = True |
| 12735 | self.scheduler.maybe_save_sequence_cache(request) |
| 12736 | self.scheduler.start_completions( |
| 12737 | request, |
| 12738 | prompt_output_index=None, |
| 12739 | prompt_logits=request.prompt_logits, |
| 12740 | ) |
| 12741 | |
| 12742 | |
| 12743 | class UnifiedAttentionMemoryPolicy(AttentionMemoryPolicy): |
nothing calls this directly
no test coverage detected