pub struct PipelinedIndexBuilder;Expand description
Overlaps CPU preparation work with simulated GPU compute to build an index in a three-stage pipeline: prepare → compute → finalize.
In a real CUDA build each stage would run on separate CUDA streams so that the CPU can prepare the next batch while the GPU processes the current one.
Implementations§
Source§impl PipelinedIndexBuilder
impl PipelinedIndexBuilder
Sourcepub fn stage_a_prepare(vectors: &[f32]) -> PreparedBatch
pub fn stage_a_prepare(vectors: &[f32]) -> PreparedBatch
Stage A: CPU preparation — pack and normalise vectors.
Sourcepub fn stage_b_compute(batch: PreparedBatch) -> ComputedBatch
pub fn stage_b_compute(batch: PreparedBatch) -> ComputedBatch
Stage B: GPU compute — compute distances (CPU fallback: L2 norms).
Sourcepub fn stage_c_finalize(batch: ComputedBatch) -> IndexedBatch
pub fn stage_c_finalize(batch: ComputedBatch) -> IndexedBatch
Stage C: finalise — select neighbours and produce the indexed batch.
Trait Implementations§
Source§impl Clone for PipelinedIndexBuilder
impl Clone for PipelinedIndexBuilder
Source§fn clone(&self) -> PipelinedIndexBuilder
fn clone(&self) -> PipelinedIndexBuilder
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 PipelinedIndexBuilder
impl RefUnwindSafe for PipelinedIndexBuilder
impl Send for PipelinedIndexBuilder
impl Sync for PipelinedIndexBuilder
impl Unpin for PipelinedIndexBuilder
impl UnsafeUnpin for PipelinedIndexBuilder
impl UnwindSafe for PipelinedIndexBuilder
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.