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-сервер