Skip to main content

OpParams

Struct OpParams 

Source
pub struct OpParams {
    pub weight_ptr: u64,
    pub gamma_ptr: u64,
    pub scalar: f32,
    pub int_param: u32,
    pub weight_qtype: u32,
    pub bias_ptr: u64,
    pub bias_len: usize,
}
Expand description

Operation-specific parameters.

Fields§

§weight_ptr: u64

Weight pointer (for MulMat: quantized weights on device)

§gamma_ptr: u64

Normalization gamma pointer (for RmsNorm)

§scalar: f32

Scalar parameter (epsilon for RmsNorm, etc.)

§int_param: u32

Integer parameter (position for RoPE, etc.)

§weight_qtype: u32

PERF-050 (aprender#2753): GGML quantization type code of weight_ptr.

Without this the graph carried only a pointer, and the dispatcher had no way to know what it pointed at – so it assumed Q4_K for every MulMat. In a q4_k_m model that is right for 170 tensors and wrong for 29: attn_v, ffn_down and the LM head are Q6_K, and dequantizing Q6_K with the Q4_K kernel produced garbage of magnitude ~5e8 with NaNs.

The numeric GGML code is used rather than a Rust enum because this crate must not depend on the serving crate’s WeightQuantType. 12 = Q4_K, which is also the Default, so nodes that do not set it behave exactly as before.

§bias_ptr: u64

PERF-050 (aprender#2769): bias vector applied after a MulMat, 0 when there is none.

The graph had no bias node and no way to express one, so the QKV bias Qwen2.5 models carry was silently dropped on this path while the M=1 path applied it. Defaults to 0, which means “no bias” and reproduces the previous behaviour exactly.

§bias_len: usize

Length of bias_ptr in elements; 0 means no bias.

Trait Implementations§

Source§

impl Clone for OpParams

Source§

fn clone(&self) -> OpParams

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OpParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for OpParams

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.