pub struct PreAllocKvCache {
pub k_caches: Vec<Tensor>,
pub v_caches: Vec<Tensor>,
pub current_len: usize,
pub max_len: usize,
}Expand description
Pre-allocated KV cache for a single sequence (all layers).
Fields§
§k_caches: Vec<Tensor>Per-layer K cache: [max_len, num_kv_heads, head_dim]
v_caches: Vec<Tensor>Per-layer V cache: [max_len, num_kv_heads, head_dim]
current_len: usize§max_len: usizeImplementations§
Source§impl PreAllocKvCache
impl PreAllocKvCache
pub fn new( num_layers: usize, max_len: usize, num_kv_heads: usize, head_dim: usize, dtype: DType, device: &CandleDevice, ) -> CandleResult<Self>
Auto Trait Implementations§
impl Freeze for PreAllocKvCache
impl !RefUnwindSafe for PreAllocKvCache
impl Send for PreAllocKvCache
impl Sync for PreAllocKvCache
impl Unpin for PreAllocKvCache
impl UnsafeUnpin for PreAllocKvCache
impl !UnwindSafe for PreAllocKvCache
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more