pub trait GpuBuffer: Send + Sync {
// Required methods
fn size(&self) -> usize;
fn upload(&mut self, data: &[Complex64]) -> QuantRS2Result<()>;
fn download(&self, data: &mut [Complex64]) -> QuantRS2Result<()>;
fn sync(&self) -> QuantRS2Result<()>;
fn as_any(&self) -> &dyn Any;
fn as_any_mut(&mut self) -> &mut dyn Any;
}
Expand description
GPU memory buffer abstraction
Required Methods§
Sourcefn upload(&mut self, data: &[Complex64]) -> QuantRS2Result<()>
fn upload(&mut self, data: &[Complex64]) -> QuantRS2Result<()>
Copy data from host to device
Sourcefn download(&self, data: &mut [Complex64]) -> QuantRS2Result<()>
fn download(&self, data: &mut [Complex64]) -> QuantRS2Result<()>
Copy data from device to host
Sourcefn sync(&self) -> QuantRS2Result<()>
fn sync(&self) -> QuantRS2Result<()>
Synchronize GPU operations
Sourcefn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Enable mutable downcasting to concrete types