pub struct QuantizePerGroupBackwardPlan<TIn: Element> { /* private fields */ }Expand description
quantize_per_group backward plan.
STE: dx = (dy / scale[g]) * 1[in_range(round(x/scale[g])+zp[g])]
with g the group index along the quant axis.
When to use: backward for
QuantizePerGroupPlan. Caller
retains FW input, scale[outer, num_groups], zp[outer, num_groups].
Dtypes: gradients in {f32, f64, f16, bf16}.
Shape limits: rank-2 [outer, axis_size] with
axis_size % group_size == 0.
Workspace: none.
Precision guarantee: deterministic, bit-stable.
Implementations§
Source§impl<TIn: Element> QuantizePerGroupBackwardPlan<TIn>
impl<TIn: Element> QuantizePerGroupBackwardPlan<TIn>
Sourcepub fn select(
_stream: &Stream,
desc: &QuantizePerGroupBackwardDescriptor,
_pref: PlanPreference,
) -> Result<Self>
pub fn select( _stream: &Stream, desc: &QuantizePerGroupBackwardDescriptor, _pref: PlanPreference, ) -> Result<Self>
Pick a kernel for desc.
Sourcepub fn can_implement(
&self,
args: &QuantizePerGroupBackwardArgs<'_, TIn>,
) -> Result<()>
pub fn can_implement( &self, args: &QuantizePerGroupBackwardArgs<'_, TIn>, ) -> Result<()>
Validate args.
Sourcepub fn workspace_size(&self) -> usize
pub fn workspace_size(&self) -> usize
Workspace bytes — none.
Sourcepub fn precision_guarantee(&self) -> PrecisionGuarantee
pub fn precision_guarantee(&self) -> PrecisionGuarantee
Numerical guarantees.
Auto Trait Implementations§
impl<TIn> Freeze for QuantizePerGroupBackwardPlan<TIn>
impl<TIn> RefUnwindSafe for QuantizePerGroupBackwardPlan<TIn>where
TIn: RefUnwindSafe,
impl<TIn> Send for QuantizePerGroupBackwardPlan<TIn>where
TIn: Send,
impl<TIn> Sync for QuantizePerGroupBackwardPlan<TIn>where
TIn: Sync,
impl<TIn> Unpin for QuantizePerGroupBackwardPlan<TIn>where
TIn: Unpin,
impl<TIn> UnsafeUnpin for QuantizePerGroupBackwardPlan<TIn>
impl<TIn> UnwindSafe for QuantizePerGroupBackwardPlan<TIn>where
TIn: UnwindSafe,
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