TurboLoader Benchmark Dashboard

High-Performance ML Data Loading - Real-Time Performance Analytics

65,499
Peak img/s (cached)
2.1×
vs PyTorch DataLoader
1.3×
vs tf.data (AUTOTUNE)
441M
LLM tokens/s (2.7×)

Benchmark Configuration

Benchmark your own images

Drop in your own JPEG/PNG images and TurboLoader will decode → resize → normalize them and report real throughput (vs PyTorch). Requires the backend: python benchmark_server.py then open http://localhost:8000.

📁 Drop images here, or click to select
No images selected
Image throughput — Imagenette-160, img/s (real consumption)
Throughput vs PyTorch worker count

Only PyTorch uses per-worker processes, so only it scales with this knob. TurboLoader's fast path runs a single process-wide C++ thread pool sized to every core — it's already saturated at 1 worker (flat line). tf.data uses AUTOTUNE (manages its own parallelism), shown as a horizontal reference. PyTorch needs ~8 workers to approach what TurboLoader does with one internal pool.

LLM token streaming — tokens/s (TokenDataLoader vs numpy memmap)

Key Features

SIMD-accelerated transforms
Resize, crop, normalize and more, vectorized with NEON / AVX2 / AVX-512. Half-pixel resize matching PIL/PyTorch/TF, with optional antialiasing.
FFCV/tf.data-style fast path
A persistent thread pool decodes → resizes → normalizes JPEGs directly into the output batch buffer in one pass, plus automatic libjpeg-turbo DCT scaled decode for large images.
Multi-modality
Images (JPEG/PNG/WebP in WebDataset TAR), LLM token streams (memory-mapped, next-token batches), and generic (N, …) arrays — one consistent, re-iterable DataLoader API.
Framework-ready output
Delivers NumPy / PyTorch (CHW) / TensorFlow (HWC) -ready batches, with a decoded cache, deterministic per-epoch shuffling, and DDP-safe distributed sharding.