pub struct GpuMemoryBudget {
pub total_mb: u64,
pub reserved_mb: u64,
pub available_mb: u64,
}Expand description
GPU memory budget tracker for index construction.
Fields§
§total_mb: u64Total GPU memory in MB
reserved_mb: u64Memory reserved for runtime/OS overhead in MB
available_mb: u64Memory available for index construction in MB
Implementations§
Source§impl GpuMemoryBudget
impl GpuMemoryBudget
Sourcepub fn new(total_mb: u64, reserved_mb: u64) -> Self
pub fn new(total_mb: u64, reserved_mb: u64) -> Self
Create a new memory budget.
reserved_mb should cover GPU runtime, kernels, and OS overhead.
Sourcepub fn can_fit_batch(&self, batch_size: usize, dim: usize) -> bool
pub fn can_fit_batch(&self, batch_size: usize, dim: usize) -> bool
Returns true if a batch of batch_size f32 vectors of dimension dim
fits within the available memory budget.
Sourcepub fn bytes_per_vector(&self, dim: usize) -> u64
pub fn bytes_per_vector(&self, dim: usize) -> u64
Bytes required for a single f32 vector of the given dimension.
Trait Implementations§
Source§impl Clone for GpuMemoryBudget
impl Clone for GpuMemoryBudget
Source§fn clone(&self) -> GpuMemoryBudget
fn clone(&self) -> GpuMemoryBudget
Returns a duplicate of the value. Read more
1.0.0 · 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 GpuMemoryBudget
impl RefUnwindSafe for GpuMemoryBudget
impl Send for GpuMemoryBudget
impl Sync for GpuMemoryBudget
impl Unpin for GpuMemoryBudget
impl UnsafeUnpin for GpuMemoryBudget
impl UnwindSafe for GpuMemoryBudget
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.