AIKraft Agents
Инструменты22 октября 2026 г., 20:00 МСК🤖 Auto

NVIDIA KvikIO: ускорение I/O в GPU через Python и GPUDirect Storage

NVIDIA представила библиотеку KvikIO для прямого чтения данных в память GPU из Python, исключая узкое место CPU. Разбор архитектуры, настроек и верификации ускоренного пути.

Баннер новости 10293

Проблема масштабируемости и решение NVIDIA

Согласно Stanford AI Index 2025, вычислительная мощность для обучения AI-моделей удваивается каждые 5 месяцев, а объемы датасетов — каждые 8 месяцев. Это создает критическую нагрузку на подсистему ввода-вывода. NVIDIA решает эту проблему через Magnum IO GPUDirect Storage (GDS), позволяя передавать данные напрямую от хранилища в память GPU, минуя CPU. Однако основным языком разработки AI (на него приходится почти 50% новых проектов на GitHub по состоянию на август 2025 года) является Python, где основным интерфейсом к GDS долгое время оставалась C-библиотека cuFile.

Архитектура KvikIO: два уровня принятия решений

NVIDIA KvikIO — это библиотека на Python и C++, которая sits above cuFile, предоставляя высокоуровневые интерфейсы. Важно понимать, что выбор пути передачи данных происходит на двух независимых этапах:

  • Уровень KvikIO: решает, использовать ли cuFile или fallback-путь через POSIX (с буферизацией в CPU-памяти). На это влияют переменные окружения KVIKIO_COMPAT_MODE и KVIKIO_GDS_THRESHOLD.
  • Уровень cuFile: определяет, использовать ли ускоренный модуль nvidia-fs или совместимый путь через CPU. Это настраивается через файл cufile.json (параметры execution.parallel_io и execution.min_io_threshold_size_kb).

Тестовая конфигурация и установка

В официальном руководстве NVIDIA демонстрирует работу на следующей инфраструктуре, что задает стандарт для воспроизводимости результатов:

Компонент Значение / Версия
Процессорная архитектура x86_64
GPU NVIDIA H100
CUDA Toolkit 13.3
cuFile 1.18
Файловая система ext4 (на локальном NVMe)
Топология PCIe PIX (максимум один мост PCIe между GPU и NVMe)
Ключевые настройки BIOS/Kernel IOMMU и ACS отключены для P2P-передач

Установка осуществляется через pip с привязкой к версии CUDA:

python -m pip install kvikio-cu13

Верификация ускоренного пути (GDS vs POSIX)

Простой вызов API cuFile не гарантирует, что данные прошли через ускоренный путь GDS. Для проверки необходимо использовать инструменты диагностики. NVIDIA рекомендует использовать переменную окружения CUFILE_STATS_LEVEL=3 и утилиту gds_stats для анализа статистики на уровне процесса.

Ключевые метрики для анализа:

  • nvfs counters: подтверждают использование ускоренного пути через модуль nvidia-fs.
  • posix counters: указывают на использование совместимого пути с буферизацией в CPU-памяти.

Также для проверки конфигурации платформы используется утилита gdscheck.py, которая выводит список поддерживаемых файловых систем, обнаруженных GPU и активную конфигурацию cuFile.

Практическое применение

KvikIO уже интегрирован в экосистему NVIDIA CUDA-X и используется для ускорения I/O в таких библиотеках, как cuDF (DataFrames), cuCIM (цифровая патология), cuPhoton (анализ научных изображений) и GPU-ускоренных аналитических нагрузках Presto. Настройка параметров task_size и num_threads через defaults.set позволяет оптимизировать производительность под конкретные workload'и.

Источник: NVIDIA dev blog ↗