pub enum ComputeTarget {
Wgpu,
Cpu,
Cuda,
Hip,
}Expand description
A CubeCL runtime and its default device.
Variants§
Wgpu
WebGPU (Vulkan / Metal / DX12).
Cpu
Multi-threaded CPU (MLIR JIT).
Cuda
NVIDIA CUDA.
Hip
AMD ROCm HIP.
Implementations§
Source§impl ComputeTarget
impl ComputeTarget
Sourcepub fn device(self) -> Result<Device, ComputeError>
pub fn device(self) -> Result<Device, ComputeError>
The default device of this runtime, if it is compiled in.
Sourcepub fn client(self) -> Result<Client, ComputeError>
pub fn client(self) -> Result<Client, ComputeError>
A client for this runtime’s default device (recorded for shutdown_devices).
Sourcepub fn run<T: ComputeTask>(self, task: T) -> Result<T::Output, ComputeError>
pub fn run<T: ComputeTask>(self, task: T) -> Result<T::Output, ComputeError>
Runs task with a client for this runtime’s default device.
Source§impl ComputeTarget
impl ComputeTarget
pub const ALL: [ComputeTarget; 4]
pub fn name(self) -> &'static str
pub fn parse(name: &str) -> Result<Self, ComputeError>
Sourcepub fn is_available(self) -> bool
pub fn is_available(self) -> bool
Whether this runtime is compiled in.
Sourcepub fn for_tests() -> Vec<Self>
pub fn for_tests() -> Vec<Self>
The runtimes tests run on: Self::available, limited to the names in DSPK_TEST_RUNTIMES
when it is set. Compiled in is not the same as usable: a build with CUDA can run on a
machine without an NVIDIA driver.
§Panics
If DSPK_TEST_RUNTIMES names an unknown runtime (a typo would silently skip tests).
Sourcepub fn from_env() -> Result<Self, ComputeError>
pub fn from_env() -> Result<Self, ComputeError>
DSPK_RUNTIME when set, else the first compiled-in runtime.
Sourcepub fn checked(self) -> Result<Self, ComputeError>
pub fn checked(self) -> Result<Self, ComputeError>
self if it is compiled in, else ComputeError::Unavailable.
Trait Implementations§
Source§impl Clone for ComputeTarget
impl Clone for ComputeTarget
impl Copy for ComputeTarget
Source§impl Debug for ComputeTarget
impl Debug for ComputeTarget
Source§impl<'de> Deserialize<'de> for ComputeTarget
impl<'de> Deserialize<'de> for ComputeTarget
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for ComputeTarget
impl Display for ComputeTarget
impl Eq for ComputeTarget
Source§impl FromStr for ComputeTarget
impl FromStr for ComputeTarget
Source§impl Hash for ComputeTarget
impl Hash for ComputeTarget
Source§impl PartialEq for ComputeTarget
impl PartialEq for ComputeTarget
Source§impl Serialize for ComputeTarget
impl Serialize for ComputeTarget
impl StructuralPartialEq for ComputeTarget
Auto Trait Implementations§
impl Freeze for ComputeTarget
impl RefUnwindSafe for ComputeTarget
impl Send for ComputeTarget
impl Sync for ComputeTarget
impl Unpin for ComputeTarget
impl UnsafeUnpin for ComputeTarget
impl UnwindSafe for ComputeTarget
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
impl<T> CubeComptime for T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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