pub struct HipServer { /* private fields */ }Trait Implementations§
Source§impl ComputeServer for HipServer
impl ComputeServer for HipServer
Source§type Kernel = Box<dyn CubeTask<CppCompiler<HipDialect<RocWmmaCompiler>>>>
type Kernel = Box<dyn CubeTask<CppCompiler<HipDialect<RocWmmaCompiler>>>>
The kernel type defines the computation algorithms.
Source§type Storage = HipStorage
type Storage = HipStorage
The storage type defines how data is stored and accessed.
Source§fn read(
&mut self,
bindings: Vec<Binding>,
) -> impl Future<Output = Vec<Vec<u8>>> + 'static
fn read( &mut self, bindings: Vec<Binding>, ) -> impl Future<Output = Vec<Vec<u8>>> + 'static
Given bindings, returns the owned resources as bytes.
Source§fn read_tensor(
&mut self,
bindings: Vec<BindingWithMeta>,
) -> impl Future<Output = Vec<Vec<u8>>> + 'static
fn read_tensor( &mut self, bindings: Vec<BindingWithMeta>, ) -> impl Future<Output = Vec<Vec<u8>>> + 'static
Given tensor handles, returns the owned resources as bytes.
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 create(&mut self, data: &[u8]) -> Handle
fn create(&mut self, data: &[u8]) -> Handle
Given a resource as bytes, stores it and returns the memory handle.
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.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§fn empty_tensor(
&mut self,
shape: &[usize],
elem_size: usize,
) -> (Handle, Vec<usize>)
fn empty_tensor( &mut self, shape: &[usize], elem_size: usize, ) -> (Handle, Vec<usize>)
Reserves
shape bytes in the storage, and returns a handle to it.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 sync(&mut self) -> impl Future<Output = ()> + 'static
fn sync(&mut self) -> impl Future<Output = ()> + 'static
Wait for the completion of every task in the server.
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 get_resource(&mut self, binding: Binding) -> BindingResource<HipResource>
fn get_resource(&mut self, binding: Binding) -> BindingResource<HipResource>
Given a resource handle, returns the storage resource.
impl Send for HipServer
Auto Trait Implementations§
impl Freeze for HipServer
impl !RefUnwindSafe for HipServer
impl !Sync for HipServer
impl Unpin for HipServer
impl !UnwindSafe for HipServer
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