pub struct CudaBufferPool { /* private fields */ }Expand description
Reusable CUDA device-buffer pool for repeated adapter dispatches.
Implementations§
Source§impl CudaBufferPool
impl CudaBufferPool
Sourcepub fn new(context: CudaContext) -> Self
pub fn new(context: CudaContext) -> Self
Create a new first-fit pool for context with bounded default retention.
Source§impl CudaBufferPool
impl CudaBufferPool
Sourcepub fn take(&self, len: usize) -> Result<CudaPooledDeviceBuffer, CudaError>
pub fn take(&self, len: usize) -> Result<CudaPooledDeviceBuffer, CudaError>
Acquire a device buffer with at least len bytes.
Sourcepub fn recycle(&self, buffer: CudaDeviceBuffer) -> Result<(), CudaError>
pub fn recycle(&self, buffer: CudaDeviceBuffer) -> Result<(), CudaError>
Return a raw device buffer to this pool.
Sourcepub fn upload(&self, bytes: &[u8]) -> Result<CudaPooledDeviceBuffer, CudaError>
pub fn upload(&self, bytes: &[u8]) -> Result<CudaPooledDeviceBuffer, CudaError>
Upload host bytes into a pooled device buffer.
Sourcepub fn upload_pinned(
&self,
bytes: &[u8],
) -> Result<CudaPooledDeviceBuffer, CudaError>
pub fn upload_pinned( &self, bytes: &[u8], ) -> Result<CudaPooledDeviceBuffer, CudaError>
Upload host bytes through temporary page-locked staging into a pooled device buffer.
Sourcepub fn upload_f32(
&self,
samples: &[f32],
) -> Result<CudaPooledDeviceBuffer, CudaError>
pub fn upload_f32( &self, samples: &[f32], ) -> Result<CudaPooledDeviceBuffer, CudaError>
Upload host f32 samples into a pooled device buffer.
Sourcepub fn upload_f32_pinned(
&self,
samples: &[f32],
) -> Result<CudaPooledDeviceBuffer, CudaError>
pub fn upload_f32_pinned( &self, samples: &[f32], ) -> Result<CudaPooledDeviceBuffer, CudaError>
Upload host f32 samples through pinned staging into a pooled device buffer.
Sourcepub fn cached_count(&self) -> Result<usize, CudaError>
pub fn cached_count(&self) -> Result<usize, CudaError>
Number of free buffers currently cached by the pool.
Trait Implementations§
Source§impl Clone for CudaBufferPool
impl Clone for CudaBufferPool
Source§fn clone(&self) -> CudaBufferPool
fn clone(&self) -> CudaBufferPool
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CudaBufferPool
impl RefUnwindSafe for CudaBufferPool
impl Send for CudaBufferPool
impl Sync for CudaBufferPool
impl Unpin for CudaBufferPool
impl UnsafeUnpin for CudaBufferPool
impl UnwindSafe for CudaBufferPool
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