Skip to main content

AcceleratorOperations

Trait AcceleratorOperations 

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

Source

fn allocate<T>( &self, size: usize, memory_type: AcceleratorMemoryType, ) -> Result<AcceleratorBuffer<T>, SimdError>

Allocate accelerator memory

Source

fn copy_to_accelerator<T>( &self, host_data: &[T], accel_buffer: &mut AcceleratorBuffer<T>, queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>

Copy data to accelerator

Source

fn copy_from_accelerator<T>( &self, accel_buffer: &AcceleratorBuffer<T>, host_data: &mut [T], queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>

Copy data from accelerator

Source

fn execute_kernel( &self, kernel: &AcceleratorKernel, buffers: &[&AcceleratorBuffer<u8>], queue: Option<&AcceleratorQueue>, ) -> Result<(), SimdError>

Execute kernel on accelerator

Source

fn synchronize(&self, queue: Option<&AcceleratorQueue>) -> Result<(), SimdError>

Synchronize accelerator operations

Source

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".

Implementors§