pub trait AcceleratorOperations {
// Required methods
fn allocate<T>(
&self,
size: usize,
memory_type: AcceleratorMemoryType,
) -> Result<AcceleratorBuffer<T>, SimdError>;
fn copy_to_accelerator<T>(
&self,
host_data: &[T],
accel_buffer: &mut AcceleratorBuffer<T>,
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>;
fn copy_from_accelerator<T>(
&self,
accel_buffer: &AcceleratorBuffer<T>,
host_data: &mut [T],
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>;
fn execute_kernel(
&self,
kernel: &AcceleratorKernel,
buffers: &[&AcceleratorBuffer<u8>],
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>;
fn synchronize(
&self,
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>;
fn get_status(&self) -> Result<AcceleratorStatus, SimdError>;
}Expand description
Accelerator operations interface
Required Methods§
Sourcefn allocate<T>(
&self,
size: usize,
memory_type: AcceleratorMemoryType,
) -> Result<AcceleratorBuffer<T>, SimdError>
fn allocate<T>( &self, size: usize, memory_type: AcceleratorMemoryType, ) -> Result<AcceleratorBuffer<T>, SimdError>
Allocate accelerator memory
Sourcefn copy_to_accelerator<T>(
&self,
host_data: &[T],
accel_buffer: &mut AcceleratorBuffer<T>,
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>
fn copy_to_accelerator<T>( &self, host_data: &[T], accel_buffer: &mut AcceleratorBuffer<T>, queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>
Copy data to accelerator
Sourcefn copy_from_accelerator<T>(
&self,
accel_buffer: &AcceleratorBuffer<T>,
host_data: &mut [T],
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>
fn copy_from_accelerator<T>( &self, accel_buffer: &AcceleratorBuffer<T>, host_data: &mut [T], queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>
Copy data from accelerator
Sourcefn execute_kernel(
&self,
kernel: &AcceleratorKernel,
buffers: &[&AcceleratorBuffer<u8>],
queue: Option<&AcceleratorQueue>,
) -> Result<(), SimdError>
fn execute_kernel( &self, kernel: &AcceleratorKernel, buffers: &[&AcceleratorBuffer<u8>], queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>
Execute kernel on accelerator
Sourcefn synchronize(&self, queue: Option<&AcceleratorQueue>) -> Result<(), SimdError>
fn synchronize(&self, queue: Option<&AcceleratorQueue>) -> Result<(), SimdError>
Synchronize accelerator operations
Sourcefn get_status(&self) -> Result<AcceleratorStatus, SimdError>
fn get_status(&self) -> Result<AcceleratorStatus, SimdError>
Get accelerator status
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".