Skip to main content

MultiGpuExecutor

Struct MultiGpuExecutor 

Source
pub struct MultiGpuExecutor { /* private fields */ }
Expand description

Real multi-GPU executor backed by one crate::WgpuBackend per adapter.

Implementations§

Source§

impl MultiGpuExecutor

Source

pub fn enumerate_live_gpus() -> Vec<LiveGpu>

Enumerate real GPU adapters visible to wgpu.

Source

pub fn acquire_all() -> Result<Self, BackendError>

Build an executor over every real adapter that can create a device.

§Errors

Returns a backend error when no real adapters are visible or when a visible adapter fails device creation.

Source

pub fn acquire_indices(indices: &[usize]) -> Result<Self, BackendError>

Build an executor over explicit adapter indices.

§Errors

Returns a backend error if the list is empty, duplicated, or contains an adapter that cannot create a real GPU device.

Source

pub fn len(&self) -> usize

Number of live device backends owned by this executor.

Source

pub fn is_empty(&self) -> bool

Whether the executor owns no devices.

Source

pub fn adapter_indices(&self) -> Vec<usize>

Adapter indices owned by this executor.

Source

pub fn dispatch_batch( &mut self, items: Vec<GpuWorkItem>, ) -> Result<Vec<GpuWorkOutput>, BackendError>

Dispatch a batch across the selected adapters using the LPT partitioner.

Dispatches are submitted from one host thread per selected adapter. wgpu devices are independent, so separate physical adapters can compile, submit, and read back concurrently.

Source

pub fn dispatch_borrowed_batch( &mut self, items: &[BorrowedGpuWorkItem<'_>], ) -> Result<Vec<Result<GpuWorkOutput, BackendError>>, BackendError>

Dispatch a borrowed batch across selected adapters without cloning input buffers into owned work packets.

Each adapter receives one backend-local batched submission, so wgpu’s per-device command buffers stay valid while independent adapters run on separate host threads.

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

Source§

fn downcast(&self) -> &T

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> 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 = 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<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

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