pub struct WgpuDevice {
pub kind: WgpuDeviceKind,
pub backend: WgpuBackend,
}Expand description
The device struct when using the wgpu backend.
Which device, and which graphics API to reach it on — two things a machine answers separately, so they are two fields rather than one flattened list.
§Example
ⓘ
use cubecl_wgpu::{WgpuDevice, WgpuDeviceKind};
let first = WgpuDevice::from(WgpuDeviceKind::DiscreteGpu(0)); // First discrete GPU found.
let vulkan = first.clone().on(WgpuBackend::Vulkan); // The same one, on Vulkan.Fields§
§kind: WgpuDeviceKindWhich of the machine’s devices.
backend: WgpuBackendThe graphics API to reach it on.
Implementations§
Source§impl WgpuDevice
impl WgpuDevice
Sourcepub fn new(kind: WgpuDeviceKind) -> Self
pub fn new(kind: WgpuDeviceKind) -> Self
This device on whichever graphics API the runtime would pick.
Sourcepub fn on(self, backend: WgpuBackend) -> Self
pub fn on(self, backend: WgpuBackend) -> Self
The same device, pinned to backend.
An externally created device came up on an API of its own, so pinning one there changes nothing.
Trait Implementations§
Source§impl Clone for WgpuDevice
impl Clone for WgpuDevice
Source§impl Debug for WgpuDevice
impl Debug for WgpuDevice
Source§impl Default for WgpuDevice
impl Default for WgpuDevice
Source§impl Device for WgpuDevice
impl Device for WgpuDevice
impl Eq for WgpuDevice
Source§impl From<WgpuDeviceKind> for WgpuDevice
impl From<WgpuDeviceKind> for WgpuDevice
Source§fn from(kind: WgpuDeviceKind) -> Self
fn from(kind: WgpuDeviceKind) -> Self
Converts to this type from the input type.
Source§impl Hash for WgpuDevice
impl Hash for WgpuDevice
Source§impl PartialEq for WgpuDevice
impl PartialEq for WgpuDevice
impl StructuralPartialEq for WgpuDevice
Auto Trait Implementations§
impl Freeze for WgpuDevice
impl RefUnwindSafe for WgpuDevice
impl Send for WgpuDevice
impl Sync for WgpuDevice
impl Unpin for WgpuDevice
impl UnsafeUnpin for WgpuDevice
impl UnwindSafe for WgpuDevice
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
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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)
Converts
&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)
Converts
&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
Compare self to
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
Compare self to
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> ⓘ
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