pub enum P64ConvertLayout {
Verbatim,
F16Expand,
Q4kSoa,
}Expand description
Conversion-time weight layout policy for compile_gguf_to_p64_with_layout.
The designed product path is: import GGUF once → store GPU-friendly bytes in .p64.
P64ConvertLayout::Verbatim is the historical byte-preserving container swap
(same kernels, same speed). P64ConvertLayout::F16Expand dequantizes 2-D weight
matrices to IEEE f16 so decode can use the fast unpack2x16float path.
P64ConvertLayout::Q4kSoa rewrites Q4_K matrices to a 160 B/superblock SoA with
pre-expanded f16 sub-scales (decode GEMV skips scale unpack + header barriers).
Variants§
Verbatim
Copy GGML quant blocks byte-for-byte (no speed change vs running the GGUF).
F16Expand
Expand 2-D matrices (attn/FFN/embd/output) to f16; leave 1-D norms as source. Rejected if the result would exceed the 4 GiB u32-offset container limit.
Q4kSoa
Convert 2-D Q4_K weight matrices to crate::ggml_quants::GGML_TYPE_Q4_K_SOA.
Other tensors stay verbatim. ~11% larger than Q4_K; aimed at 3B-class decode.
Trait Implementations§
Source§impl Clone for P64ConvertLayout
impl Clone for P64ConvertLayout
Source§fn clone(&self) -> P64ConvertLayout
fn clone(&self) -> P64ConvertLayout
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for P64ConvertLayout
impl Debug for P64ConvertLayout
Source§impl Default for P64ConvertLayout
impl Default for P64ConvertLayout
Source§fn default() -> P64ConvertLayout
fn default() -> P64ConvertLayout
Source§impl PartialEq for P64ConvertLayout
impl PartialEq for P64ConvertLayout
Source§fn eq(&self, other: &P64ConvertLayout) -> bool
fn eq(&self, other: &P64ConvertLayout) -> bool
self and other values to be equal, and is used by ==.impl Copy for P64ConvertLayout
impl Eq for P64ConvertLayout
impl StructuralPartialEq for P64ConvertLayout
Auto Trait Implementations§
impl Freeze for P64ConvertLayout
impl RefUnwindSafe for P64ConvertLayout
impl Send for P64ConvertLayout
impl Sync for P64ConvertLayout
impl Unpin for P64ConvertLayout
impl UnsafeUnpin for P64ConvertLayout
impl UnwindSafe for P64ConvertLayout
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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