Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions vllm/model_executor/models/whisper_causal.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,13 +158,27 @@ def build(
fast_build: bool = False,
) -> AttentionMetadata:
new_common_attn_metadata = copy.deepcopy(common_attn_metadata)
new_common_attn_metadata.query_start_loc *= block_pool_size
new_common_attn_metadata.query_start_loc_cpu *= block_pool_size
new_common_attn_metadata.seq_lens *= block_pool_size
if new_common_attn_metadata._seq_lens_cpu is not None:
new_common_attn_metadata._seq_lens_cpu *= block_pool_size
if new_common_attn_metadata._num_computed_tokens_cpu is not None:
new_common_attn_metadata._num_computed_tokens_cpu *= block_pool_size
# Scale out of place: the V1 CPU model runner points every
# `CpuGpuBuffer.gpu` at its `.cpu` tensor, so a device field and its
# `_cpu` counterpart can share storage (`deepcopy` preserves the
# sharing), and in-place scaling would apply `block_pool_size` twice.
new_common_attn_metadata.query_start_loc = (
common_attn_metadata.query_start_loc * block_pool_size
)
new_common_attn_metadata.query_start_loc_cpu = (
common_attn_metadata.query_start_loc_cpu * block_pool_size
)
new_common_attn_metadata.seq_lens = (
common_attn_metadata.seq_lens * block_pool_size
)
if common_attn_metadata._seq_lens_cpu is not None:
new_common_attn_metadata._seq_lens_cpu = (
common_attn_metadata._seq_lens_cpu * block_pool_size
)
if common_attn_metadata._num_computed_tokens_cpu is not None:
new_common_attn_metadata._num_computed_tokens_cpu = (
common_attn_metadata._num_computed_tokens_cpu * block_pool_size
)
new_common_attn_metadata.num_actual_tokens *= block_pool_size
new_common_attn_metadata.max_query_len *= block_pool_size
new_common_attn_metadata.max_seq_len *= block_pool_size
Expand Down
Loading