~/wiki

Memory-Mapped Data Loading

Confiance : medium
memory-mappingdata-loadingio-optimizationtraining-efficiencymmapdisk-ioperformance-optimizationdistributed-training

Data loading technique that maps files directly into virtual memory, allowing the operating system to handle data transfer efficiently without explicit file I/O operations. Essential for high-performance training scenarios where I/O bottlenecks can severely impact training speed.

Core Mechanism

Virtual Memory Mapping: Files are mapped directly into process address space, creating illusion that entire file contents are loaded in memory.

Operating System Optimization: OS handles actual data transfer from disk to RAM on-demand, using sophisticated caching and prefetching algorithms.

Reduced Memory Overhead: Only portions of file currently being accessed are loaded into physical RAM, enabling processing of datasets larger than available memory.

Advantages Over Traditional File I/O

Elimination of Double Buffering: Data flows directly from disk to model without intermediate copying steps.

OS-Level Caching: Operating system automatically caches frequently accessed data portions, improving subsequent access performance.

Concurrent Access: Multiple processes can efficiently share the same memory-mapped data without duplication.

Reduced System Calls: Eliminates repetitive read() operations that create kernel/user space transitions.

Implementation in Training Pipelines

# Traditional approach
with open('dataset.bin', 'rb') as f:
    data = f.read()  # Loads entire file into RAM

# Memory-mapped approach  
import mmap
with open('dataset.bin', 'rb') as f:
    mapped_data = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    # Data accessed on-demand as training progresses

Competition Context

In gpu-mode-paris-2026 hackathon:

  • Pre-tokenized Data: Binary files containing processed tokens ready for model consumption
  • 10-Minute Constraint: I/O optimization critical when every second counts toward training efficiency
  • 32-GPU Scaling: Each process needs efficient access to shared dataset without memory duplication

Performance Characteristics

Startup Time: Near-instantaneous compared to traditional file loading approaches.

Memory Efficiency: Dataset size decoupled from physical RAM requirements.

Cache Locality: OS intelligently prefetches sequential data, optimizing for common training access patterns.

Scaling Benefits: Performance improvements compound with larger datasets and more complex training pipelines.

This technique represents fundamental infrastructure optimization in modern ML training, enabling efficient processing of multi-terabyte datasets that characterize contemporary language model development.

See also