Skip to main content

BackendKind

Enum BackendKind 

Source
pub enum BackendKind {
    Scirs,
    OxiCuda,
    // some variants omitted
}
Expand description

Discriminant for the active compute backend.

Only BackendKind::Scirs and BackendKind::OxiCuda are fully supported in Round 5. All other variants are doc-hidden stubs that will be enabled in Round 6.

Variants§

§

Scirs

CPU backend powered by SciRS2-Core. Always available.

§

OxiCuda

NVIDIA GPU backend. Requires feature = "gpu" on tensorlogic-oxicuda-backend.

Implementations§

Source§

impl BackendKind

Source

pub fn default_backend() -> Self

Returns OxiCuda when the environment variable TENSORLOGIC_BACKEND is set to "oxicuda", otherwise returns Scirs.

This is the recommended entry-point for runtime backend selection.

Source

pub fn from_env() -> Self

Reads TENSORLOGIC_BACKEND and maps it to a BackendKind.

Recognised values (case-insensitive):

Non-NVIDIA variants (metal, vulkan, rocm, webgpu, levelzero) are parsed correctly by BackendKind::from_str but always fail BackendKind::validate with BackendKindError::Unimplemented.

Source

pub fn is_gpu(&self) -> bool

Returns true when this backend uses a GPU device.

Source

pub fn supports_autodiff(&self) -> bool

Returns true when this backend supports automatic differentiation.

In Round 5 only Scirs and OxiCuda implement autodiff; all other variants are stubs.

Source

pub fn as_str(&self) -> &'static str

Returns a human-readable, stable identifier for the backend.

Source

pub fn available_backends() -> Vec<Self>

Returns all currently enumerated backends.

Scirs is always fully supported. The remaining backends are listed for completeness but are not yet implemented (Round 6).

Source

pub fn validate(&self) -> Result<(), BackendKindError>

Validates that this backend is fully implemented and can be activated.

Returns Ok(()) for Scirs and OxiCuda; returns BackendKindError::Unimplemented for all Round-5 stubs.

Trait Implementations§

Source§

impl Clone for BackendKind

Source§

fn clone(&self) -> BackendKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BackendKind

Source§

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

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

impl FromStr for BackendKind

Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a backend name string into a BackendKind.

Accepted aliases (all case-insensitive):

InputResult
"scirs", "cpu"Scirs
"oxicuda", "gpu", "cuda"OxiCuda
"metal"Metal
"vulkan"Vulkan
"rocm", "hip"Rocm
"webgpu"Webgpu
"levelzero", "level_zero"Levelzero
anything elseErr(BackendKindError::UnknownName)
Source§

type Err = BackendKindError

The associated error which can be returned from parsing.
Source§

impl Hash for BackendKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for BackendKind

Source§

fn eq(&self, other: &BackendKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for BackendKind

Source§

impl Eq for BackendKind

Source§

impl StructuralPartialEq for BackendKind

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> 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, 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> 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> 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 = 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V