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

NVIDIA CUDA 13.4: Точный контроль памяти GPU в Kubernetes

Выход CUDA 13.4 и GPU Fractioning Operator позволяет ограничивать потребление видеопамяти на уровне долей GPU, повышая утилизацию инфраструктуры в Kubernetes-кластерах.

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

Проблема неэффективного использования GPU

Многие AI-нагрузки требуют лишь части вычислительных ресурсов графического процессора. Выделение целого GPU для таких задач приводит к простаиванию мощностей. NVIDIA решает эту проблему через интеграцию новых функций CUDA 13.4 с инструментами оркестрации, позволяя безопасно разделять ресурсы без потери производительности.

Ключевые возможности CUDA 13.4

Версия CUDA 13.4 вводит принудительное ограничение памяти (memory boundary enforcement), которое прозрачно для приложений. Это позволяет задавать точные объемы памяти, гарантированные минимумы и максимальные пределы с возможностью «всплеска» (bursting) при наличии свободных ресурсов. Поддерживаются два режима вычислений:

  • Time-slicing (по умолчанию): Рабочие нагрузки используют GPU по очереди. Обеспечивается полная изоляция ошибок.
  • SM-sharing: Потоковые мультипроцессоры (SM) распределяются между задачами параллельно, позволяя им работать одновременно.

Роль GPU Fractioning Operator

Сама по себе CUDA не управляет Kubernetes. Для этого создан открытый оператор gpu-fractioning (в репозитории KAI Scheduler). Он работает вместе с NVIDIA GPU Operator и выполняет три задачи:

  1. Запускает и контролирует Multi-Process Service (MPS) на каждом узле с GPU.
  2. Применяет лимиты памяти и режимы вычислений к каждому контейнеру перед запуском.
  3. Измеряет потребление ресурсов не для целой карты, а для каждой ее доли (fraction).

Интеграция с KAI Scheduler v0.18.0

Первым планировщиком, интегрированным с этой системой, стал KAI Scheduler версии 0.18.0. Он использует режим NvFractions, который записывает аннотации в Pod, указывая требования к памяти, режим вычислений и назначенные устройства. Оператор считывает эти аннотации и применяет их на уровне узла.

Технические детали и аннотации

Администраторы могут включить поддержку через Helm-флаг --set global.nvFractions.set=true. Задачи описываются через следующие аннотации:

Аннотация Значение
nvidia.com/container..gpu-memory.request Гарантированный объем GPU-памяти
nvidia.com/container..gpu-memory.limit Максимальный объем, в который может вырасти задача
nvidia.com/container..gpu-compute.mode Режим вычислений: time-slicing (по умолч.) или sm-sharing
nvidia.com/container..gpus.devices Конкретные GPU, назначенные контейнеру

Память можно запрашивать как в абсолютных значениях (например, «80Gi»), так и в долях от GPU (например, gpu-fraction: "0.5"). Если лимит не указан, он приравнивается к запросу, и задача жестко ограничена запрошенным объемом.

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