GPU Hardware
NVMe SSD
Твердотельный накопитель с интерфейсом NVMe, обеспечивающий высокую скорость загрузки датасетов.
Что такое NVMe SSD в контексте ML
NVMe (Non-Volatile Memory Express) SSD — накопитель, подключённый напрямую к PCIe-шине, минуя SATA-контроллер. Обеспечивает последовательное чтение 3500–7000 МБ/с и IOPS в миллионы — в 5–10× быстрее SATA SSD.
Для ML-задач NVMe SSD критичен при работе с большими датасетами: скорость загрузки данных в GPU (data loading pipeline) влияет на утилизацию GPU. Если GPU ждёт данных — он простаивает.
Когда NVMe SSD является узким местом
Узкое место частое:
- Обучение на датасетах изображений (ImageNet — 140 ГБ)
- Обработка видео, аудио
- DataLoader с большим числом рабочих процессов
Узкое место редкое:
- Обучение NLP (тексты компактны)
- Инференс (модель загружается один раз)
Ориентиры
| Хранилище | Последовательное чтение | Применимость |
|---|---|---|
| SATA SSD | ~550 МБ/с | Минимально приемлемо |
| NVMe SSD Gen3 | 3500 МБ/с | Стандарт |
| NVMe SSD Gen4 | 7000 МБ/с | Оптимально |
| RAM (tmpfs) | ~50 000 МБ/с | Максимум, для маленьких датасетов |
Оптимизация загрузки данных
# PyTorch DataLoader: параллельная загрузка
dataloader = DataLoader(
dataset,
num_workers=4, # несколько процессов читают параллельно
pin_memory=True, # GPU может читать из pinned RAM напрямую
prefetch_factor=2, # предзагрузка следующих батчей
persistent_workers=True
)
Связанные термины
- GPU-инстанс — NVMe SSD включён в большинстве cloud GPU инстансов
- PCIe — шина, через которую подключён NVMe SSD
- GPU utilization — страдает при медленном хранилище
Готовы запустить GPU-задачу?
Запустить GPU-сервер