Skip to main content

DeviceBackend

Struct DeviceBackend 

Source
pub struct DeviceBackend<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> { /* private fields */ }
Expand description

Generic tensor backend that can be compiled just-in-time to any shader runtime

Implementations§

Source§

impl<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> DeviceBackend<R, F, I, BT>

Source

pub fn new() -> Self

Constructs a new DeviceBackend.

Trait Implementations§

Source§

impl<R, F, I, BT> ActivationOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn silu(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Applies SiLU element-wise. Backends may fuse its arithmetic and rounding.
Source§

fn leaky_relu( tensor: <B as BackendTypes>::FloatTensorPrimitive, negative_slope: Scalar, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the LeakyReLU activation function. Read more
Source§

fn relu( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the ReLU activation function. Read more
Source§

fn relu_backward( output: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the ReLU activation function backward. Read more
Source§

fn gelu( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the Gelu activation function. Read more
Source§

fn prelu( tensor: <B as BackendTypes>::FloatTensorPrimitive, alpha: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the PReLu activation function. Read more
Source§

fn gelu_backward( x: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the Gelu activation function backward. Read more
Source§

fn sigmoid( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the Sigmoid activation function. Read more
Source§

fn sigmoid_backward( output: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the Sigmoid activation function backward. Read more
Source§

fn hard_sigmoid( tensor: <B as BackendTypes>::FloatTensorPrimitive, alpha: Scalar, beta: Scalar, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the hard Sigmoid activation function. Read more
Source§

fn log_sigmoid( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the LogSigmoid activation function. Read more
Source§

fn softmax( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the softmax function along the given dimension. Read more
Source§

fn log_softmax( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the log-softmax function along the given dimension. Read more
Source§

fn softmin( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the softmin function along the given dimension. Read more
Source§

fn log_sigmoid_backward( x: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Applies the LogSigmoid activation function backward. Read more
Source§

impl<R, F, I, BT> Backend for DeviceBackend<R, F, I, BT>

Source§

fn name(device: &Self::Device) -> String

Name of the backend.
Source§

fn seed(_device: &Self::Device, seed: u64)

Seeds the backend on the specified device. Read more
Source§

fn ad_enabled(_device: &Self::Device) -> bool

If autodiff is enabled.
Source§

fn sync(device: &Self::Device) -> Result<(), ExecutionError>

Sync the backend, ensure that all computation are finished.
Source§

fn memory_persistent_allocations<Output: Send, Input: Send, Func: Fn(Input) -> Output + Send>( device: &Self::Device, input: Input, func: Func, ) -> Output

Sets the current allocation mode to persistent.
Source§

fn memory_cleanup(device: &Self::Device)

Manually triggers a memory cleanup on the given device.
Source§

fn staging<'a, Iter>(data: Iter, device: &Self::Device)
where Iter: Iterator<Item = &'a mut TensorData>,

Marks the given data as being used as a staging buffer for transfer between CPU and accelerators like GPUs. Read more
Source§

fn supports_dtype(device: &Self::Device, dtype: DType) -> bool

Whether the type is fully supported by the specified device for general operations. Read more
Source§

fn dtype_usage(device: &Self::Device, dtype: DType) -> DTypeUsageSet

Returns the DTypeUsageSet for the given DType on the specified device.
Source§

fn device_count(type_id: u16) -> usize

Returns the number of devices available on this backend. device is a reference device used to determine the underlying backend that should be queried. A CUDA device will return all devices available to CUDA, a Vulkan device will return all devices available to Vulkan, etc.
Source§

impl<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> BackendIr for DeviceBackend<R, F, I, BT>

Available on crate feature fusion only.
Source§

type Handle = RudaFusionHandle<R>

The type that can be used to point to a tensor of any kind.
Source§

fn float_tensor(handle: TensorHandle<Self::Handle>) -> FloatTensor<Self>

Convert a handle to a float tensor.
Source§

fn int_tensor(handle: TensorHandle<Self::Handle>) -> IntTensor<Self>

Convert a handle to an int tensor.
Source§

fn bool_tensor(handle: TensorHandle<Self::Handle>) -> BoolTensor<Self>

Convert a handle to a bool tensor.
Source§

fn quantized_tensor(handle: TensorHandle<Self::Handle>) -> QuantizedTensor<Self>

Convert a handle to a quantized tensor.
Source§

fn float_tensor_handle(tensor: FloatTensor<Self>) -> Self::Handle

Convert a float tensor to a handle.
Source§

fn int_tensor_handle(tensor: IntTensor<Self>) -> Self::Handle

Convert an int tensor to a handle.
Source§

fn bool_tensor_handle(tensor: BoolTensor<Self>) -> Self::Handle

Convert a bool tensor to a handle.
Source§

fn quantized_tensor_handle(tensor: QuantizedTensor<Self>) -> Self::Handle

Convert a quantized tensor to a handle.
Source§

impl<R, F, I, BT> BackendTypes for DeviceBackend<R, F, I, BT>

Source§

type Device = <R as Runtime>::Device

Device type.
Source§

type FloatElem = F

Default float element type.
Source§

type IntElem = I

Int element type.
Source§

type BoolElem = BT

Tensor primitive to be used for all bool operations.
Source§

type FloatTensorPrimitive = RudaTensor<R>

Tensor primitive to be used for all float operations.
Source§

type IntTensorPrimitive = RudaTensor<R>

Tensor primitive to be used for all int operations.
Source§

type BoolTensorPrimitive = RudaTensor<R>

Tensor primitive to be used for all bool operations.
Source§

type QuantizedTensorPrimitive = RudaTensor<R>

Tensor primitive to be used for all quantized operations.
Source§

impl<R, F, I, BT> BoolTensorOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn bool_empty( shape: Shape, device: &Device<Self>, dtype: BoolDType, ) -> BoolTensor<Self>

Creates a new bool tensor. Read more
Source§

fn bool_zeros( shape: Shape, device: &Device<Self>, dtype: BoolDType, ) -> BoolTensor<Self>

Creates a new bool tensor filled false. Read more
Source§

fn bool_ones( shape: Shape, device: &Device<Self>, dtype: BoolDType, ) -> BoolTensor<Self>

Creates a new bool tensor filled true. Read more
Source§

async fn bool_into_data( tensor: BoolTensor<Self>, ) -> Result<TensorData, ExecutionError>

Converts the tensor to a data structure. Read more
Source§

fn bool_from_data(data: TensorData, device: &Device<Self>) -> BoolTensor<Self>

Creates a tensor from the data structure. Read more
Source§

fn bool_into_int( tensor: BoolTensor<Self>, out_dtype: IntDType, ) -> IntTensor<Self>

Converts bool tensor to int tensor. Read more
Source§

fn bool_device(tensor: &BoolTensor<Self>) -> Device<Self>

Gets the device of the tensor. Read more
Source§

fn bool_to_device( tensor: BoolTensor<Self>, device: &Device<Self>, ) -> BoolTensor<Self>

Moves the tensor to the device.
Source§

fn bool_reshape(tensor: BoolTensor<Self>, shape: Shape) -> BoolTensor<Self>

Reshapes the tensor. Read more
Source§

fn bool_slice(tensor: BoolTensor<Self>, slices: &[Slice]) -> BoolTensor<Self>

Gets the values from the tensor for the given ranges. Read more
Source§

fn bool_slice_assign( tensor: BoolTensor<Self>, ranges: &[Slice], value: BoolTensor<Self>, ) -> BoolTensor<Self>

Sets the values in the tensor for the given ranges. Read more
Source§

fn bool_equal(lhs: BoolTensor<Self>, rhs: BoolTensor<Self>) -> BoolTensor<Self>

Equates the two tensors. Read more
Source§

fn bool_not(tensor: BoolTensor<Self>) -> BoolTensor<Self>

Inverses boolean values. Read more
Source§

fn bool_and(lhs: BoolTensor<Self>, rhs: BoolTensor<Self>) -> BoolTensor<Self>

Executes the logical and (&&) operation on two boolean tensors. Read more
Source§

fn bool_or(lhs: BoolTensor<Self>, rhs: BoolTensor<Self>) -> BoolTensor<Self>

Executes the logical or (||) operation on two boolean tensors. Read more
Source§

fn bool_into_float( tensor: BoolTensor<Self>, out_dtype: FloatDType, ) -> FloatTensor<Self>

Converts bool tensor to float tensor. Read more
Source§

fn bool_swap_dims( tensor: BoolTensor<Self>, dim1: usize, dim2: usize, ) -> BoolTensor<Self>

Swaps two dimensions of a bool tensor. Read more
Source§

fn bool_repeat_dim( tensor: BoolTensor<Self>, dim: usize, times: usize, ) -> BoolTensor<Self>

Repeats one dimension of the tensor a given number of times along that dimension. Read more
Source§

fn bool_permute(tensor: BoolTensor<Self>, axes: &[usize]) -> BoolTensor<Self>

Permutes the dimensions of a tensor. Read more
Source§

fn bool_expand(tensor: BoolTensor<Self>, shape: Shape) -> BoolTensor<Self>

Broadcasts the bool tensor to the given shape.
Source§

fn bool_select( tensor: BoolTensor<Self>, dim: usize, indices: IntTensor<Self>, ) -> BoolTensor<Self>

Select tensor elements along the given dimension corresponding to the given indices. Read more
Source§

fn bool_select_or( tensor: BoolTensor<Self>, dim: usize, indices: IntTensor<Self>, value: BoolTensor<Self>, ) -> BoolTensor<Self>

Assign the selected elements along the given dimension corresponding to the given indices to the given value using sum reduction. Read more
Source§

fn bool_flip(tensor: BoolTensor<Self>, axes: &[usize]) -> BoolTensor<Self>

Reverse the order of elements in a tensor along the given axes. Read more
Source§

fn bool_unfold( tensor: FloatTensor<Self>, dim: usize, size: usize, step: usize, ) -> FloatTensor<Self>

Unfold windows along a dimension. Read more
Source§

fn bool_mask_where( tensor: BoolTensor<Self>, mask: BoolTensor<Self>, value: BoolTensor<Self>, ) -> BoolTensor<Self>

Fills the tensor with values from the value tensor if the mask is true at the given indices. Read more
Source§

fn bool_mask_fill( tensor: BoolTensor<Self>, mask: BoolTensor<Self>, value: Scalar, ) -> BoolTensor<Self>

Fills the tensor with the given value if the mask is true at the given indices. Read more
Source§

fn bool_gather( dim: usize, tensor: BoolTensor<Self>, indices: IntTensor<Self>, ) -> BoolTensor<Self>

Gather elements from the tensor at the given indices. Read more
Source§

fn bool_scatter_or( dim: usize, tensor: BoolTensor<Self>, indices: IntTensor<Self>, value: BoolTensor<Self>, ) -> BoolTensor<Self>

Scatter a given value to the tensor at the given indices using boolean or reduction. Read more
Source§

fn bool_equal_elem(lhs: BoolTensor<Self>, rhs: Scalar) -> BoolTensor<Self>

Element-wise equality comparison with a scalar. Read more
Source§

fn bool_cat( tensors: Vec<<B as BackendTypes>::BoolTensorPrimitive>, dim: usize, ) -> <B as BackendTypes>::BoolTensorPrimitive

Concatenates the tensors along the given dimension. Read more
Source§

fn bool_not_equal( lhs: <B as BackendTypes>::BoolTensorPrimitive, rhs: <B as BackendTypes>::BoolTensorPrimitive, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison. Read more
Source§

fn bool_not_equal_elem( lhs: <B as BackendTypes>::BoolTensorPrimitive, rhs: Scalar, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison with a scalar. Read more
Source§

fn bool_xor( lhs: <B as BackendTypes>::BoolTensorPrimitive, rhs: <B as BackendTypes>::BoolTensorPrimitive, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise exclusive or. Read more
Source§

fn bool_transpose( tensor: <B as BackendTypes>::BoolTensorPrimitive, ) -> <B as BackendTypes>::BoolTensorPrimitive

Transposes a bool tensor. Read more
Source§

fn bool_any( tensor: <B as BackendTypes>::BoolTensorPrimitive, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the boolean tensor evaluates to True. Read more
Source§

fn bool_any_dim( tensor: <B as BackendTypes>::BoolTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the boolean tensor evaluates to True along a given dimension dim. Read more
Source§

fn bool_all( tensor: <B as BackendTypes>::BoolTensorPrimitive, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the boolean tensor evaluate to True. Read more
Source§

fn bool_all_dim( tensor: <B as BackendTypes>::BoolTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the boolean tensor evaluate to True along a given dimension dim. Read more
Source§

fn bool_argwhere( tensor: <B as BackendTypes>::BoolTensorPrimitive, out_dtype: IntDType, ) -> impl Future<Output = <B as BackendTypes>::IntTensorPrimitive> + Send + 'static

Compute the indices of the elements that are non-zero, grouped by element. Read more
Source§

impl<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> Clone for DeviceBackend<R, F, I, BT>

Source§

fn clone(&self) -> Self

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<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> Debug for DeviceBackend<R, F, I, BT>

Source§

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

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

impl<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> Default for DeviceBackend<R, F, I, BT>

Source§

fn default() -> Self

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

impl<R, F, I, BT> ExpertProjectionOps for DeviceBackend<R, F, I, BT>

Source§

type ExpertProjectionError = MoeError

Original native row/projection or first-order differentiation failure.
Source§

type ExpertProjectionState = NativeExpertProjectionState<R>

Original actual floating cube and native private COPY row mapping.
Source§

fn expert_projection_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, weights: FloatTensor<Self>, options: ExpertProjectionOptions, ) -> Result<(FloatTensor<Self>, Self::ExpertProjectionState), Self::ExpertProjectionError>

Execute actual U32 assigned expert projections and restore original incoming row order.
Source§

fn expert_projection_backward( state: Self::ExpertProjectionState, gradient: FloatTensor<Self>, selection: ExpertProjectionSelection, ) -> Result<ExpertProjectionBackward<Self>, Self::ExpertProjectionError>

Native first-order selected derivatives, without allocations for omitted cube/input gradients.
Source§

impl<R, F, I, BT> FloatTensorOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn float_from_data(data: TensorData, device: &Device<Self>) -> FloatTensor<Self>

Creates a new tensor from the data structure. Read more
Source§

fn float_random( shape: Shape, distribution: Distribution, device: &Device<Self>, dtype: FloatDType, ) -> FloatTensor<Self>

Creates a new tensor with random values. Read more
Source§

async fn float_into_data( tensor: FloatTensor<Self>, ) -> Result<TensorData, ExecutionError>

Converts the tensor to a data structure. Read more
Source§

fn float_device(tensor: &FloatTensor<Self>) -> Device<Self>

Gets the device of the tensor. Read more
Source§

fn float_to_device( tensor: FloatTensor<Self>, device: &Device<Self>, ) -> FloatTensor<Self>

Moves the tensor to the given device. Read more
Source§

fn float_empty( shape: Shape, device: &Device<Self>, dtype: FloatDType, ) -> FloatTensor<Self>

Creates an empty tensor with the given shape. Read more
Source§

fn float_add( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Adds two tensors together. Read more
Source§

fn float_add_scalar(lhs: FloatTensor<Self>, rhs: Scalar) -> FloatTensor<Self>

Adds a scalar to a tensor. Read more
Source§

fn float_zeros( shape: Shape, device: &Device<Self>, dtype: FloatDType, ) -> FloatTensor<Self>

Creates a new tensor with zeros. Read more
Source§

fn float_full( shape: Shape, fill_value: Scalar, device: &R::Device, dtype: FloatDType, ) -> FloatTensor<Self>

Creates a tensor filled with given value. Read more
Source§

fn float_ones( shape: Shape, device: &Device<Self>, dtype: FloatDType, ) -> FloatTensor<Self>

Creates a new tensor with ones. Read more
Source§

fn float_sub( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Subtracts two tensors. Read more
Source§

fn float_sub_scalar(lhs: FloatTensor<Self>, rhs: Scalar) -> FloatTensor<Self>

Subtracts a scalar from a tensor. Read more
Source§

fn float_mul( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Multiplies two tensors together element-wise.
Source§

fn float_mul_scalar(lhs: FloatTensor<Self>, rhs: Scalar) -> FloatTensor<Self>

Multiplies a tensor by a scalar. Read more
Source§

fn float_div( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Divides two tensors element-wise. Read more
Source§

fn float_div_scalar(lhs: FloatTensor<Self>, rhs: Scalar) -> FloatTensor<Self>

Divides a tensor by a scalar. Read more
Source§

fn float_remainder( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Computes the remainder of division between two tensors element-wise. Read more
Source§

fn float_remainder_scalar( lhs: FloatTensor<Self>, rhs: Scalar, ) -> FloatTensor<Self>

Computes the modulus of a tensor given a scalar. Read more
Source§

fn float_matmul( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Multiplies two tensors together using matrix multiplication. Read more
Source§

fn float_cross( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, dim: usize, ) -> FloatTensor<Self>

Computes the cross product of two tensors along a given dimension. Read more
Source§

fn float_swap_dims( tensor: FloatTensor<Self>, dim1: usize, dim2: usize, ) -> FloatTensor<Self>

Swaps two dimensions of a tensor. Read more
Source§

fn float_reshape(tensor: FloatTensor<Self>, shape: Shape) -> FloatTensor<Self>

Reshapes a tensor. Read more
Source§

fn float_gather( dim: usize, tensor: FloatTensor<Self>, indices: IntTensor<Self>, ) -> FloatTensor<Self>

Gather elements from a tensor. Read more
Source§

fn float_scatter_add( dim: usize, tensor: FloatTensor<Self>, indices: IntTensor<Self>, value: FloatTensor<Self>, ) -> FloatTensor<Self>

Scatter elements into a tensor using sum reduction. Read more
Source§

fn float_scatter_nd( data: FloatTensor<Self>, indices: IntTensor<Self>, values: FloatTensor<Self>, reduction: IndexingUpdateOp, ) -> FloatTensor<Self>

Multi-dimensional scatter: update data at locations specified by indices with values. Read more
Source§

fn float_gather_nd( data: FloatTensor<Self>, indices: IntTensor<Self>, ) -> FloatTensor<Self>

Multi-dimensional gather: collect slices from data at locations specified by indices. Read more
Source§

fn float_select( tensor: FloatTensor<Self>, dim: usize, indices: IntTensor<Self>, ) -> FloatTensor<Self>

Select tensor elements along the given dimension corresponding for the given indices. Read more
Source§

fn float_select_add( tensor: FloatTensor<Self>, dim: usize, indices: IntTensor<Self>, value: FloatTensor<Self>, ) -> FloatTensor<Self>

Assign the selected elements along the given dimension corresponding for the given indices to the given value using sum reduction. Read more
Source§

fn float_slice(tensor: FloatTensor<Self>, slices: &[Slice]) -> FloatTensor<Self>

Select tensor elements corresponding to the given slices. Read more
Source§

fn float_slice_assign( tensor: FloatTensor<Self>, ranges: &[Slice], value: FloatTensor<Self>, ) -> FloatTensor<Self>

Assign the selected elements corresponding to the given slices to the given value. Read more
Source§

fn float_mask_where( tensor: FloatTensor<Self>, mask: BoolTensor<Self>, value: FloatTensor<Self>, ) -> FloatTensor<Self>

Update the given tensor with the value tensor where the mask is true. Read more
Source§

fn float_mask_fill( tensor: FloatTensor<Self>, mask: BoolTensor<Self>, value: Scalar, ) -> FloatTensor<Self>

Update the given tensor with the value where the mask is true. Read more
Source§

fn float_equal( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Equal comparison of two tensors. Read more
Source§

fn float_equal_elem( lhs: FloatTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Equal comparison of a tensor and a scalar. Read more
Source§

fn float_greater( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Greater than comparison of two tensors. Read more
Source§

fn float_greater_elem( lhs: FloatTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Greater than comparison of a tensor and a scalar. Read more
Source§

fn float_greater_equal( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Greater than or equal comparison of two tensors. Read more
Source§

fn float_greater_equal_elem( lhs: FloatTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Greater than or equal comparison of a tensor and a scalar. Read more
Source§

fn float_lower( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Less than comparison of two tensors. Read more
Source§

fn float_lower_elem( lhs: FloatTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Less than comparison of a tensor and a scalar. Read more
Source§

fn float_lower_equal( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Less than or equal comparison of two tensors. Read more
Source§

fn float_lower_equal_elem( lhs: FloatTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Less than or equal comparison of a tensor and a scalar. Read more
Source§

fn float_sum(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Sum of all elements in a tensor. Read more
Source§

fn float_max(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Gets the maximum element of a tensor. Read more
Source§

fn float_max_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Gets the maximum elements of a tensor along an axis. Read more
Source§

fn float_min(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Gets the minimum element of a tensor. Read more
Source§

fn float_min_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Gets the minimum elements of a tensor along an axis. Read more
Source§

fn float_max_abs(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Gets the maximum absolute element of a tensor. Read more
Source§

fn float_max_abs_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Gets the maximum absolute elements of a tensor along an axis. Read more
Source§

fn float_sum_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Sum of all elements in a tensor along a dimension. Read more
Source§

fn float_mean_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Mean of all elements in a tensor along a dimension. Read more
Source§

fn float_mean(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Mean of all elements in a tensor. Read more
Source§

fn float_cumsum(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Computes the cumulative sum of elements along a dimension. Read more
Source§

fn float_cumprod(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Computes the cumulative product of elements along a dimension. Read more
Source§

fn float_cummin(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Computes the cumulative minimum of elements along a dimension. Read more
Source§

fn float_cummax(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Computes the cumulative maximum of elements along a dimension. Read more
Source§

fn float_prod(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Product of all elements in a tensor. Read more
Source§

fn float_prod_dim(tensor: FloatTensor<Self>, dim: usize) -> FloatTensor<Self>

Product of all elements in a tensor along a dimension. Read more
Source§

fn float_exp(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with exponential values. Read more
Source§

fn float_log(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with natural logarithm values. Read more
Source§

fn float_log1p(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with logarithm values of (1 + Xi). Read more
Source§

fn float_powi_scalar(lhs: FloatTensor<Self>, rhs: Scalar) -> FloatTensor<Self>

Raises a tensor to the power of an int scalar. Read more
Source§

fn float_powi_scalar_impl( lhs: FloatTensor<Self>, rhs: Scalar, ) -> FloatTensor<Self>

Raises a tensor to the power of an int scalar. Read more
Source§

fn float_powf_scalar_impl( lhs: FloatTensor<Self>, rhs: Scalar, ) -> FloatTensor<Self>

Returns a new tensor with values raised to the power of float value. Read more
Source§

fn float_sqrt(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with square root values. Read more
Source§

fn float_rsqrt(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns element-wise reciprocal square roots. Backends may provide a native instruction.
Source§

fn float_abs(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with absolute values. Read more
Source§

fn float_sign(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns the signs of the float tensor. Read more
Source§

fn float_cos(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with cosine values. Read more
Source§

fn float_sin(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with sine values. Read more
Source§

fn float_tan(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with tangent values. Read more
Source§

fn float_cosh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with hyperbolic cosine values. Read more
Source§

fn float_sinh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with hyperbolic sine values. Read more
Source§

fn float_tanh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with hyperbolic tangent values. Read more
Source§

fn float_acos(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with inverse cosine values. Read more
Source§

fn float_acosh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with inverse hyperbolic cosine values. Read more
Source§

fn float_asin(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with inverse sine values. Read more
Source§

fn float_asinh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with inverse hyperbolic sine values. Read more
Source§

fn float_atan(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with the inverse tangent values. Read more
Source§

fn float_atanh(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with the inverse hyperbolic tangent values. Read more
Source§

fn float_atan2( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Returns a tensor with the four-quadrant inverse tangent values of y and x. Read more
Source§

fn float_round(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with rounded values. Read more
Source§

fn float_floor(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with floored values. Read more
Source§

fn float_ceil(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with ceiled values. Read more
Source§

fn float_trunc(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with truncated values. Read more
Source§

fn float_erf(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Returns a new tensor with the error function values. Read more
Source§

fn float_argmax( tensor: FloatTensor<Self>, dim: usize, out_dtype: IntDType, ) -> IntTensor<Self>

Gets the indices of the maximum elements of a tensor along an axis. Read more
Source§

fn float_argtopk( tensor: FloatTensor<Self>, dim: usize, k: usize, out_dtype: IntDType, ) -> IntTensor<Self>

Gets the indices of the k maximum elements of a tensor along an axis. if two elements are equals, it will be ordered by lowest indices Read more
Source§

fn float_topk( tensor: FloatTensor<Self>, dim: usize, k: usize, ) -> FloatTensor<Self>

Gets the values of the k maximum elements of a tensor along an axis. Read more
Source§

fn float_argmin( tensor: FloatTensor<Self>, dim: usize, out_dtype: IntDType, ) -> IntTensor<Self>

Gets the indices of the minimum elements of a tensor along an axis. Read more
Source§

fn float_into_int( tensor: FloatTensor<Self>, out_dtype: IntDType, ) -> IntTensor<Self>

Converts float tensor to int tensor. Read more
Source§

fn float_clamp( tensor: FloatTensor<Self>, min: Scalar, max: Scalar, ) -> FloatTensor<Self>

Clamps a tensor between a minimum and maximum value. Read more
Source§

fn float_recip(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Calculates the reciprocals element-wise
Source§

fn float_repeat_dim( tensor: FloatTensor<Self>, dim: usize, times: usize, ) -> FloatTensor<Self>

Repeat the tensor along the given dimension. Read more
Source§

fn float_powf( lhs: FloatTensor<Self>, rhs: FloatTensor<Self>, ) -> FloatTensor<Self>

Element-wise power with a FloatTensor. Read more
Source§

fn float_powi(lhs: FloatTensor<Self>, rhs: IntTensor<Self>) -> FloatTensor<Self>

Element-wise power with an IntTensor. Read more
Source§

fn float_permute(tensor: FloatTensor<Self>, axes: &[usize]) -> FloatTensor<Self>

Permutes the dimensions of a tensor. Read more
Source§

fn float_expand(tensor: FloatTensor<Self>, shape: Shape) -> FloatTensor<Self>

Broadcasts the float tensor to the given shape.
Source§

fn float_flip(tensor: FloatTensor<Self>, axes: &[usize]) -> FloatTensor<Self>

Reverse the order of elements in a tensor along the given axes. Read more
Source§

fn float_cast(tensor: FloatTensor<Self>, dtype: FloatDType) -> FloatTensor<Self>

Converts a tensor to another floating point data type. Read more
Source§

fn float_unfold( tensor: FloatTensor<Self>, dim: usize, size: usize, step: usize, ) -> FloatTensor<Self>

Unfold windows along a dimension. Read more
Source§

fn float_is_nan( tensor: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Returns a new tensor with boolean elements indicating whether each element of the input is NaN. Read more
Source§

fn float_is_inf( tensor: FloatTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Returns a new tensor with boolean elements indicating whether each element of the input is infinite (either +INF or -INF). Read more
Source§

fn float_grid_sample_2d( tensor: FloatTensor<Self>, grid: FloatTensor<Self>, options: GridSampleOptions, ) -> FloatTensor<Self>

Samples tensor as a two-dimensional spatial grid of (possibly multi-channel) values, using the given locations in [-1, 1]. Read more
Source§

fn float_clamp_min( tensor: <B as BackendTypes>::FloatTensorPrimitive, min: Scalar, ) -> <B as BackendTypes>::FloatTensorPrimitive

Clamps a tensor under a minimum value. Read more
Source§

fn float_clamp_max( tensor: <B as BackendTypes>::FloatTensorPrimitive, max: Scalar, ) -> <B as BackendTypes>::FloatTensorPrimitive

Clamps a tensor over a maximum value. Read more
Source§

fn float_neg( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Negates a tensor element-wise.
Source§

fn float_transpose( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Transposes a tensor. Read more
Source§

fn float_not_equal( lhs: <B as BackendTypes>::FloatTensorPrimitive, rhs: <B as BackendTypes>::FloatTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison. Read more
Source§

fn float_not_equal_elem( lhs: <B as BackendTypes>::FloatTensorPrimitive, rhs: Scalar, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison with a scalar. Read more
Source§

fn float_detach( tensor: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Detaches a tensor from the computation graph.
Source§

fn float_set_require_grad( tensor: <B as BackendTypes>::FloatTensorPrimitive, _require_grad: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

Sets the require_grad flag of a tensor.
Source§

fn float_is_require_grad( _tensor: &<B as BackendTypes>::FloatTensorPrimitive, ) -> bool

Returns the require_grad flag of a tensor.
Source§

fn float_powf_scalar( tensor: <B as BackendTypes>::FloatTensorPrimitive, value: Scalar, ) -> <B as BackendTypes>::FloatTensorPrimitive

Returns a new tensor with values raised to the power of float value. Read more
Source§

fn float_cat( tensors: Vec<<B as BackendTypes>::FloatTensorPrimitive>, dim: usize, ) -> <B as BackendTypes>::FloatTensorPrimitive

Concatenates tensors along a dimension. Read more
Source§

fn float_max_dim_with_indices( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, indices_dtype: IntDType, ) -> (<B as BackendTypes>::FloatTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the maximum elements of a tensor along an axis and their indices. Read more
Source§

fn float_min_dim_with_indices( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, indices_dtype: IntDType, ) -> (<B as BackendTypes>::FloatTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the minimum elements of a tensor along an axis and their indices. Read more
Source§

fn float_any( tensor: <B as BackendTypes>::FloatTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the float tensor evaluates to True. Read more
Source§

fn float_any_dim( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the float tensor evaluates to True along a given dimension dim. Read more
Source§

fn float_all( tensor: <B as BackendTypes>::FloatTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the float tensor evaluate to True. Read more
Source§

fn float_all_dim( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the float tensor evaluate to True along a given dimension dim. Read more
Source§

fn float_sort( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, descending: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

Sort the elements of the input tensor by value in along a given dimension. Read more
Source§

fn float_sort_with_indices( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, descending: bool, indices_dtype: IntDType, ) -> (<B as BackendTypes>::FloatTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Sort the elements of the input tensor by value in along a given dimension. Read more
Source§

fn float_argsort( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, descending: bool, out_dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Returns the indices that sort the elements of the input tensor by value along a given dimension. Read more
Source§

impl<R, F, I, BT> FrozenAwqOps for DeviceBackend<R, F, I, BT>

Source§

type AwqError = Int4Error

Native validation/launch failure, including autodiff frozen-base validation.
Source§

fn frozen_awq_forward( input: FloatTensor<Self>, qweight: IntTensor<Self>, qzeros: IntTensor<Self>, scales: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, group_size: usize, ) -> Result<FloatTensor<Self>, Self::AwqError>

Native packed projection, optionally biased. Output retains input dtype and leading axes; input storage may differ from original scale storage.
Source§

fn frozen_awq_input_backward( gradient: FloatTensor<Self>, qweight: IntTensor<Self>, qzeros: IntTensor<Self>, scales: FloatTensor<Self>, group_size: usize, ) -> Result<FloatTensor<Self>, Self::AwqError>

Apply the transpose of the same rounded packed coefficients, retaining gradient dtype/leading axes. No weight/scales/bias gradients are implied.
Source§

impl<R, F, I, BT> FrozenNf4GroupedOps for DeviceBackend<R, F, I, BT>

Source§

type Nf4GroupedError = Nf4ExpertError

Native projection/routing failure or unsupported derivative contract.
Source§

type Nf4GroupedState = NativeNf4GroupedState<R>

Validated original row permutation and actual frozen packed operands.
Source§

fn frozen_nf4_grouped_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, payload: Nf4ExpertPayload<Self>, ) -> Result<(FloatTensor<Self>, Self::Nf4GroupedState), Self::Nf4GroupedError>

Execute one actual assigned expert per incoming row and preserve original row order.
Source§

fn frozen_nf4_grouped_input_backward( state: Self::Nf4GroupedState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::Nf4GroupedError>

Original first-order input VJP, returned in original activation storage.
Source§

impl<R, F, I, BT> FrozenNf4Ops for DeviceBackend<R, F, I, BT>

Source§

type Nf4Error = Nf4Error

Original native or autodiff contract error.
Source§

fn frozen_nf4_forward( input: FloatTensor<Self>, packed: IntTensor<Self>, scales: FloatTensor<Self>, codebook: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: Nf4ProjectionOptions, ) -> Result<FloatTensor<Self>, Self::Nf4Error>

Native packed projection. Output retains incoming floating activation storage.
Source§

fn frozen_nf4_input_backward( gradient: FloatTensor<Self>, packed: IntTensor<Self>, scales: FloatTensor<Self>, codebook: FloatTensor<Self>, options: Nf4ProjectionOptions, activation_dtype: FloatDType, ) -> Result<FloatTensor<Self>, Self::Nf4Error>

Original input VJP: cast incoming gradient to original activation storage, accumulate FP32 and return that original activation dtype, without base gradients.
Source§

impl<R, F, I, BT> FrozenNf4SwiGluOps for DeviceBackend<R, F, I, BT>

Source§

type Nf4SwiGluState = NativeNf4SwiGluState<R>

Original native row mapping and optional actual input VJP intermediates.
Source§

fn frozen_nf4_swiglu_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, gate: Nf4ExpertPayload<Self>, up: Nf4ExpertPayload<Self>, down: Nf4ExpertPayload<Self>, retain_input: bool, ) -> Result<(FloatTensor<Self>, Self::Nf4SwiGluState), Self::Nf4GroupedError>

Execute the original selected frozen expert chain. AD always retains the cache required by actual tracked input, independently of retain_input.
Source§

fn frozen_nf4_swiglu_input_backward( state: Self::Nf4SwiGluState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::Nf4GroupedError>

Real native first-order input VJP; no base, discrete selection or higher-order gradients.
Source§

impl<R, F, I, BT> FrozenPackedExpertOps for DeviceBackend<R, F, I, BT>

Source§

type PackedExpertError = PackedExpertError

Original native or first-order derivative contract failure.
Source§

type PackedProjectionState = NativePackedProjectionState<R>

Actual packed operand and native private row mapping.
Source§

type PackedSwiGluState = NativePackedSwiGluState<R>

Actual original row mapping and optional real input VJP intermediates.
Source§

fn packed_expert_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, payload: PackedExpertPayload<Self>, ) -> Result<(FloatTensor<Self>, Self::PackedProjectionState), Self::PackedExpertError>

Evaluate only actual assigned experts and restore exact incoming row order.
Source§

fn packed_expert_input_backward( state: Self::PackedProjectionState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::PackedExpertError>

First-order packed projection input VJP in original activation storage.
Source§

fn packed_swiglu_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, gate: PackedExpertPayload<Self>, up: PackedExpertPayload<Self>, down: PackedExpertPayload<Self>, retain_input: bool, ) -> Result<(FloatTensor<Self>, Self::PackedSwiGluState), Self::PackedExpertError>

Complete native selected gate/up/down and original storage-rounded SwiGLU. AD preserves required actual input caches even when retain_input is false.
Source§

fn packed_swiglu_input_backward( state: Self::PackedSwiGluState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::PackedExpertError>

Original first-order input VJP through the actual selected packed chain.
Source§

impl<R: DeviceRuntime, F: FloatElement, I: IntElement, BT: BoolElement> FusionBackend for DeviceBackend<R, F, I, BT>

Available on crate feature fusion only.
Source§

type FusionRuntime = DeviceFusionRuntime<R>

The runtime used for this backend.
Source§

type FullPrecisionBackend = DeviceBackend<R, f32, i32, BT>

Pointer to the full precision fusion backend.
Source§

fn avg_pool3d_output_size( input: [usize; 3], kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], ceil: bool, ) -> [usize; 3]

Output extents of volume average pooling without executing the operation. Backends with different padding/ceil rules override the canonical geometry.
Source§

fn cast_float(tensor: FloatTensor<Self>, dtype: DType) -> Self::Handle

Cast a float tensor and returns the resulting handle.
Source§

fn q_swap_dims_scheme( scheme: QuantScheme, rank: usize, dim1: usize, dim2: usize, ) -> QuantScheme

Scheme produced by q_swap_dims, without executing the operation. Override when the backend changes quantization layout rather than requantizing.
Source§

fn q_permute_scheme(scheme: QuantScheme, axes: &[usize]) -> QuantScheme

Scheme produced by q_permute, without executing the operation. Override when the backend changes quantization layout rather than requantizing.
Source§

impl<R, F, I, BT> IntTensorOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn int_empty( shape: Shape, device: &Device<Self>, dtype: IntDType, ) -> IntTensor<Self>

Creates a new int tensor. Read more
Source§

async fn int_into_data( tensor: IntTensor<Self>, ) -> Result<TensorData, ExecutionError>

Converts the tensor to a data structure. Read more
Source§

fn int_from_data(data: TensorData, device: &Device<Self>) -> IntTensor<Self>

Creates a tensor from the data structure. Read more
Source§

fn int_device(tensor: &IntTensor<Self>) -> Device<Self>

Gets the device of the tensor. Read more
Source§

fn int_to_device( tensor: IntTensor<Self>, device: &Device<Self>, ) -> IntTensor<Self>

Moves the tensor to the given device.
Source§

fn int_reshape(tensor: IntTensor<Self>, shape: Shape) -> IntTensor<Self>

Reshapes the tensor. Read more
Source§

fn int_slice(tensor: IntTensor<Self>, slices: &[Slice]) -> IntTensor<Self>

Gets the element at the given indices. Read more
Source§

fn int_slice_assign( tensor: IntTensor<Self>, ranges: &[Slice], value: IntTensor<Self>, ) -> IntTensor<Self>

Sets the values in the tensor for the given ranges. Read more
Source§

fn int_matmul(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Multiplies two tensors together using matrix multiplication. Read more
Source§

fn int_mask_where( tensor: IntTensor<Self>, mask: BoolTensor<Self>, value: IntTensor<Self>, ) -> IntTensor<Self>

Fills the tensor with values from the value tensor if the mask is true at the given indices. Read more
Source§

fn int_mask_fill( tensor: IntTensor<Self>, mask: BoolTensor<Self>, value: Scalar, ) -> IntTensor<Self>

Fills the tensor with the given value if the mask is true at the given indices. Read more
Source§

fn int_gather( dim: usize, tensor: IntTensor<Self>, indices: IntTensor<Self>, ) -> IntTensor<Self>

Gather elements from the tensor at the given indices. Read more
Source§

fn int_scatter_add( dim: usize, tensor: IntTensor<Self>, indices: IntTensor<Self>, value: IntTensor<Self>, ) -> IntTensor<Self>

Scatter a given value to the tensor at the given indices using sum reduction. Read more
Source§

fn int_scatter_nd( data: IntTensor<Self>, indices: IntTensor<Self>, values: IntTensor<Self>, reduction: IndexingUpdateOp, ) -> IntTensor<Self>

Multi-dimensional scatter for int tensors.
Source§

fn int_gather_nd( data: IntTensor<Self>, indices: IntTensor<Self>, ) -> IntTensor<Self>

Multi-dimensional gather for int tensors.
Source§

fn int_select( tensor: IntTensor<Self>, dim: usize, indices: IntTensor<Self>, ) -> IntTensor<Self>

Select tensor elements along the given dimension corresponding to the given indices. Read more
Source§

fn int_select_add( tensor: IntTensor<Self>, dim: usize, indices: IntTensor<Self>, value: IntTensor<Self>, ) -> IntTensor<Self>

Assign the selected elements along the given dimension corresponding to the given indices to the given value using sum reduction. Read more
Source§

fn int_equal( lhs: IntTensor<Self>, rhs: IntTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise equality comparison. Read more
Source§

fn int_equal_elem( lhs: IntTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise equality comparison with a scalar. Read more
Source§

fn int_greater( lhs: IntTensor<Self>, rhs: IntTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise greater than comparison. Read more
Source§

fn int_greater_elem( lhs: IntTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise greater than comparison with a scalar. Read more
Source§

fn int_greater_equal( lhs: IntTensor<Self>, rhs: IntTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise greater than or equal comparison. Read more
Source§

fn int_greater_equal_elem( lhs: IntTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise greater than or equal comparison with a scalar. Read more
Source§

fn int_lower( lhs: IntTensor<Self>, rhs: IntTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise less than comparison. Read more
Source§

fn int_lower_elem( lhs: IntTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise less than comparison with a scalar. Read more
Source§

fn int_lower_equal( lhs: IntTensor<Self>, rhs: IntTensor<Self>, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise less than or equal comparison. Read more
Source§

fn int_lower_equal_elem( lhs: IntTensor<Self>, rhs: Scalar, out_dtype: BoolDType, ) -> BoolTensor<Self>

Element-wise less than or equal comparison with a scalar. Read more
Source§

fn int_add(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Element-wise addition. Read more
Source§

fn int_add_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Element-wise addition with a scalar. Read more
Source§

fn int_sub(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Element-wise subtraction. Read more
Source§

fn int_sub_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Element-wise subtraction with a scalar. Read more
Source§

fn int_mul(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Element-wise multiplication. Read more
Source§

fn int_mul_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Element-wise multiplication with a scalar. Read more
Source§

fn int_div(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Element-wise division. Read more
Source§

fn int_div_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Element-wise division with a scalar. Read more
Source§

fn int_remainder(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Element-wise modulus. Read more
Source§

fn int_remainder_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Element-wise modulus with a scalar. Read more
Source§

fn int_zeros( shape: Shape, device: &Device<Self>, dtype: IntDType, ) -> IntTensor<Self>

Creates a tensor of zeros. Read more
Source§

fn int_ones( shape: Shape, device: &Device<Self>, dtype: IntDType, ) -> IntTensor<Self>

Creates a tensor of ones. Read more
Source§

fn int_full( shape: Shape, fill_value: Scalar, device: &Device<Self>, dtype: IntDType, ) -> IntTensor<Self>

Creates a tensor filled with given value. Read more
Source§

fn int_sum(tensor: IntTensor<Self>) -> IntTensor<Self>

Sums all elements in the tensor. Read more
Source§

fn int_sum_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Sums all elements in the tensor along a dimension. Read more
Source§

fn int_prod(tensor: IntTensor<Self>) -> IntTensor<Self>

Computes the product of all elements in the tensor. Read more
Source§

fn int_prod_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the product of all elements in the tensor along a dimension. Read more
Source§

fn int_max(tensor: IntTensor<Self>) -> IntTensor<Self>

Gets the maximum element in the tensor. Read more
Source§

fn int_max_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Gets the maximum element in the tensor along a dimension. Read more
Source§

fn int_topk(tensor: IntTensor<Self>, dim: usize, k: usize) -> IntTensor<Self>

Gets the values of the k maximum elements along a dimension. Read more
Source§

fn int_max_abs(tensor: IntTensor<Self>) -> IntTensor<Self>

Gets the maximum absolute element in the tensor. Read more
Source§

fn int_max_abs_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Gets the maximum absolute element in the tensor along a dimension. Read more
Source§

fn int_min(tensor: IntTensor<Self>) -> IntTensor<Self>

Gets the minimum element in the tensor. Read more
Source§

fn int_min_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Gets the minimum elements in the tensor along a dimension. Read more
Source§

fn int_mean_dim(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the mean of all elements in the tensor along a dimension. Read more
Source§

fn int_cumsum(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the cumulative sum of elements along a dimension. Read more
Source§

fn int_cumprod(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the cumulative product of elements along a dimension. Read more
Source§

fn int_cummin(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the cumulative minimum of elements along a dimension. Read more
Source§

fn int_cummax(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Computes the cumulative maximum of elements along a dimension. Read more
Source§

fn int_argmax(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Gets the indices of the maximum elements along a dimension. Read more
Source§

fn int_argtopk(tensor: IntTensor<Self>, dim: usize, k: usize) -> IntTensor<Self>

Gets the indices of the k maximum elements along a dimension. If two elements share the same value, it will be ordered by the lowest coordinate Read more
Source§

fn int_argmin(tensor: IntTensor<Self>, dim: usize) -> IntTensor<Self>

Gets the indices of the minimum elements along a dimension. Read more
Source§

fn int_clamp( tensor: IntTensor<Self>, min: Scalar, max: Scalar, ) -> IntTensor<Self>

Clamps a tensor between a minimum and maximum value. Read more
Source§

fn int_abs(tensor: IntTensor<Self>) -> IntTensor<Self>

Returns a new tensor with absolute values. Read more
Source§

fn int_sign(tensor: IntTensor<Self>) -> IntTensor<Self>

Returns the signs of the int tensor. Read more
Source§

fn int_into_float( tensor: IntTensor<Self>, out_dtype: FloatDType, ) -> FloatTensor<Self>

Converts int tensor to float tensor. Read more
Source§

fn int_swap_dims( tensor: IntTensor<Self>, dim1: usize, dim2: usize, ) -> IntTensor<Self>

Swaps two dimensions of an int tensor. Read more
Source§

fn int_repeat_dim( tensor: IntTensor<Self>, dim: usize, times: usize, ) -> IntTensor<Self>

Repeats the tensor along the given dimension the given number of times. Read more
Source§

fn int_random( shape: Shape, distribution: Distribution, device: &Device<Self>, dtype: IntDType, ) -> IntTensor<Self>

Creates a new int tensor with random values. Read more
Source§

fn int_permute(tensor: IntTensor<Self>, axes: &[usize]) -> IntTensor<Self>

Permutes the dimensions of a tensor. Read more
Source§

fn int_expand(tensor: IntTensor<Self>, shape: Shape) -> IntTensor<Self>

Broadcasts the int tensor to the given shape.
Source§

fn int_flip(tensor: IntTensor<Self>, axes: &[usize]) -> IntTensor<Self>

Reverse the order of elements in a tensor along the given axes. Read more
Source§

fn bitwise_and(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Bitwise AND operation for Int Tensors
Source§

fn bitwise_and_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Bitwise AND operation for Int Tensors with a scalar
Source§

fn bitwise_or(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Bitwise OR operation for Int Tensors
Source§

fn bitwise_or_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Bitwise OR operation for Int Tensors with a scalar
Source§

fn bitwise_xor(lhs: IntTensor<Self>, rhs: IntTensor<Self>) -> IntTensor<Self>

Bitwise XOR operation for Int Tensors
Source§

fn bitwise_xor_scalar(lhs: IntTensor<Self>, rhs: Scalar) -> IntTensor<Self>

Bitwise XOR operation for Int Tensors with a scalar
Source§

fn bitwise_not(tensor: IntTensor<Self>) -> IntTensor<Self>

Bitwise NOT operation for Int Tensors
Source§

fn bitwise_left_shift( lhs: IntTensor<Self>, rhs: IntTensor<Self>, ) -> IntTensor<Self>

Bitwise left shift operation for Int Tensors
Source§

fn bitwise_left_shift_scalar( lhs: IntTensor<Self>, rhs: Scalar, ) -> IntTensor<Self>

Bitwise left shift operation for Int Tensors with a scalar
Source§

fn bitwise_right_shift( lhs: IntTensor<Self>, rhs: IntTensor<Self>, ) -> IntTensor<Self>

Bitwise right shift operation for Int Tensors
Source§

fn bitwise_right_shift_scalar( lhs: IntTensor<Self>, rhs: Scalar, ) -> IntTensor<Self>

Bitwise right shift operation for Int Tensors with a scalar
Source§

fn int_cast(tensor: IntTensor<Self>, dtype: IntDType) -> IntTensor<Self>

Converts a tensor to another integer data type. Read more
Source§

fn int_unfold( tensor: FloatTensor<Self>, dim: usize, size: usize, step: usize, ) -> FloatTensor<Self>

Unfold windows along a dimension. Read more
Source§

fn int_cat( tensors: Vec<<B as BackendTypes>::IntTensorPrimitive>, dim: usize, ) -> <B as BackendTypes>::IntTensorPrimitive

Concatenates the given tensors along the given dimension. Read more
Source§

fn int_not_equal( lhs: <B as BackendTypes>::IntTensorPrimitive, rhs: <B as BackendTypes>::IntTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison. Read more
Source§

fn int_not_equal_elem( lhs: <B as BackendTypes>::IntTensorPrimitive, rhs: Scalar, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Element-wise non-equality comparison with a scalar. Read more
Source§

fn int_powi( lhs: <B as BackendTypes>::IntTensorPrimitive, rhs: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::IntTensorPrimitive

Element-wise power with a IntTensor. Read more
Source§

fn int_powi_scalar( lhs: <B as BackendTypes>::IntTensorPrimitive, rhs: Scalar, ) -> <B as BackendTypes>::IntTensorPrimitive

Element-wise power with a scalar. Read more
Source§

fn int_powi_scalar_impl( lhs: <B as BackendTypes>::IntTensorPrimitive, rhs: Scalar, ) -> <B as BackendTypes>::IntTensorPrimitive

Element-wise power with a scalar. Read more
Source§

fn int_clamp_min( tensor: <B as BackendTypes>::IntTensorPrimitive, min: Scalar, ) -> <B as BackendTypes>::IntTensorPrimitive

Clamps a tensor under a minimum value. Read more
Source§

fn int_clamp_max( tensor: <B as BackendTypes>::IntTensorPrimitive, max: Scalar, ) -> <B as BackendTypes>::IntTensorPrimitive

Clamps a tensor over a maximum value. Read more
Source§

fn int_neg( tensor: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::IntTensorPrimitive

Element-wise negation. Read more
Source§

fn int_mean( tensor: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::IntTensorPrimitive

Computes the mean of all elements in the tensor. Read more
Source§

fn int_max_dim_with_indices( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, ) -> (<B as BackendTypes>::IntTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the maximum elements and corresponding indices along a dimension. Read more
Source§

fn int_min_dim_with_indices( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, ) -> (<B as BackendTypes>::IntTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the minimum elements and corresponding indices along a dimension. Read more
Source§

fn int_transpose( tensor: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::IntTensorPrimitive

Transposes an int tensor. Read more
Source§

fn int_arange_step( range: Range<i64>, step: usize, device: &<B as BackendTypes>::Device, dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Creates a new tensor with values from the given range with the given step size. Read more
Source§

fn int_arange( range: Range<i64>, device: &<B as BackendTypes>::Device, dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Creates a new tensor with values from the given range. Read more
Source§

fn int_any( tensor: <B as BackendTypes>::IntTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the int tensor evaluates to True. Read more
Source§

fn int_any_dim( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the int tensor evaluates to True along a given dimension dim. Read more
Source§

fn int_all( tensor: <B as BackendTypes>::IntTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the int tensor evaluate to True. Read more
Source§

fn int_all_dim( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the int tensor evaluate to True along a given dimension dim. Read more
Source§

fn int_sort( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, descending: bool, ) -> <B as BackendTypes>::IntTensorPrimitive

Sort the elements of the input tensor by value along a given dimension. Read more
Source§

fn int_sort_with_indices( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, descending: bool, ) -> (<B as BackendTypes>::IntTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Sort the elements of the input tensor by value along a given dimension. Read more
Source§

fn int_argsort( tensor: <B as BackendTypes>::IntTensorPrimitive, dim: usize, descending: bool, ) -> <B as BackendTypes>::IntTensorPrimitive

Returns the indices that sort the elements of the input tensor by value along a given dimension. Read more
Source§

impl<R, F, I, BT> ModuleOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn exponential_relu_native( tensor: FloatTensor<Self>, alpha: f64, continuous: bool, ) -> FloatTensor<Self>

Working-storage ELU, or CELU when continuous is true, using the original alpha.
Source§

fn exponential_relu_native_backward( tensor: FloatTensor<Self>, grad: FloatTensor<Self>, alpha: f64, continuous: bool, ) -> FloatTensor<Self>

Original selected ELU/CELU mode’s independent first-order input derivative.
Source§

fn leaky_relu_native( tensor: FloatTensor<Self>, negative_slope: f64, ) -> FloatTensor<Self>

Working-storage LeakyReLU using the actual scalar negative slope.
Source§

fn leaky_relu_native_backward( tensor: FloatTensor<Self>, grad: FloatTensor<Self>, negative_slope: f64, ) -> FloatTensor<Self>

Independent first-order VJP, using the original primal to select the branch.
Source§

fn prelu_native( tensor: FloatTensor<Self>, alpha: FloatTensor<Self>, ) -> FloatTensor<Self>

Working-storage PReLU with the original shared or per-channel slope vector.
Source§

fn prelu_native_backward_select( tensor: FloatTensor<Self>, alpha: FloatTensor<Self>, grad: FloatTensor<Self>, mask: [bool; 2], ) -> [Option<FloatTensor<Self>>; 2]

Independently requested original-input and slope derivatives.
Source§

fn group_norm_with_stats( tensor: FloatTensor<Self>, gamma: Option<FloatTensor<Self>>, beta: Option<FloatTensor<Self>>, groups: usize, epsilon: f64, ) -> LayerNormOutput<Self>

GroupNorm output and FP32/FP64 saved [batch, groups] mean/reciprocal deviation.
Source§

fn group_norm_backward_select( tensor: FloatTensor<Self>, gamma: Option<FloatTensor<Self>>, grad: FloatTensor<Self>, mean: FloatTensor<Self>, rstd: FloatTensor<Self>, groups: usize, mask: [bool; 3], ) -> [Option<FloatTensor<Self>>; 3]

Only requested original input, actual weight and bias derivatives, in that order.
Source§

fn gelu_native( tensor: FloatTensor<Self>, approximate: bool, ) -> FloatTensor<Self>

Explicit native GELU preserving the caller’s original erf/tanh approximation choice.
Source§

fn gelu_native_backward( input: FloatTensor<Self>, grad: FloatTensor<Self>, approximate: bool, ) -> FloatTensor<Self>

Independent first-order GELU VJP in the same selected erf/tanh mode.
Source§

fn silu_native(tensor: FloatTensor<Self>) -> FloatTensor<Self>

Explicit native SiLU training path, using FP32 for half activation arithmetic.
Source§

fn silu_native_backward( input: FloatTensor<Self>, grad: FloatTensor<Self>, ) -> FloatTensor<Self>

Independent first-order SiLU VJP, retaining the original input storage.
Source§

fn softmax_with_stats( tensor: FloatTensor<Self>, dim: usize, logarithmic: bool, ) -> SoftmaxOutput<Self>

Softmax/log-softmax retaining its working output, with FP32 low-precision arithmetic.
Source§

fn softmax_native_backward( working: FloatTensor<Self>, grad: FloatTensor<Self>, dim: usize, logarithmic: bool, ) -> FloatTensor<Self>

VJP from the saved working output, retaining FP64 if either argument uses FP64.
Source§

fn has_layer_norm_backward() -> bool

Whether native forward statistics and complete first-order backward are available.
Source§

fn layer_norm_backward_select( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, grad: FloatTensor<Self>, mean: FloatTensor<Self>, rstd: FloatTensor<Self>, mask: [bool; 3], ) -> [Option<FloatTensor<Self>>; 3]

LayerNorm input, weight and bias gradients selected in that order.
Source§

fn has_rms_norm_backward() -> bool

Whether saved RMSNorm statistics and complete first-order backward are available.
Source§

fn rms_norm_backward_select( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, grad: FloatTensor<Self>, rstd: FloatTensor<Self>, mask: [bool; 2], ) -> [Option<FloatTensor<Self>>; 2]

RMSNorm input and weight gradients selected by the two corresponding mask entries.
Source§

fn rms_norm_with_stats( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, epsilon: f64, ) -> RmsNormOutput<Self>

RMSNorm forward retaining reciprocal row norms for backward.
Source§

fn rms_norm_backward( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, grad: FloatTensor<Self>, rstd: FloatTensor<Self>, ) -> RmsNormBackward<Self>

RMSNorm derivatives from saved reciprocal row norms, without repeating forward.
Source§

fn layer_norm( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, beta: Option<FloatTensor<Self>>, epsilon: f64, ) -> FloatTensor<Self>

Applies Layer Normalization over the last dimension of the input tensor. Read more
Source§

fn layer_norm_with_stats( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, beta: Option<FloatTensor<Self>>, epsilon: f64, ) -> LayerNormOutput<Self>

Native forward with statistics retained for backward.
Source§

fn layer_norm_backward( tensor: FloatTensor<Self>, gamma: FloatTensor<Self>, grad: FloatTensor<Self>, mean: FloatTensor<Self>, rstd: FloatTensor<Self>, ) -> LayerNormBackward<Self>

Native backward using the exact statistics returned by forward.
Source§

fn conv1d( x: FloatTensor<Self>, weight: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: ConvOptions<1>, ) -> FloatTensor<Self>

One dimensional convolution. Read more
Source§

fn conv1d_x_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<1>, ) -> FloatTensor<Self>

Backward pass for the conv1d operation, returning the gradient for x.
Source§

fn conv1d_weight_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<1>, ) -> FloatTensor<Self>

Backward pass for the conv1d operation, returning the gradient for weight.
Source§

fn conv2d( x: FloatTensor<Self>, weight: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: ConvOptions<2>, ) -> FloatTensor<Self>

Two dimensional convolution. Read more
Source§

fn conv2d_x_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<2>, ) -> FloatTensor<Self>

Backward pass for the conv2d operation, returning the gradient for x.
Source§

fn conv2d_weight_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<2>, ) -> FloatTensor<Self>

Backward pass for the conv2d operation, returning the gradient for weight.
Source§

fn deform_conv2d( x: FloatTensor<Self>, offset: FloatTensor<Self>, weight: FloatTensor<Self>, mask: Option<FloatTensor<Self>>, bias: Option<FloatTensor<Self>>, options: DeformConvOptions<2>, ) -> FloatTensor<Self>

Two dimensional deformable convolution. Read more
Source§

fn deform_conv2d_backward( x: FloatTensor<Self>, offset: FloatTensor<Self>, weight: FloatTensor<Self>, mask: Option<FloatTensor<Self>>, bias: Option<FloatTensor<Self>>, output_grad: FloatTensor<Self>, options: DeformConvOptions<2>, ) -> DeformConv2dBackward<Self>

Backward pass for the deform_conv2d operation.
Source§

fn conv3d( x: FloatTensor<Self>, weight: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: ConvOptions<3>, ) -> FloatTensor<Self>

Three dimensional convolution. Read more
Source§

fn conv3d_x_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<3>, ) -> FloatTensor<Self>

Backward pass for the conv3d operation, returning the gradient for x.
Source§

fn conv3d_weight_backward( x: FloatTensor<Self>, weight: FloatTensor<Self>, output_grad: FloatTensor<Self>, options: ConvOptions<3>, ) -> FloatTensor<Self>

Backward pass for the conv3d operation, returning the gradient for weight.
Source§

fn conv_transpose2d( x: FloatTensor<Self>, weight: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: ConvTransposeOptions<2>, ) -> FloatTensor<Self>

Two dimensional transposed convolution. Read more
Source§

fn conv_transpose3d( x: FloatTensor<Self>, weight: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: ConvTransposeOptions<3>, ) -> FloatTensor<Self>

Three dimensional transposed convolution. Read more
Source§

fn avg_pool2d( x: FloatTensor<Self>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], count_include_pad: bool, ceil_mode: bool, ) -> FloatTensor<Self>

Two dimensional avg pooling. Read more
Source§

fn avg_pool2d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], count_include_pad: bool, ceil_mode: bool, ) -> FloatTensor<Self>

Backward pass for the avg pooling 2d operation.
Source§

fn max_pool2d( x: FloatTensor<Self>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], dilation: [usize; 2], ceil_mode: bool, ) -> FloatTensor<Self>

Two dimensional max pooling. Read more
Source§

fn max_pool2d_with_indices( x: FloatTensor<Self>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], dilation: [usize; 2], ceil_mode: bool, ) -> MaxPool2dWithIndices<Self>

Two dimensional max pooling with indices. Read more
Source§

fn max_pool2d_with_indices_backward( x: FloatTensor<Self>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], dilation: [usize; 2], ceil_mode: bool, output_grad: FloatTensor<Self>, indices: IntTensor<Self>, ) -> MaxPool2dBackward<Self>

Backward pass for the max pooling 2d operation.
Source§

fn adaptive_avg_pool2d( x: FloatTensor<Self>, output_size: [usize; 2], ) -> FloatTensor<Self>

Two dimensional adaptive avg pooling. Read more
Source§

fn adaptive_avg_pool3d( x: FloatTensor<Self>, output_size: [usize; 3], ) -> FloatTensor<Self>

Three dimensional adaptive average pooling of [batch, channels, depth, height, width].
Source§

fn max_pool3d( x: FloatTensor<Self>, kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], dilation: [usize; 3], ceil: bool, ) -> FloatTensor<Self>

Three dimensional maximum pooling with native padding, stride and dilation.
Source§

fn max_pool3d_with_indices( x: FloatTensor<Self>, kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], dilation: [usize; 3], ceil: bool, ) -> MaxPool3dWithIndices<Self>

Volume maxima and original input positions.
Source§

fn max_pool3d_with_indices_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, indices: IntTensor<Self>, kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], dilation: [usize; 3], ceil: bool, ) -> MaxPool3dBackward<Self>

Accumulate volume gradients through the saved maximum positions.
Source§

fn avg_pool3d_native_output_size( input: [usize; 3], kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], ceil: bool, ) -> Option<[usize; 3]>

Native volume output geometry, or None to retain the backend’s composed operations.
Source§

fn avg_pool3d( x: FloatTensor<Self>, kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], include_pad: bool, ceil: bool, ) -> FloatTensor<Self>

Three dimensional average pooling of [batch, channels, depth, height, width].
Source§

fn avg_pool3d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, kernel: [usize; 3], stride: [usize; 3], padding: [usize; 3], include_pad: bool, ceil: bool, ) -> FloatTensor<Self>

Input gradients for three dimensional average pooling.
Source§

fn adaptive_avg_pool3d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, ) -> FloatTensor<Self>

Input gradients for native three dimensional adaptive average pooling.
Source§

fn adaptive_avg_pool2d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, ) -> FloatTensor<Self>

Backward pass for the adaptive avg pooling 2d operation.
Source§

fn interpolate( x: FloatTensor<Self>, output_size: [usize; 2], options: InterpolateOptions, ) -> FloatTensor<Self>

Down/up samples the input. Read more
Source§

fn interpolate_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, output_size: [usize; 2], options: InterpolateOptions, ) -> FloatTensor<Self>

Backward pass for the interpolate operation.
Source§

fn interpolate1d( x: FloatTensor<Self>, size: usize, options: InterpolateOptions, ) -> FloatTensor<Self>

Resize native [batch, channels, width] lines with the original filter.
Source§

fn interpolate1d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, size: usize, options: InterpolateOptions, ) -> FloatTensor<Self>

Backward line resizing in the original input geometry and storage.
Source§

fn interpolate3d( x: FloatTensor<Self>, size: [usize; 3], options: InterpolateOptions, ) -> FloatTensor<Self>

Resize native volumes using the existing spatial-then-depth filter sequence.
Source§

fn interpolate3d_backward( x: FloatTensor<Self>, grad: FloatTensor<Self>, size: [usize; 3], options: InterpolateOptions, ) -> FloatTensor<Self>

Backward volume resizing through the original spatial and depth filters.
Source§

fn attention( query: FloatTensor<Self>, key: FloatTensor<Self>, value: FloatTensor<Self>, mask: Option<BoolTensor<Self>>, attn_bias: Option<FloatTensor<Self>>, options: AttentionModuleOptions, ) -> FloatTensor<Self>

Computes scaled dot-product attention: softmax(QKᵗ * scale) · V, where scale defaults to 1/sqrt(head_dim). Optionally applies masking, additive bias, causal masking, and softcap to the attention scores. Read more
Source§

fn has_ctc_loss_backward() -> bool

Returns true if this backend implements ctc_loss_backward natively. Read more
Source§

fn ctc_loss( log_probs: FloatTensor<Self>, targets: IntTensor<Self>, input_lengths: IntTensor<Self>, target_lengths: IntTensor<Self>, blank: usize, ) -> FloatTensor<Self>

Computes the Connectionist Temporal Classification (CTC) loss. Read more
Source§

fn ctc_loss_backward( log_probs: FloatTensor<Self>, targets: IntTensor<Self>, input_lengths: IntTensor<Self>, target_lengths: IntTensor<Self>, grad_loss: FloatTensor<Self>, blank: usize, ) -> FloatTensor<Self>

Backward pass for ctc_loss: gradient w.r.t. log_probs. Read more
Source§

fn rfft( signal: FloatTensor<Self>, dim: usize, n: Option<usize>, ) -> (FloatTensor<Self>, FloatTensor<Self>)

Real-valued FFT with optional size parameter. Read more
Source§

fn irfft( spectrum_re: FloatTensor<Self>, spectrum_im: FloatTensor<Self>, dim: usize, n: Option<usize>, ) -> FloatTensor<Self>

Inverse real-valued FFT with optional output size. Read more
Source§

fn group_norm( tensor: <B as BackendTypes>::FloatTensorPrimitive, gamma: Option<<B as BackendTypes>::FloatTensorPrimitive>, beta: Option<<B as BackendTypes>::FloatTensorPrimitive>, groups: usize, epsilon: f64, ) -> <B as BackendTypes>::FloatTensorPrimitive

Native GroupNorm on actual channel groups with independently optional affine leaves.
Source§

fn softmax_native( tensor: <B as BackendTypes>::FloatTensorPrimitive, dim: usize, logarithmic: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

Explicit saved-working-output softmax path; existing activation defaults are unchanged.
Source§

fn embedding( weights: <B as BackendTypes>::FloatTensorPrimitive, indices: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Embedding operation. Read more
Source§

fn embedding_backward( weights: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, indices: <B as BackendTypes>::IntTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Embedding backward operation. Read more
Source§

fn linear( x: <B as BackendTypes>::FloatTensorPrimitive, weight: <B as BackendTypes>::FloatTensorPrimitive, bias: Option<<B as BackendTypes>::FloatTensorPrimitive>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Linear transformation. Read more
Source§

fn linear_x_backward( weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for linear, returning the gradient for x.
Source§

fn linear_weight_backward( x: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for linear, returning the gradient for weight.
Source§

fn linear_bias_backward( output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for linear, returning the gradient for bias.
Source§

fn conv1d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv1d operation, returning the gradient for bias.
Source§

fn conv2d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv2d operation, returning the gradient for bias.
Source§

fn conv3d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv3d operation, returning the gradient for bias.
Source§

fn conv_transpose1d( x: <B as BackendTypes>::FloatTensorPrimitive, weight: <B as BackendTypes>::FloatTensorPrimitive, bias: Option<<B as BackendTypes>::FloatTensorPrimitive>, options: ConvTransposeOptions<1>, ) -> <B as BackendTypes>::FloatTensorPrimitive

One dimensional transposed convolution. Read more
Source§

fn conv_transpose1d_x_backward( weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<1>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 1d operation, returning the gradient for x.
Source§

fn conv_transpose1d_weight_backward( x: <B as BackendTypes>::FloatTensorPrimitive, weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<1>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 1d operation, returning the gradient for weight.
Source§

fn conv_transpose1d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 1d operation, returning the gradient for bias.
Source§

fn conv_transpose2d_x_backward( weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<2>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 2d operation, returning the gradient for x.
Source§

fn conv_transpose2d_weight_backward( x: <B as BackendTypes>::FloatTensorPrimitive, weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<2>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 2d operation, returning the gradient for weight.
Source§

fn conv_transpose2d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 2d operation, returning the gradient for bias.
Source§

fn conv_transpose3d_x_backward( weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<3>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 3d operation, returning the gradient for x.
Source§

fn conv_transpose3d_weight_backward( x: <B as BackendTypes>::FloatTensorPrimitive, weight: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, options: ConvTransposeOptions<3>, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 3d operation, returning the gradient for weight.
Source§

fn conv_transpose3d_bias_backward( x: <B as BackendTypes>::FloatTensorPrimitive, bias: <B as BackendTypes>::FloatTensorPrimitive, output_grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the conv transpose 3d operation, returning the gradient for bias.
Source§

fn unfold4d( x: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: [usize; 2], options: UnfoldOptions, ) -> <B as BackendTypes>::FloatTensorPrimitive

Four-dimensional unfolding. Read more
Source§

fn avg_pool1d( x: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: usize, stride: usize, padding: usize, count_include_pad: bool, ceil_mode: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

One dimensional avg pooling. Read more
Source§

fn avg_pool1d_backward( x: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: usize, stride: usize, padding: usize, count_include_pad: bool, ceil_mode: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the avg pooling 1d operation.
Source§

fn adaptive_avg_pool1d( x: <B as BackendTypes>::FloatTensorPrimitive, output_size: usize, ) -> <B as BackendTypes>::FloatTensorPrimitive

One dimensional adaptive avg pooling. Read more
Source§

fn adaptive_avg_pool1d_backward( x: <B as BackendTypes>::FloatTensorPrimitive, grad: <B as BackendTypes>::FloatTensorPrimitive, ) -> <B as BackendTypes>::FloatTensorPrimitive

Backward pass for the adaptive avg pooling 1d operation.
Source§

fn max_pool1d( x: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: usize, stride: usize, padding: usize, dilation: usize, ceil_mode: bool, ) -> <B as BackendTypes>::FloatTensorPrimitive

One dimensional max pooling. Read more
Source§

fn max_pool1d_with_indices( x: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: usize, stride: usize, padding: usize, dilation: usize, ceil_mode: bool, ) -> MaxPool1dWithIndices<B>

One dimensional max pooling with indices. Read more
Source§

fn max_pool1d_with_indices_backward( x: <B as BackendTypes>::FloatTensorPrimitive, kernel_size: usize, stride: usize, padding: usize, dilation: usize, ceil_mode: bool, output_grad: <B as BackendTypes>::FloatTensorPrimitive, indices: <B as BackendTypes>::IntTensorPrimitive, ) -> MaxPool1dBackward<B>

Backward pass for the max pooling 1d operation.
Source§

fn rms_norm( tensor: <B as BackendTypes>::FloatTensorPrimitive, gamma: <B as BackendTypes>::FloatTensorPrimitive, epsilon: f64, ) -> <B as BackendTypes>::FloatTensorPrimitive

Last-axis RMSNorm with working arithmetic and one final output-storage cast.
Source§

fn layer_norm_default( tensor: <B as BackendTypes>::FloatTensorPrimitive, gamma: <B as BackendTypes>::FloatTensorPrimitive, beta: Option<<B as BackendTypes>::FloatTensorPrimitive>, epsilon: f64, ) -> <B as BackendTypes>::FloatTensorPrimitive

Differentiable primitive composition for backends without native LayerNorm backward.
Source§

impl<R, F, I, BT> MoeDispatchOps for DeviceBackend<R, F, I, BT>

Source§

type MoeDispatchState = NativeMoeDispatchState<R>

Original valid private native row mappings, with no unchecked imported offsets.
Source§

fn moe_dispatch( input: FloatTensor<Self>, logits: FloatTensor<Self>, bias: Option<FloatTensor<Self>>, options: MoeOptions, ) -> Result<MoeDispatched<Self>, Self::MoeError>

Original selection and continuous weights followed by device COPY dispatch.
Source§

fn moe_dispatch_counts( state: &Self::MoeDispatchState, expert_prefix: &[usize], ) -> Result<Vec<usize>, Self::MoeError>

Actual row counts per caller-declared contiguous global expert range. Reads only expert-prefix coordination metadata, not activation/weight values.
Source§

fn moe_dispatch_backward( state: Self::MoeDispatchState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::MoeError>

COPY VJP sums selected expert-row seeds without multiplying routing weights again.
Source§

fn moe_dispatch_weights_backward( state: Self::MoeDispatchState, gradient: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::MoeError>

Original fixed-selection source-logit VJP of FP32 continuous weights.
Source§

fn moe_combine( state: Self::MoeDispatchState, expert_values: FloatTensor<Self>, weights: FloatTensor<Self>, _backward_strategy: MoeCombineGradientStrategy, ) -> Result<FloatTensor<Self>, Self::MoeError>

Original ascending expert-ID combine after actual expert rows have returned to their source.
Source§

fn moe_combine_backward( state: Self::MoeDispatchState, expert_values: FloatTensor<Self>, weights: FloatTensor<Self>, gradient: FloatTensor<Self>, strategy: MoeCombineGradientStrategy, selection: MoeCombineSelection, ) -> Result<MoeCombineBackward<Self>, Self::MoeError>

Original combine kernels with only requested actual expert/weight derivatives.
Source§

impl<R, F, I, BT> MoeOps for DeviceBackend<R, F, I, BT>

Source§

type MoeError = MoeError

Original native or first-order contract error.
Source§

type MoeState = NativeMoeState<R>

Actual opaque forward/dispatch state; contains original native handles, not host model copies.
Source§

fn moe_selected_weights( logits: FloatTensor<Self>, indices: IntTensor<Self>, options: MoeRouterWeightOptions, ) -> Result<FloatTensor<Self>, Self::MoeError>

FP32 continuous weights for explicitly supplied integer selections. Invalid indices retain the original bounds-safe whole-row NaN semantics.
Source§

fn moe_selected_weights_backward( logits: FloatTensor<Self>, indices: IntTensor<Self>, gradient: FloatTensor<Self>, options: MoeRouterWeightOptions, ) -> Result<FloatTensor<Self>, Self::MoeError>

Original source-logits storage VJP for fixed selections; gradient weights are FP32.
Source§

fn moe_forward( input: FloatTensor<Self>, logits: FloatTensor<Self>, correction_bias: Option<FloatTensor<Self>>, gate: FloatTensor<Self>, up: FloatTensor<Self>, down: FloatTensor<Self>, options: MoeOptions, ) -> Result<(FloatTensor<Self>, Self::MoeState), Self::MoeError>

Original top-k/group selection -> FP32 continuous weights -> native dispatch -> original SwiGLU experts -> ordered combine. No tokens are capacity-dropped.
Source§

fn moe_forward_selected( input: FloatTensor<Self>, logits: FloatTensor<Self>, correction_bias: Option<FloatTensor<Self>>, gate: FloatTensor<Self>, up: FloatTensor<Self>, down: FloatTensor<Self>, options: MoeOptions, selection: MoeGradientSelection, ) -> Result<(FloatTensor<Self>, Self::MoeState), Self::MoeError>

Same original forward with an explicit backward-output requirement. A native implementation may omit expert activation caches when no expert/input VJP is required. Requesting an unavailable expert VJP from that state must error. The compatibility default retains the original complete forward state.
Source§

fn moe_inference( input: FloatTensor<Self>, logits: FloatTensor<Self>, correction_bias: Option<FloatTensor<Self>>, gate: FloatTensor<Self>, up: FloatTensor<Self>, down: FloatTensor<Self>, options: MoeOptions, ) -> Result<FloatTensor<Self>, Self::MoeError>

Same original continuous weight policy and native expert output, without retained backward caches.
Source§

fn moe_route_indices(state: &Self::MoeState) -> IntTensor<Self>

Actual original discrete U32 expert IDs, with no host readback or differentiable selection claim.
Source§

fn moe_backward( state: Self::MoeState, gradient: FloatTensor<Self>, ) -> Result<MoeBackward<Self>, Self::MoeError>

Original first-order input/logits/expert derivatives. Expert gradients retain native FP32 accumulation/output; ordinary AD casts them at the parent-storage boundary.
Source§

fn moe_backward_selected( state: Self::MoeState, gradient: FloatTensor<Self>, selection: MoeGradientSelection, ) -> Result<MoeBackwardSelected<Self>, Self::MoeError>

Explicit requested VJP outputs. Device implementations can omit unneeded native launches and allocations; the compatibility default retains exact full-backward behavior.
Source§

impl<R, F, I, BT> MoeReceivedOps for DeviceBackend<R, F, I, BT>

Source§

type MoeReceivedState = NativeMoeReceivedState<R>

Private actual validated grouping, inverse permutation and original expert VJP cache.
Source§

fn moe_received_forward( input: FloatTensor<Self>, global_ids: IntTensor<Self>, gate: FloatTensor<Self>, up: FloatTensor<Self>, down: FloatTensor<Self>, options: MoeReceivedOptions, selection: MoeReceivedSelection, ) -> Result<(FloatTensor<Self>, Self::MoeReceivedState), Self::MoeError>

Sort received U32 assignments locally, execute original experts and restore receive order. Empty expert owners participate with real empty local cubes and zero received rows.
Source§

fn moe_received_backward( state: Self::MoeReceivedState, gradient: FloatTensor<Self>, selection: MoeReceivedSelection, ) -> Result<MoeReceivedBackward<Self>, Self::MoeError>

Original expert VJP and inverse COPY mapping; local cube gradients retain FP32.
Source§

fn moe_received_inference( input: Self::FloatTensorPrimitive, global_ids: Self::IntTensorPrimitive, gate: Self::FloatTensorPrimitive, up: Self::FloatTensorPrimitive, down: Self::FloatTensorPrimitive, options: MoeReceivedOptions, ) -> Result<Self::FloatTensorPrimitive, Self::MoeError>

Same original values without retained caches unless actual AD parents require derivatives.
Source§

impl<R, F, I, BT> NativeSwiGluOps for DeviceBackend<R, F, I, BT>

Source§

type SwiGluError = MoeError

Original native activation or first-order differentiation failure.
Source§

fn native_swiglu( gate: FloatTensor<Self>, up: FloatTensor<Self>, ) -> Result<FloatTensor<Self>, Self::SwiGluError>

Round stored SiLU before multiplication, retaining original activation storage and geometry.
Source§

fn native_swiglu_backward( gate: FloatTensor<Self>, up: FloatTensor<Self>, gradient: FloatTensor<Self>, selection: NativeSwiGluSelection, ) -> Result<NativeSwiGluBackward<Self>, Self::SwiGluError>

Actual original selected first-order input VJPs, including intermediate storage rounding.
Source§

impl<R, F, I, BT> QTensorOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

fn q_from_data(data: TensorData, device: &Device<Self>) -> QuantizedTensor<Self>

Creates a new tensor from the data structure. Read more
Source§

fn quantize( tensor: FloatTensor<Self>, scheme: &QuantScheme, qparams: QuantizationParametersPrimitive<Self>, ) -> QuantizedTensor<Self>

Convert the tensor to a lower precision data type based on the quantization scheme and parameters.
Source§

fn dequantize( tensor: QuantizedTensor<Self>, dtype: FloatDType, ) -> FloatTensor<Self>

Convert the tensor back to a higher precision data type.
Source§

fn q_device(tensor: &QuantizedTensor<Self>) -> Device<Self>

Gets the device of the tensor. Read more
Source§

fn q_to_device( tensor: QuantizedTensor<Self>, device: &Device<Self>, ) -> QuantizedTensor<Self>

Moves the tensor to the given device. Read more
Source§

fn q_reshape( tensor: QuantizedTensor<Self>, shape: Shape, ) -> QuantizedTensor<Self>

Reshapes a tensor. Read more
Source§

async fn q_into_data( tensor: QuantizedTensor<Self>, ) -> Result<TensorData, ExecutionError>

Converts the tensor to a data structure. Read more
Source§

fn q_swap_dims( tensor: QuantizedTensor<Self>, dim1: usize, dim2: usize, ) -> QuantizedTensor<Self>

Swaps two dimensions of a tensor. Read more
Source§

fn q_permute( tensor: QuantizedTensor<Self>, axes: &[usize], ) -> QuantizedTensor<Self>

Permutes the dimensions of a tensor. Read more
Source§

fn q_flip( tensor: QuantizedTensor<Self>, axes: &[usize], ) -> QuantizedTensor<Self>

Reverse the order of elements in a tensor along the given axes. Read more
Source§

fn q_gather( dim: usize, tensor: QuantizedTensor<Self>, indices: IntTensor<Self>, ) -> QuantizedTensor<Self>

Gather elements from a tensor. Read more
Source§

fn q_select( tensor: QuantizedTensor<Self>, dim: usize, indices: IntTensor<Self>, ) -> QuantizedTensor<Self>

Select tensor elements along the given dimension corresponding for the given indices. Read more
Source§

fn q_slice( tensor: QuantizedTensor<Self>, slices: &[Slice], ) -> QuantizedTensor<Self>

Select tensor elements corresponding to the given slices. Read more
Source§

fn q_expand( tensor: QuantizedTensor<Self>, shape: Shape, ) -> QuantizedTensor<Self>

Broadcasts the tensor to the given shape.
Source§

fn q_matmul( lhs: TensorPrimitive<Self>, rhs: TensorPrimitive<Self>, ) -> TensorPrimitive<Self>

Multiplies two tensors together using matrix multiplication. Read more
Source§

fn quantize_dynamic( tensor: <B as BackendTypes>::FloatTensorPrimitive, scheme: &QuantScheme, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Dynamically convert the tensor to a lower precision data type based on the quantization scheme.
Source§

fn quantize_dynamic_with_precision( tensor: <B as BackendTypes>::FloatTensorPrimitive, scheme: &QuantScheme, calibration_dtype: FloatDType, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Explicit calibration arithmetic independent of the original input and packed parameter storage. Quantizes the original input rather than its calibration copy, retaining the selected scheme.
Source§

fn q_detach( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Detaches a tensor from the computation graph.
Source§

fn q_set_require_grad( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, _require_grad: bool, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Sets the require_grad flag of a tensor.
Source§

fn q_is_require_grad( _tensor: &<B as BackendTypes>::QuantizedTensorPrimitive, ) -> bool

Returns the require_grad flag of a tensor.
Source§

fn q_transpose( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Transposes a tensor. Read more
Source§

fn q_repeat_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, times: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Repeat the tensor along the given dimension. Read more
Source§

fn q_add( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Adds two tensors together. Read more
Source§

fn q_add_scalar( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: Scalar, ) -> TensorPrimitive<B>

Adds a scalar to a tensor. Read more
Source§

fn q_clamp_min( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, min: Scalar, ) -> TensorPrimitive<B>

Clamps a tensor under a minimum value. Read more
Source§

fn q_clamp_max( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, max: Scalar, ) -> TensorPrimitive<B>

Clamps a tensor over a maximum value. Read more
Source§

fn q_clamp( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, min: Scalar, max: Scalar, ) -> TensorPrimitive<B>

Clamps a tensor between a minimum and maximum value. Read more
Source§

fn q_sub( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Subtracts two tensors. Read more
Source§

fn q_sub_scalar( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: Scalar, ) -> TensorPrimitive<B>

Subtracts a scalar from a tensor. Read more
Source§

fn q_mul( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Multiplies two tensors together element-wise.
Source§

fn q_mul_scalar( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: Scalar, ) -> TensorPrimitive<B>

Multiplies a tensor by a scalar. Read more
Source§

fn q_div( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Divides two tensors element-wise. Read more
Source§

fn q_div_scalar( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: Scalar, ) -> TensorPrimitive<B>

Divides a tensor by a scalar. Read more
Source§

fn q_matmul_default( lhs: TensorPrimitive<B>, rhs: TensorPrimitive<B>, ) -> TensorPrimitive<B>

Existing dequantized arithmetic and propagation contract for unsupported native combinations.
Source§

fn q_neg( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Negates a tensor element-wise.
Source§

fn q_recip( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Calculates the reciprocals element-wise
Source§

fn q_sum( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Sum of all elements in a tensor. Read more
Source§

fn q_sum_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Sum of all elements in a tensor along a dimension. Read more
Source§

fn q_prod( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Product of all elements in a tensor. Read more
Source§

fn q_prod_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Product of all elements in a tensor along a dimension. Read more
Source§

fn q_mean( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Mean of all elements in a tensor. Read more
Source§

fn q_mean_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Mean of all elements in a tensor along a dimension. Read more
Source§

fn q_cumsum( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Computes the cumulative sum of elements along a dimension. Read more
Source§

fn q_cumprod( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Computes the cumulative product of elements along a dimension. Read more
Source§

fn q_cummin( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Computes the cumulative minimum of elements along a dimension. Read more
Source§

fn q_cummax( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> TensorPrimitive<B>

Computes the cumulative maximum of elements along a dimension. Read more
Source§

fn q_exp( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with exponential values. Read more
Source§

fn q_log( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with natural logarithm values. Read more
Source§

fn q_log1p( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with logarithm values of (1 + Xi). Read more
Source§

fn q_powf( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Element-wise power with another tensor. Read more
Source§

fn q_powi( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: <B as BackendTypes>::IntTensorPrimitive, ) -> TensorPrimitive<B>

Element-wise power with an IntTensor. Read more
Source§

fn q_powi_scalar( lhs: <B as BackendTypes>::QuantizedTensorPrimitive, rhs: Scalar, ) -> TensorPrimitive<B>

Element-wise power with an int scalar. Read more
Source§

fn q_powf_scalar( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, value: Scalar, ) -> TensorPrimitive<B>

Element-wise power with a float scalar. Read more
Source§

fn q_sqrt( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with square root values. Read more
Source§

fn q_abs( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Returns a new tensor with absolute values. Read more
Source§

fn q_cos( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with cosine values. Read more
Source§

fn q_sin( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with sine values. Read more
Source§

fn q_tan( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with tangent values. Read more
Source§

fn q_cosh( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with hyperbolic cosine values. Read more
Source§

fn q_sinh( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with hyperbolic sine values. Read more
Source§

fn q_tanh( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with hyperbolic tangent values. Read more
Source§

fn q_erf( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> TensorPrimitive<B>

Returns a new tensor with the error function values. Read more
Source§

fn q_cat( tensors: Vec<<B as BackendTypes>::QuantizedTensorPrimitive>, dim: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Concatenates tensors along a dimension. Read more
Source§

fn q_argmax( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Gets the indices of the maximum elements of a tensor along an axis. Read more
Source§

fn q_argtopk( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, k: usize, out_dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Gets the indices of the k maximum elements of a tensor along an axis. If two elements are equals, order them by the lowest indices Read more
Source§

fn q_topk( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, k: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the values of the k maximum elements of a tensor along an axis. Read more
Source§

fn q_argmin( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Gets the indices of the minimum elements of a tensor along an axis. Read more
Source§

fn q_max( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the maximum element of a tensor. Read more
Source§

fn q_max_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the maximum elements of a tensor along an axis. Read more
Source§

fn q_max_dim_with_indices( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: IntDType, ) -> (<B as BackendTypes>::QuantizedTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the maximum elements of a tensor along an axis and their indices. Read more
Source§

fn q_min( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the minimum element of a tensor. Read more
Source§

fn q_min_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the minimum elements of a tensor along an axis. Read more
Source§

fn q_min_dim_with_indices( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: IntDType, ) -> (<B as BackendTypes>::QuantizedTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Gets the minimum elements of a tensor along an axis and their indices. Read more
Source§

fn q_max_abs( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the maximum element of a tensor. Read more
Source§

fn q_max_abs_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Gets the maximum elements of a tensor along an axis. Read more
Source§

fn q_any( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the tensor evaluates to True. Read more
Source§

fn q_any_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if any element in the float tensor evaluates to True along a given dimension dim. Read more
Source§

fn q_all( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the tensor evaluate to True. Read more
Source§

fn q_all_dim( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, out_dtype: BoolStore, ) -> <B as BackendTypes>::BoolTensorPrimitive

Tests if all elements in the tensor evaluate to True along a given dimension dim. Read more
Source§

fn q_sort( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, descending: bool, ) -> <B as BackendTypes>::QuantizedTensorPrimitive

Sort the elements of the input tensor by value in along a given dimension. Read more
Source§

fn q_sort_with_indices( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, descending: bool, out_dtype: IntDType, ) -> (<B as BackendTypes>::QuantizedTensorPrimitive, <B as BackendTypes>::IntTensorPrimitive)

Sort the elements of the input tensor by value in along a given dimension. Read more
Source§

fn q_argsort( tensor: <B as BackendTypes>::QuantizedTensorPrimitive, dim: usize, descending: bool, out_dtype: IntDType, ) -> <B as BackendTypes>::IntTensorPrimitive

Returns the indices that sort the elements of the input tensor by value along a given dimension. Read more
Source§

impl<R, F, I, BT> TransactionOps<DeviceBackend<R, F, I, BT>> for DeviceBackend<R, F, I, BT>

Source§

async fn tr_execute( transaction: TransactionPrimitive<Self>, ) -> Result<TransactionPrimitiveData, ExecutionError>

Executes a transaction and return its data.

Auto Trait Implementations§

§

impl<R, F, I, BT> Freeze for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> RefUnwindSafe for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> Send for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> Sync for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> Unpin for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> UnsafeUnpin for DeviceBackend<R, F, I, BT>

§

impl<R, F, I, BT> UnwindSafe for DeviceBackend<R, F, I, BT>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<C> CloneExpand for C
where C: Clone,

Source§

fn __expand_clone_method(&self, _scope: &mut Scope) -> C

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<T> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more