pub struct MultiThreadDataLoader<B: Backend, I, O> { /* private fields */ }dataset and std only.Expand description
A multi-threaded data loader that can be used to iterate over a dataset.
Dropping an iterator stops prefetching and waits for any dataset read or batch
construction already in progress to return. Workers are joined unless reuse
is explicitly enabled with Self::reuse_workers.
Implementations§
Source§impl<B: Backend, I, O> MultiThreadDataLoader<B, I, O>
impl<B: Backend, I, O> MultiThreadDataLoader<B, I, O>
Sourcepub fn new(
strategy: Box<dyn BatchStrategy<I>>,
dataset: Arc<dyn Dataset<I>>,
batcher: Arc<dyn Batcher<B, I, O>>,
num_threads: usize,
device: B::Device,
rng: Option<StdRng>,
) -> Self
pub fn new( strategy: Box<dyn BatchStrategy<I>>, dataset: Arc<dyn Dataset<I>>, batcher: Arc<dyn Batcher<B, I, O>>, num_threads: usize, device: B::Device, rng: Option<StdRng>, ) -> Self
Creates a new multi-threaded batch data loader.
§Arguments
strategy- The batch strategy.dataset- The dataset.batcher- The batcher.num_threads- The number of threads.device- The device to use when loading a batch.rng- The rng determining if the dataset is shuffled each time a dataloader iterator is created.
§Returns
The multi-threaded batch data loader.
Sourcepub fn reuse_workers(self, enabled: bool) -> Self
pub fn reuse_workers(self, enabled: bool) -> Self
Enables reuse of idle workers across iterations (disabled by default).
Finishing or dropping an iterator still waits for its in-flight reads and batch construction. Concurrent iterators use separate transient workers when the reusable pool is busy, rather than waiting behind another epoch. A panicked worker is joined; failed batches are never automatically replayed.
Sourcepub fn batch_reading(self, enabled: bool) -> Self
pub fn batch_reading(self, enabled: bool) -> Self
Enables batch dataset reads for every worker (default: false).
Missing items or a mismatched result length panic without rereading; the iterator propagates worker failures using its existing shutdown behavior.