AccelProvider

Trait AccelProvider 

Source
pub trait AccelProvider: Send + Sync {
    // Required methods
    fn upload(&self, host: &HostTensorView<'_>) -> Result<GpuTensorHandle>;
    fn download(&self, h: &GpuTensorHandle) -> Result<HostTensorOwned>;
    fn free(&self, h: &GpuTensorHandle) -> Result<()>;
    fn device_info(&self) -> String;

    // Provided methods
    fn elem_add(
        &self,
        _a: &GpuTensorHandle,
        _b: &GpuTensorHandle,
    ) -> Result<GpuTensorHandle> { ... }
    fn elem_mul(
        &self,
        _a: &GpuTensorHandle,
        _b: &GpuTensorHandle,
    ) -> Result<GpuTensorHandle> { ... }
    fn elem_sub(
        &self,
        _a: &GpuTensorHandle,
        _b: &GpuTensorHandle,
    ) -> Result<GpuTensorHandle> { ... }
    fn elem_div(
        &self,
        _a: &GpuTensorHandle,
        _b: &GpuTensorHandle,
    ) -> Result<GpuTensorHandle> { ... }
    fn matmul(
        &self,
        _a: &GpuTensorHandle,
        _b: &GpuTensorHandle,
    ) -> Result<GpuTensorHandle> { ... }
}
Expand description

Device/provider interface that backends implement and register into the runtime layer

Required Methods§

Provided Methods§

Implementors§