pub struct WgpuServer {
pub compilation_options: WgpuCompilationOptions,
/* private fields */
}
Expand description
Wgpu compute server.
Fields§
§compilation_options: WgpuCompilationOptions
Implementations§
Source§impl WgpuServer
impl WgpuServer
pub fn create_pipeline( &mut self, kernel: CompiledKernel<AutoCompiler>, mode: ExecutionMode, ) -> Arc<ComputePipeline>
Source§impl WgpuServer
impl WgpuServer
Sourcepub fn new(
memory_properties: MemoryDeviceProperties,
memory_config: MemoryConfiguration,
compilation_options: WgpuCompilationOptions,
device: Device,
queue: Queue,
tasks_max: usize,
backend: Backend,
time_measurement: TimeMeasurement,
) -> Self
pub fn new( memory_properties: MemoryDeviceProperties, memory_config: MemoryConfiguration, compilation_options: WgpuCompilationOptions, device: Device, queue: Queue, tasks_max: usize, backend: Backend, time_measurement: TimeMeasurement, ) -> Self
Create a new server.
Trait Implementations§
Source§impl ComputeServer for WgpuServer
impl ComputeServer for WgpuServer
Source§fn create(&mut self, data: &[u8]) -> Handle
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.
Source§fn sync(&mut self) -> impl Future<Output = ()> + 'static
fn sync(&mut self) -> impl Future<Output = ()> + 'static
Returns the total time of GPU work this sync completes.
Source§type Kernel = Box<dyn CubeTask<AutoCompiler>>
type Kernel = Box<dyn CubeTask<AutoCompiler>>
The kernel type defines the computation algorithms.
Source§type Storage = WgpuStorage
type Storage = WgpuStorage
The storage type defines how data is stored and accessed.
Source§fn read(
&mut self,
bindings: Vec<Binding>,
) -> impl Future<Output = Vec<Vec<u8>>> + Send + 'static
fn read( &mut self, bindings: Vec<Binding>, ) -> impl Future<Output = Vec<Vec<u8>>> + Send + 'static
Given bindings, returns the owned resources as bytes.
Source§fn get_resource(&mut self, binding: Binding) -> BindingResource<WgpuResource>
fn get_resource(&mut self, binding: Binding) -> BindingResource<WgpuResource>
Given a resource handle, returns the storage resource.
Source§fn empty(&mut self, size: usize) -> Handle
fn empty(&mut self, size: usize) -> Handle
Reserves
size
bytes in the storage, and returns a handle over them.Source§unsafe fn execute(
&mut self,
kernel: Self::Kernel,
count: CubeCount,
bindings: Bindings,
mode: ExecutionMode,
)
unsafe fn execute( &mut self, kernel: Self::Kernel, count: CubeCount, bindings: Bindings, mode: ExecutionMode, )
Source§fn start_profile(&mut self)
fn start_profile(&mut self)
Enable collecting timestamps.
Source§fn end_profile(&mut self) -> ProfileDuration
fn end_profile(&mut self) -> ProfileDuration
Disable collecting timestamps.
Source§fn memory_usage(&self) -> MemoryUsage
fn memory_usage(&self) -> MemoryUsage
The current memory usage of the server.
Source§fn memory_cleanup(&mut self)
fn memory_cleanup(&mut self)
Ask the server to release memory that it can release.
Source§fn read_tensor(
&mut self,
bindings: Vec<BindingWithMeta>,
) -> impl Future<Output = Vec<Vec<u8>>> + Send + 'static
fn read_tensor( &mut self, bindings: Vec<BindingWithMeta>, ) -> impl Future<Output = Vec<Vec<u8>>> + Send + 'static
Given tensor handles, returns the owned resources as bytes.
Source§fn create_tensor(
&mut self,
data: &[u8],
shape: &[usize],
_elem_size: usize,
) -> (Handle, Vec<usize>)
fn create_tensor( &mut self, data: &[u8], shape: &[usize], _elem_size: usize, ) -> (Handle, Vec<usize>)
Given a resource as bytes with
shape
, stores it and returns the tensor handle.
May or may not be contiguous, depending on what’s best for the given runtime. Always use
strides to index.
For example, in CUDA, this will allocate a padded tensor where the last dimension is padded
to the cache lines, so row access is faster.Auto Trait Implementations§
impl Freeze for WgpuServer
impl !RefUnwindSafe for WgpuServer
impl Send for WgpuServer
impl Sync for WgpuServer
impl Unpin for WgpuServer
impl !UnwindSafe for WgpuServer
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