InProcessProvider

Struct InProcessProvider 

Source
pub struct InProcessProvider { /* private fields */ }

Implementations§

Source§

impl InProcessProvider

Source

pub const fn new() -> Self

Trait Implementations§

Source§

impl AccelProvider for InProcessProvider

Source§

fn device_id(&self) -> u32

Source§

fn gather_linear( &self, source: &GpuTensorHandle, indices: &[u32], output_shape: &[usize], ) -> Result<GpuTensorHandle>

Gather elements from source at the provided zero-based linear indices, materialising a dense tensor with the specified output_shape.
Source§

fn scatter_linear( &self, target: &GpuTensorHandle, indices: &[u32], values: &GpuTensorHandle, ) -> Result<()>

Scatter the contents of values into target at the provided zero-based linear indices. Read more
Source§

fn precision(&self) -> ProviderPrecision

Source§

fn upload(&self, host: &HostTensorView<'_>) -> Result<GpuTensorHandle>

Source§

fn download(&self, h: &GpuTensorHandle) -> Result<HostTensorOwned>

Source§

fn free(&self, h: &GpuTensorHandle) -> Result<()>

Source§

fn device_info(&self) -> String

Source§

fn device_info_struct(&self) -> ApiDeviceInfo

Structured device information (optional to override). Default adapts from device_info().
Source§

fn telemetry_snapshot(&self) -> ProviderTelemetry

Returns a snapshot of provider telemetry counters if supported.
Source§

fn reset_telemetry(&self)

Reset all telemetry counters maintained by the provider, if supported.
Source§

fn sort_rows( &self, handle: &GpuTensorHandle, columns: &[SortRowsColumnSpec], comparison: SortComparison, ) -> Result<SortResult>

Source§

fn polyder_single( &self, polynomial: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Differentiate a polynomial represented as a vector of coefficients.
Source§

fn polyder_product( &self, p: &GpuTensorHandle, q: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Apply the product rule to polynomials p and q.
Source§

fn polyder_quotient( &self, u: &GpuTensorHandle, v: &GpuTensorHandle, ) -> Result<ProviderPolyderQuotient>

Apply the quotient rule to polynomials u and v.
Source§

fn polyint( &self, polynomial: &GpuTensorHandle, constant: f64, ) -> Result<GpuTensorHandle>

Integrate a polynomial represented as a vector of coefficients and append a constant term.
Source§

fn diag_from_vector( &self, vector: &GpuTensorHandle, offset: isize, ) -> Result<GpuTensorHandle>

Construct a diagonal matrix from a vector-like tensor. offset matches MATLAB semantics.
Source§

fn diag_extract( &self, matrix: &GpuTensorHandle, offset: isize, ) -> Result<GpuTensorHandle>

Extract a diagonal from a matrix-like tensor. The result is always a column vector.
Source§

fn tril( &self, handle: &GpuTensorHandle, offset: isize, ) -> Result<GpuTensorHandle>

Apply a lower-triangular mask to the first two dimensions of a tensor.
Source§

fn triu( &self, handle: &GpuTensorHandle, offset: isize, ) -> Result<GpuTensorHandle>

Apply an upper-triangular mask to the first two dimensions of a tensor.
Source§

fn issymmetric( &self, matrix: &GpuTensorHandle, kind: ProviderSymmetryKind, tolerance: f64, ) -> Result<bool>

Determine if a matrix is symmetric (or skew-symmetric) without gathering it to the host.
Source§

fn ishermitian( &self, matrix: &GpuTensorHandle, kind: ProviderHermitianKind, tolerance: f64, ) -> Result<bool>

Determine if a matrix is Hermitian (or skew-Hermitian) without gathering it to the host.
Source§

fn bandwidth(&self, matrix: &GpuTensorHandle) -> Result<ProviderBandwidth>

Inspect the bandwidth of a matrix without gathering it back to the host.
Source§

fn sym_rcm(&self, matrix: &GpuTensorHandle) -> Result<Vec<usize>>

Compute the symmetric reverse Cuthill-McKee permutation for the matrix. Read more
Source§

fn read_scalar(&self, h: &GpuTensorHandle, linear_index: usize) -> Result<f64>

Read a single scalar at linear index from a device tensor, returning it as f64.
Source§

fn zeros(&self, shape: &[usize]) -> Result<GpuTensorHandle>

Allocate a zero-initialised tensor with the provided shape on the device.
Source§

fn zeros_like(&self, prototype: &GpuTensorHandle) -> Result<GpuTensorHandle>

Allocate a zero-initialised tensor matching the prototype tensor.
Source§

fn ones(&self, shape: &[usize]) -> Result<GpuTensorHandle>

Allocate a one-initialised tensor with the provided shape on the device.
Source§

fn ones_like(&self, prototype: &GpuTensorHandle) -> Result<GpuTensorHandle>

Allocate a one-initialised tensor matching the prototype tensor.
Source§

fn eye(&self, shape: &[usize]) -> Result<GpuTensorHandle>

Allocate an identity tensor with ones along the leading diagonal of the first two axes.
Source§

fn eye_like(&self, prototype: &GpuTensorHandle) -> Result<GpuTensorHandle>

Allocate an identity tensor matching the prototype tensor’s shape.
Source§

fn linspace( &self, start: f64, stop: f64, count: usize, ) -> Result<GpuTensorHandle>

Source§

fn random_uniform(&self, shape: &[usize]) -> Result<GpuTensorHandle>

Allocate a tensor filled with random values drawn from U(0, 1).
Source§

fn random_normal(&self, shape: &[usize]) -> Result<GpuTensorHandle>

Allocate a tensor filled with standard normal (mean 0, stddev 1) random values.
Source§

fn set_rng_state(&self, state: u64) -> Result<()>

Set the provider RNG state to align with the host RNG.
Source§

fn fspecial(&self, request: &FspecialRequest) -> Result<GpuTensorHandle>

Generate a 2-D correlation kernel matching MATLAB’s fspecial builtin.
Source§

fn imfilter( &self, image: &GpuTensorHandle, kernel: &GpuTensorHandle, options: &ImfilterOptions, ) -> Result<GpuTensorHandle>

Apply an N-D correlation/convolution with padding semantics matching MATLAB’s imfilter.
Source§

fn random_integer_range( &self, lower: i64, upper: i64, shape: &[usize], ) -> Result<GpuTensorHandle>

Allocate a tensor filled with random integers over an inclusive range.
Source§

fn random_permutation(&self, n: usize, k: usize) -> Result<GpuTensorHandle>

Allocate a random permutation of 1..=n, returning the first k elements.
Source§

fn random_permutation_like( &self, _prototype: &GpuTensorHandle, n: usize, k: usize, ) -> Result<GpuTensorHandle>

Allocate a random permutation matching the prototype residency.
Source§

fn covariance( &self, matrix: &GpuTensorHandle, second: Option<&GpuTensorHandle>, weights: Option<&GpuTensorHandle>, options: &CovarianceOptions, ) -> Result<GpuTensorHandle>

Compute a covariance matrix across the columns of matrix.
Source§

fn corrcoef( &self, matrix: &GpuTensorHandle, options: &CorrcoefOptions, ) -> Result<GpuTensorHandle>

Compute a correlation coefficient matrix across the columns of matrix.
Source§

fn elem_add( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_mul( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_sub( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_div( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_pow( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_ne( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_ge( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_le( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_lt( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_gt( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_eq( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn logical_and( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn logical_or( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn logical_xor( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn logical_not(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn logical_isreal(&self, a: &GpuTensorHandle) -> Result<bool>

Source§

fn logical_isfinite(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn logical_isnan(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn logical_isinf(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn elem_hypot( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn elem_atan2( &self, y: &GpuTensorHandle, x: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn unary_sin(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_gamma(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_factorial(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_asinh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_sinh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_cosh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_asin(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_acos(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_acosh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_tan(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_tanh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_atan(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_atanh(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_ceil(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_floor(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_round(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_fix(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_cos(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_abs(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_exp(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_log(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_sqrt(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_double(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_single(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn unary_pow2(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn pow2_scale( &self, mantissa: &GpuTensorHandle, exponent: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn scalar_add( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn scalar_sub( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn scalar_mul( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn scalar_div( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn scalar_rsub( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn scalar_rdiv( &self, a: &GpuTensorHandle, scalar: f64, ) -> Result<GpuTensorHandle>

Source§

fn transpose(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn conv1d( &self, signal: &GpuTensorHandle, kernel: &GpuTensorHandle, options: ProviderConv1dOptions, ) -> Result<GpuTensorHandle>

Source§

fn conv2d( &self, signal: &GpuTensorHandle, kernel: &GpuTensorHandle, mode: ProviderConvMode, ) -> Result<GpuTensorHandle>

Source§

fn iir_filter( &self, b: &GpuTensorHandle, a: &GpuTensorHandle, x: &GpuTensorHandle, options: ProviderIirFilterOptions, ) -> Result<ProviderIirFilterResult>

Source§

fn permute( &self, handle: &GpuTensorHandle, order: &[usize], ) -> Result<GpuTensorHandle>

Reorder tensor dimensions according to order, expressed as zero-based indices.
Source§

fn flip( &self, handle: &GpuTensorHandle, axes: &[usize], ) -> Result<GpuTensorHandle>

Source§

fn circshift( &self, handle: &GpuTensorHandle, shifts: &[isize], ) -> Result<GpuTensorHandle>

Source§

fn diff_dim( &self, handle: &GpuTensorHandle, order: usize, dim: usize, ) -> Result<GpuTensorHandle>

Source§

fn unique( &self, handle: &GpuTensorHandle, options: &UniqueOptions, ) -> Result<UniqueResult>

Source§

fn setdiff( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, options: &SetdiffOptions, ) -> Result<SetdiffResult>

Source§

fn repmat( &self, handle: &GpuTensorHandle, reps: &[usize], ) -> Result<GpuTensorHandle>

Source§

fn dot( &self, lhs: &GpuTensorHandle, rhs: &GpuTensorHandle, dim: Option<usize>, ) -> Result<GpuTensorHandle>

Source§

fn reduce_sum(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_sum_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<GpuTensorHandle>

Source§

fn reduce_prod(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_prod_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<GpuTensorHandle>

Source§

fn reduce_mean(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_mean_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<GpuTensorHandle>

Source§

fn reduce_any( &self, a: &GpuTensorHandle, omit_nan: bool, ) -> Result<GpuTensorHandle>

Source§

fn reduce_any_dim( &self, a: &GpuTensorHandle, dim: usize, omit_nan: bool, ) -> Result<GpuTensorHandle>

Source§

fn reduce_all( &self, a: &GpuTensorHandle, omit_nan: bool, ) -> Result<GpuTensorHandle>

Source§

fn reduce_all_dim( &self, a: &GpuTensorHandle, dim: usize, omit_nan: bool, ) -> Result<GpuTensorHandle>

Source§

fn reduce_median(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_median_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<GpuTensorHandle>

Source§

fn reduce_min(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_min_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<ReduceDimResult>

Source§

fn reduce_max(&self, a: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn reduce_max_dim( &self, a: &GpuTensorHandle, dim: usize, ) -> Result<ReduceDimResult>

Source§

fn cumsum_scan( &self, _input: &GpuTensorHandle, _dim: usize, _direction: ProviderScanDirection, _nan_mode: ProviderNanMode, ) -> Result<GpuTensorHandle>

Source§

fn cummin_scan( &self, _input: &GpuTensorHandle, _dim: usize, _direction: ProviderScanDirection, _nan_mode: ProviderNanMode, ) -> Result<ProviderCumminResult>

Source§

fn find( &self, a: &GpuTensorHandle, limit: Option<usize>, direction: FindDirection, ) -> Result<ProviderFindResult>

Source§

fn lu(&self, a: &GpuTensorHandle) -> Result<ProviderLuResult>

Source§

fn chol(&self, a: &GpuTensorHandle, lower: bool) -> Result<ProviderCholResult>

Source§

fn qr( &self, handle: &GpuTensorHandle, options: ProviderQrOptions, ) -> Result<ProviderQrResult>

Source§

fn matmul( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn matmul_epilogue( &self, a: &GpuTensorHandle, b: &GpuTensorHandle, ep: &MatmulEpilogue, ) -> Result<GpuTensorHandle>

Optional: matrix multiplication with an epilogue applied before store. Read more
Source§

fn matmul_power_step( &self, lhs: &GpuTensorHandle, rhs: &GpuTensorHandle, ep: &PowerStepEpilogue, ) -> Result<GpuTensorHandle>

Source§

fn image_normalize( &self, input: &GpuTensorHandle, desc: &ImageNormalizeDescriptor, ) -> Result<GpuTensorHandle>

Source§

fn pagefun(&self, _request: &PagefunRequest) -> Result<GpuTensorHandle>

Source§

fn linsolve( &self, lhs: &GpuTensorHandle, rhs: &GpuTensorHandle, options: &ProviderLinsolveOptions, ) -> Result<ProviderLinsolveResult>

Source§

fn inv( &self, matrix: &GpuTensorHandle, _options: ProviderInvOptions, ) -> Result<GpuTensorHandle>

Source§

fn pinv( &self, matrix: &GpuTensorHandle, options: ProviderPinvOptions, ) -> Result<GpuTensorHandle>

Source§

fn cond( &self, matrix: &GpuTensorHandle, norm: ProviderCondNorm, ) -> Result<GpuTensorHandle>

Source§

fn norm( &self, tensor: &GpuTensorHandle, order: ProviderNormOrder, ) -> Result<GpuTensorHandle>

Source§

fn rank( &self, matrix: &GpuTensorHandle, tolerance: Option<f64>, ) -> Result<GpuTensorHandle>

Source§

fn rcond(&self, matrix: &GpuTensorHandle) -> Result<GpuTensorHandle>

Source§

fn mldivide( &self, lhs: &GpuTensorHandle, rhs: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn mrdivide( &self, lhs: &GpuTensorHandle, rhs: &GpuTensorHandle, ) -> Result<GpuTensorHandle>

Source§

fn eig( &self, _a: &GpuTensorHandle, _compute_left: bool, ) -> Result<ProviderEigResult>

Source§

fn sub2ind( &self, dims: &[usize], strides: &[usize], inputs: &[&GpuTensorHandle], scalar_mask: &[bool], len: usize, output_shape: &[usize], ) -> Result<GpuTensorHandle>

Source§

fn fused_elementwise( &self, _shader: &str, _inputs: &[GpuTensorHandle], _output_shape: &[usize], _len: usize, ) -> Result<GpuTensorHandle>

Source§

fn fill(&self, shape: &[usize], value: f64) -> Result<GpuTensorHandle, Error>

Allocate a tensor filled with a constant value on the device.
Source§

fn fill_like( &self, prototype: &GpuTensorHandle, value: f64, ) -> Result<GpuTensorHandle, Error>

Allocate a tensor filled with a constant value, matching a prototype’s residency.
Source§

fn meshgrid( &self, _axes: &[MeshgridAxisView<'_>], ) -> Result<ProviderMeshgridResult, Error>

Construct MATLAB-style coordinate grids from axis vectors.
Source§

fn polyval( &self, _coefficients: &GpuTensorHandle, _points: &GpuTensorHandle, _options: &ProviderPolyvalOptions, ) -> Result<GpuTensorHandle, Error>

Evaluate a polynomial expressed by coefficients at each element in points.
Source§

fn polyfit( &self, _x: &GpuTensorHandle, _y: &GpuTensorHandle, _degree: usize, _weights: Option<&GpuTensorHandle>, ) -> Result<ProviderPolyfitResult, Error>

Fit a polynomial of degree degree to (x, y) samples. Optional weights must match x.
Source§

fn random_uniform_like( &self, prototype: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Allocate a tensor filled with random values matching the prototype shape.
Source§

fn random_normal_like( &self, prototype: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Allocate a tensor of standard normal values matching a prototype’s shape.
Source§

fn stochastic_evolution( &self, _state: &GpuTensorHandle, _drift: f64, _scale: f64, _steps: u32, ) -> Result<GpuTensorHandle, Error>

Source§

fn random_integer_like( &self, prototype: &GpuTensorHandle, lower: i64, upper: i64, ) -> Result<GpuTensorHandle, Error>

Allocate a random integer tensor matching the prototype shape.
Source§

fn elem_max( &self, _a: &GpuTensorHandle, _b: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Source§

fn elem_min( &self, _a: &GpuTensorHandle, _b: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Source§

fn logical_islogical(&self, a: &GpuTensorHandle) -> Result<bool, Error>

Source§

fn unary_angle(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_imag(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_real(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_conj(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_sign(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_expm1(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_log2(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_log10(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn unary_log1p(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn scalar_max( &self, _a: &GpuTensorHandle, _scalar: f64, ) -> Result<GpuTensorHandle, Error>

Source§

fn scalar_min( &self, _a: &GpuTensorHandle, _scalar: f64, ) -> Result<GpuTensorHandle, Error>

Source§

fn sort_dim( &self, _a: &GpuTensorHandle, _dim: usize, _order: SortOrder, _comparison: SortComparison, ) -> Result<SortResult, Error>

Source§

fn syrk(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn take_matmul_sources( &self, _product: &GpuTensorHandle, ) -> Option<(GpuTensorHandle, GpuTensorHandle)>

Source§

fn qr_power_iter( &self, product: &GpuTensorHandle, _product_lhs: Option<&GpuTensorHandle>, q_handle: &GpuTensorHandle, options: &ProviderQrOptions, ) -> Result<Option<ProviderQrPowerIterResult>, Error>

Source§

fn fft_dim( &self, _handle: &GpuTensorHandle, _len: Option<usize>, _dim: usize, ) -> Result<GpuTensorHandle, Error>

Perform an in-place FFT along a zero-based dimension, optionally padding/truncating to len.
Source§

fn ifft_dim( &self, _handle: &GpuTensorHandle, _len: Option<usize>, _dim: usize, ) -> Result<GpuTensorHandle, Error>

Source§

fn union( &self, _a: &GpuTensorHandle, _b: &GpuTensorHandle, _options: &UnionOptions, ) -> Result<UnionResult, Error>

Source§

fn ismember( &self, _a: &GpuTensorHandle, _b: &GpuTensorHandle, _options: &IsMemberOptions, ) -> Result<IsMemberResult, Error>

Source§

fn reshape( &self, handle: &GpuTensorHandle, new_shape: &[usize], ) -> Result<GpuTensorHandle, Error>

Source§

fn cat( &self, _dim: usize, _inputs: &[GpuTensorHandle], ) -> Result<GpuTensorHandle, Error>

Concatenate the provided tensors along the 1-based dimension dim.
Source§

fn kron( &self, _a: &GpuTensorHandle, _b: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Compute the Kronecker product of two tensors, matching MATLAB semantics.
Source§

fn reduce_nnz(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Source§

fn reduce_nnz_dim( &self, _a: &GpuTensorHandle, _dim: usize, ) -> Result<GpuTensorHandle, Error>

Source§

fn reduce_mean_nd( &self, _a: &GpuTensorHandle, _dims_zero_based: &[usize], ) -> Result<GpuTensorHandle, Error>

Reduce mean across multiple zero-based dimensions in one device pass.
Source§

fn reduce_moments_nd( &self, _a: &GpuTensorHandle, _dims_zero_based: &[usize], ) -> Result<ProviderMoments2, Error>

Reduce moments across multiple zero-based dimensions in one device pass. Returns mean (E[x]) and mean of squares (E[x^2]).
Source§

fn reduce_std( &self, _a: &GpuTensorHandle, _normalization: ProviderStdNormalization, _nan_mode: ProviderNanMode, ) -> Result<GpuTensorHandle, Error>

Source§

fn reduce_std_dim( &self, _a: &GpuTensorHandle, _dim: usize, _normalization: ProviderStdNormalization, _nan_mode: ProviderNanMode, ) -> Result<GpuTensorHandle, Error>

Source§

fn cumprod_scan( &self, _input: &GpuTensorHandle, _dim: usize, _direction: ProviderScanDirection, _nan_mode: ProviderNanMode, ) -> Result<GpuTensorHandle, Error>

Source§

fn cummax_scan( &self, _input: &GpuTensorHandle, _dim: usize, _direction: ProviderScanDirection, _nan_mode: ProviderNanMode, ) -> Result<ProviderCumminResult, Error>

Source§

fn map_nan_to_zero( &self, _a: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Build a numeric tensor where NaNs in a are replaced with 0.0 (device side).
Source§

fn not_nan_mask(&self, _a: &GpuTensorHandle) -> Result<GpuTensorHandle, Error>

Build a numeric mask tensor with 1.0 where value is not NaN and 0.0 where value is NaN.
Source§

fn fused_reduction( &self, _shader: &str, _inputs: &[GpuTensorHandle], _output_shape: &[usize], _reduce_len: usize, _num_slices: usize, _workgroup_size: u32, _flavor: ReductionFlavor, ) -> Result<GpuTensorHandle, Error>

Generic fused reduction entrypoint. Read more
Source§

fn warmup(&self)

Optionally pre-compile commonly used pipelines to amortize first-dispatch costs.
Source§

fn fused_cache_counters(&self) -> (u64, u64)

Returns (cache_hits, cache_misses) for fused pipeline cache, if supported.
Source§

fn last_warmup_millis(&self) -> Option<u64>

Returns the duration of the last provider warmup in milliseconds, if known.
Source§

fn default_reduction_workgroup_size(&self) -> u32

Default reduction workgroup size the provider prefers.
Source§

fn two_pass_threshold(&self) -> usize

Threshold above which provider will prefer two-pass reduction.
Source§

fn reduction_two_pass_mode(&self) -> ReductionTwoPassMode

Current two-pass mode preference (auto/forced on/off).
Source§

fn scatter_column( &self, _matrix: &GpuTensorHandle, _col_index: usize, _values: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Fast-path: write a GPU column in a matrix from a GPU vector, returning a new handle. Expected: values.shape == [rows, 1] (or [rows]) and col_index < cols.
Source§

fn scatter_row( &self, _matrix: &GpuTensorHandle, _row_index: usize, _values: &GpuTensorHandle, ) -> Result<GpuTensorHandle, Error>

Fast-path: write a GPU row in a matrix from a GPU vector, returning a new handle. Expected: values.shape == [1, cols] (or [cols]) and row_index < rows.
Source§

fn supports_ind2sub(&self) -> bool

Returns true if the provider offers a device-side ind2sub implementation.
Source§

fn ind2sub( &self, _dims: &[usize], _strides: &[usize], _indices: &GpuTensorHandle, _total: usize, _len: usize, _output_shape: &[usize], ) -> Result<Vec<GpuTensorHandle>, Error>

Convert linear indices into per-dimension subscripts on the device.
Source§

impl Default for InProcessProvider

Source§

fn default() -> Self

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,