pub enum QuantizationPrecision {
FP16,
FP8,
INT8,
INT4,
INT2,
INT1,
Mixed,
Adaptive,
}Expand description
Quantization precision levels
Variants§
FP16
16-bit floating point
FP8
8-bit floating point (E4M3 or E5M2 format)
INT8
8-bit integer
INT4
4-bit integer
INT2
2-bit integer (experimental)
INT1
1-bit binary quantization
Mixed
Mixed precision (FP16 for outliers, INT8 for normal weights)
Adaptive
Adaptive precision based on layer importance
Implementations§
Source§impl QuantizationPrecision
impl QuantizationPrecision
Sourcepub fn bits(&self) -> u32
pub fn bits(&self) -> u32
Number of bits used to represent one quantized element for this precision.
Mixed (FP16 for a minority of outlier weights, INT8 for the rest) and Adaptive
(a runtime-selected, per-layer bit-width) do not have one single fixed bit-width by
design. Both nominally report 8 bits here as a documented approximation used for
size/statistics purposes: for Mixed, INT8 is the majority-path width (outliers are
expected to be a small minority of elements); for Adaptive, INT8 is the
default/starting width used before any runtime adaptation narrows individual layers
further. This is intentionally explicit (not a silently-defaulted wildcard arm).
Sourcepub fn bytes_per_element(&self) -> f32
pub fn bytes_per_element(&self) -> f32
Storage size in bytes per element (fractional for sub-byte widths like INT4/INT2/INT1).
Trait Implementations§
Source§impl Clone for QuantizationPrecision
impl Clone for QuantizationPrecision
Source§fn clone(&self) -> QuantizationPrecision
fn clone(&self) -> QuantizationPrecision
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for QuantizationPrecision
Source§impl Debug for QuantizationPrecision
impl Debug for QuantizationPrecision
Source§impl<'de> Deserialize<'de> for QuantizationPrecision
impl<'de> Deserialize<'de> for QuantizationPrecision
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for QuantizationPrecision
Source§impl From<QuantizationPrecision> for JsValue
impl From<QuantizationPrecision> for JsValue
Source§fn from(value: QuantizationPrecision) -> Self
fn from(value: QuantizationPrecision) -> Self
Source§impl FromWasmAbi for QuantizationPrecision
impl FromWasmAbi for QuantizationPrecision
Source§impl IntoWasmAbi for QuantizationPrecision
impl IntoWasmAbi for QuantizationPrecision
Source§impl PartialEq for QuantizationPrecision
impl PartialEq for QuantizationPrecision
Source§fn eq(&self, other: &QuantizationPrecision) -> bool
fn eq(&self, other: &QuantizationPrecision) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for QuantizationPrecision
impl Serialize for QuantizationPrecision
impl StructuralPartialEq for QuantizationPrecision
Source§impl VectorFromWasmAbi for QuantizationPrecision
impl VectorFromWasmAbi for QuantizationPrecision
type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi
unsafe fn vector_from_abi(js: Self::Abi) -> Box<[QuantizationPrecision]>
Source§impl VectorIntoWasmAbi for QuantizationPrecision
impl VectorIntoWasmAbi for QuantizationPrecision
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi
fn vector_into_abi(vector: Box<[QuantizationPrecision]>) -> Self::Abi
Source§impl WasmDescribeVector for QuantizationPrecision
impl WasmDescribeVector for QuantizationPrecision
Auto Trait Implementations§
impl Freeze for QuantizationPrecision
impl RefUnwindSafe for QuantizationPrecision
impl Send for QuantizationPrecision
impl Sync for QuantizationPrecision
impl Unpin for QuantizationPrecision
impl UnsafeUnpin for QuantizationPrecision
impl UnwindSafe for QuantizationPrecision
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.