Struct burn::backend::wgpu::WgpuServer

pub struct WgpuServer<C>
where C: WgpuCompiler,
{ /* private fields */ }
Expand description

Wgpu compute server.

Implementations§

§

impl<C> WgpuServer<C>
where C: WgpuCompiler,

pub fn new( memory_management: MemoryManagement<WgpuStorage>, device: Arc<Device>, queue: Arc<Queue>, tasks_max: usize, ) -> WgpuServer<C>

Create a new server.

Trait Implementations§

§

impl<C> ComputeServer for WgpuServer<C>
where C: WgpuCompiler,

§

fn create(&mut self, data: &[u8]) -> Handle

When we create a new handle from existing data, we use custom allocations so that we don’t have to execute the current pending tasks.

This is important, otherwise the compute passes are going to be too small and we won’t be able to fully utilize the GPU.

§

fn sync(&mut self) -> impl Future<Output = ()> + 'static

Returns the total time of GPU work this sync completes.

§

fn sync_elapsed( &mut self, ) -> impl Future<Output = Result<Duration, TimestampsError>> + 'static

Returns the total time of GPU work this sync completes.

§

type Kernel = Box<dyn CubeTask<C>>

The kernel type defines the computation algorithms.
§

type Storage = WgpuStorage

The storage type defines how data is stored and accessed.
§

type Feature = Feature

The type of the features supported by the server.
§

fn read( &mut self, binding: Binding, ) -> impl Future<Output = Vec<u8>> + Send + 'static

Given a handle, returns the owned resource as bytes.
§

fn get_resource(&mut self, binding: Binding) -> BindingResource<WgpuServer<C>>

Given a resource handle, returns the storage resource.
§

fn empty(&mut self, size: usize) -> Handle

Reserves size bytes in the storage, and returns a handle over them.
§

unsafe fn execute( &mut self, kernel: <WgpuServer<C> as ComputeServer>::Kernel, count: CubeCount, bindings: Vec<Binding>, mode: ExecutionMode, )

Executes the kernel over the given memory handles. Read more
§

fn flush(&mut self)

Flush all outstanding tasks in the server.
§

fn memory_usage(&self) -> MemoryUsage

The current memory usage of the server.
§

fn enable_timestamps(&mut self)

Enable collecting timestamps.
§

fn disable_timestamps(&mut self)

Disable collecting timestamps.
§

impl<C> Debug for WgpuServer<C>
where C: Debug + WgpuCompiler,

§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<C> Freeze for WgpuServer<C>

§

impl<C> !RefUnwindSafe for WgpuServer<C>

§

impl<C> Send for WgpuServer<C>

§

impl<C> Sync for WgpuServer<C>

§

impl<C> Unpin for WgpuServer<C>
where C: Unpin,

§

impl<C> !UnwindSafe for WgpuServer<C>

Blanket Implementations§

§

impl<T> Adaptor<()> for T

§

fn adapt(&self)

Adapt the type to be passed to a metric.
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
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

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> 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
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
§

impl<T> Upcast<T> for T

§

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

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

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

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

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