Datatoy Logo

Batching

Regroupez les items pour saturer votre GPU ou votre BDD

`.batch(n)` accumule `n` items avant de les émettre en liste. `.temporal_batch(s)` regroupe tout ce qui arrive pendant `s` secondes — parfait pour les flux temps-réel (audio, capteurs, WebSocket).

python
from olympipe import Pipeline
import time

# Batch fixe : regrouper 64 items avant traitement
results = (
    Pipeline(image_paths)           # 10 000 images
    .task(load_image, count=4)      # chargement parallèle
    .batch(64)                      # groupe en batches
    .task(model.predict)            # inférence GPU
    .wait_for_result()
)

# Batch temporel : fenêtre glissante de 500ms
results = (
    Pipeline(sensor_stream)
    .task(parse_frame)
    .temporal_batch(0.5)            # tout ce qui arrive en 500ms
    .task(aggregate)
    .wait_for_result()
)

Performance

10 000 images, inférence GPU

Sans batch 50.0s
batch=16 12.0s
batch=64 3.2s
batch=128 2.1s
🚀 23.8× plus rapide

Comment ça fonctionne

Sans batch, chaque item déclenche un aller-retour GPU séparé. Avec un batch de 64, un seul appel traite 64 images — la latence GPU fixe est amortie sur 64 fois plus de travail.

Exemples liés