Skip to main content

WgpuOptions

Struct WgpuOptions 

Source
pub struct WgpuOptions { /* private fields */ }
Available on crate feature wgpu only.
Expand description

Options for initializing Burn’s wgpu runtime.

Construct with Device::wgpu_options or Default::default. Options cover device acquisition and runtime settings such as memory management and task batching. Setters do not acquire a GPU. Initialization registers the selected runtime for reuse. Dropping the returned device does not deregister that runtime.

Implementations§

Source§

impl WgpuOptions

Source

pub fn device_kind(self, kind: DeviceKind) -> Self

Select an adapter kind. Existing identifiers cannot be initialized here; register an existing setup with Self::setup instead.

Browser selection follows the runtime’s power preferences; browsers do not expose native adapter indices. The default prefers a high-performance GPU.

Source

pub fn graphics_api(self, api: WgpuBackend) -> Self

Pin the graphics API, or let WgpuBackend::Auto choose it.

An explicit API never falls back to another API. This selects the graphics API, not a shader compiler; the runtime chooses a supported compiler. With the metal feature enabled, an explicit Metal selection requires native MSL support. Initialization returns an error if it is unavailable; automatic selection permits WGSL fallback.

Source

pub fn memory_config(self, config: MemoryConfiguration) -> Self

Set the runtime’s memory allocation policy.

Source

pub fn tasks_max(self, tasks: usize) -> Self

Set the maximum tasks aggregated into a GPU command. Must be nonzero. Overrides CUBECL_WGPU_MAX_TASKS, including a malformed environment value.

Source

pub fn setup(self, setup: WgpuSetup) -> WgpuSetupOptions

Register existing wgpu handles instead of acquiring another device.

Memory and task options carry over. Explicit calls to Self::device_kind or Self::graphics_api conflict with a supplied setup, even when those options name defaults; WgpuSetupOptions::init returns an error.

Handles must belong to one coherent setup. Compiler selection follows the same backend and adapter checks as acquired setups. The supplied device must enable the selected compiler’s required features, including native extensions for SPIR-V or MSL; registration does not validate all of them.

Source

pub fn init(self) -> Result<Device, WgpuInitError>

Available on non-target_family=wasm only.

Initialize the device synchronously on native targets.

Use Self::init_async when running in a browser or an async application.

§Errors

Returns acquisition, configuration, or registration errors.

Returns an error if the runtime for the selected device kind and graphics API has already been initialized, either explicitly or by a tensor operation. Runtime options must be set before first use.

Source

pub async fn init_async(self) -> Result<Device, WgpuInitError>

Initialize the device asynchronously on native or browser targets.

§Errors

Returns acquisition, configuration, or registration errors.

Returns an error if the runtime for the selected device kind and graphics API has already been initialized, either explicitly or by a tensor operation. Runtime options must be set before first use.

Source

pub fn init_with_setup(self) -> Result<(Device, WgpuSetup), WgpuInitError>

Available on non-target_family=wasm only.

Initialize synchronously and return the exact handles used by this runtime.

Share these handles with another wgpu component. Do not register the returned setup again; clone the accompanying Burn device to reuse it.

§Errors

Returns acquisition, configuration, or registration errors.

Returns an error if the runtime for the selected device kind and graphics API has already been initialized, either explicitly or by a tensor operation. Runtime options must be set before first use.

Source

pub async fn init_with_setup_async( self, ) -> Result<(Device, WgpuSetup), WgpuInitError>

Initialize asynchronously and return the exact handles used by this runtime.

Available on native and browser targets. The returned device is ready for tensor operations; the setup is ready to share with another wgpu component.

§Errors

Returns acquisition, configuration, or registration errors.

Returns an error if the runtime for the selected device kind and graphics API has already been initialized, either explicitly or by a tensor operation. Runtime options must be set before first use.

Trait Implementations§

Source§

impl Default for WgpuOptions

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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>

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)

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)

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

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

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

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

Source§

fn comptime(self) -> Self

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

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

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