vllm_gaudi.extension.unified ¶
CacheUtils ¶
kv-cache 的辅助工具
源代码位于 vllm_gaudi/extension/unified.py
__init__ ¶
_fetch_all ¶
使用选定的函数获取键和值
_fetch_single_shared ¶
从给定缓存中获取选定的共享块
源代码位于 vllm_gaudi/extension/unified.py
_fetch_single_unique ¶
从给定缓存中获取选定的唯一块
源代码位于 vllm_gaudi/extension/unified.py
fetch_shared ¶
HPUUnifiedAttentionMetadata dataclass ¶
源代码位于 vllm_gaudi/extension/unified.py
__init__ ¶
__init__(
block_size: int,
slot_mapping: tensor,
causal_bias: Optional[tensor],
causal_width: int,
shared_blocks: Optional[tensor],
shared_bias: Optional[tensor],
unique_blocks: Optional[tensor] | Optional[int],
unique_block_mapping: Optional[tensor],
unique_bias: Optional[tensor],
fmin: tensor,
feps: tensor,
) -> None
num_blocks ¶
源代码位于 vllm_gaudi/extension/unified.py
block2batch ¶
merge ¶
将部分注意力值合并到最终的注意力分数
源代码位于 vllm_gaudi/extension/unified.py
optional ¶
包装一个操作以支持处理 None 值
源代码位于 vllm_gaudi/extension/unified.py
partial_attn_causal ¶
partial_attn_causal(
query: tensor,
key: tensor,
value: tensor,
bias: Optional[tensor],
slice_size: int,
fmin: tensor,
) -> tuple[tensor, tensor, tensor]
部分注意力,其中 qkv 被假定在切片之间因果关系
源代码位于 vllm_gaudi/extension/unified.py
partial_attn_shared ¶
partial_attn_shared(
query: tensor,
blocks: tensor,
bias: Optional[tensor],
fmin: tensor,
cache_utils: CacheUtils,
) -> tuple[tensor, tensor, tensor]
部分注意力,其中所有共享块都与整个查询进行比较
源代码位于 vllm_gaudi/extension/unified.py
partial_attn_unique ¶
partial_attn_unique(
query: tensor,
blocks: tensor,
block_mapping: tensor,
bias: Optional[tensor],
fmin: tensor,
cache_utils: CacheUtils,
) -> tuple[tensor, tensor, tensor]
部分注意力,其中所有块最多由一个查询使用
源代码位于 vllm_gaudi/extension/unified.py
reduce_max ¶
将局部块最小值减少为每组最小值
源代码位于 vllm_gaudi/extension/unified.py
unified_attn ¶
unified_attn(
query: tensor,
key: tensor,
value: tensor,
key_cache: tensor,
value_cache: tensor,
scale: float,
metadata: HPUUnifiedAttentionMetadata,
) -> tensor
统一注意力的主入口点