#[non_exhaustive]pub enum GpuExtensionCapability {
CubeClKernel,
NativeModule,
RuntimeCompilation,
RawStream,
SameDeviceAsyncCopy,
PeerCopy,
}Expand description
Capability a GPU extension may query before using a provider-specific path.
CudaExecSession::supports reports
whether the capability is plausibly available on the current session. This is
orthogonal to the primitive OperationCapability
matrix: extension capabilities describe what the extension seam itself can
do, not which tensor operations the backend implements.
§Examples
use tenferro_gpu::cuda::GpuExtensionCapability;
let capability = GpuExtensionCapability::RawStream;
assert!(matches!(capability, GpuExtensionCapability::RawStream));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
CubeClKernel
Launch external kernels through the CubeCL client.
NativeModule
Load native (PTX/CUBIN/SPIR-V) module artifacts.
RuntimeCompilation
Compile kernel source at runtime (NVRTC / shader compiler).
RawStream
Borrow a raw provider stream for library interop.
SameDeviceAsyncCopy
Asynchronous same-device copy across runtime/domain boundaries.
PeerCopy
Directional peer-to-peer copy between devices.
Trait Implementations§
Source§impl Clone for GpuExtensionCapability
impl Clone for GpuExtensionCapability
Source§fn clone(&self) -> GpuExtensionCapability
fn clone(&self) -> GpuExtensionCapability
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for GpuExtensionCapability
Source§impl Debug for GpuExtensionCapability
impl Debug for GpuExtensionCapability
impl Eq for GpuExtensionCapability
Source§impl Hash for GpuExtensionCapability
impl Hash for GpuExtensionCapability
Source§impl PartialEq for GpuExtensionCapability
impl PartialEq for GpuExtensionCapability
Source§fn eq(&self, other: &GpuExtensionCapability) -> bool
fn eq(&self, other: &GpuExtensionCapability) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for GpuExtensionCapability
Auto Trait Implementations§
impl Freeze for GpuExtensionCapability
impl RefUnwindSafe for GpuExtensionCapability
impl Send for GpuExtensionCapability
impl Sync for GpuExtensionCapability
impl Unpin for GpuExtensionCapability
impl UnsafeUnpin for GpuExtensionCapability
impl UnwindSafe for GpuExtensionCapability
Blanket Implementations§
impl<T> Boilerplate for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompilationArg for T
impl<T> CompilationArg for T
§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Compilation args should be the same even with different element types. However, it isn’t
possible to enforce it with the type system. So, we make the compilation args serializable
and dynamically cast them. Read more
impl<T> CubeComptime for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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