Microsoft обновила плагин CUDA для ONNX Runtime, добавив функцию, которая позволяет запускать некоторые модели Mixture of Experts даже тогда, когда они не помещаются целиком в видеопамять GPU. Плагин CUDA 0.4.0, выпущенный 14 ноября, позволяет переносить наименее востребованных экспертов модели на CPU, сохраняя на GPU только тех, что нужны для текущей обработки. Функция требует ONNX Runtime 1.32.0.
Как работает офлоад CPU-GPU
Иными словами, модели Mixture of Experts состоят из нескольких специализированных подсетей, именуемых экспертами. В зависимости от входных данных система активирует лишь часть из них. Новая функция expert offload использует именно эту особенность архитектуры: эксперты могут храниться в оперативной памяти системы и загружаться на GPU по мере необходимости, сокращая требуемый объём VRAM для полного размещения модели на устройстве.
ONNX Runtime предлагает автоматический режим: эксперты остаются на GPU, пока позволяет память. Переходят в гибридный режим выполнения, когда ресурсов не хватает. Доступен также принудительный режим, при котором создание сессии завершается ошибкой, если модель не удаётся обслужить согласно заданным требованиям. Настройка выполняется через параметры сессии, без каких-либо изменений самой модели.
Меньше VRAM, но задержку нужно измерять
Обновление расширяет круг аппаратных конфигураций, способных запускать совместимые модели MoE. Это не означает, однако, что любая модель заработает на любой GPU: поддержка распространяется на конкретные узлы и форматы, в том числе QMoE и совместимые квантованные модели.
Компромисс по производительности также требует проверки в каждом конкретном случае. Перенос части вычислений на CPU снижает нагрузку на видеопамять. В примечаниях к выпуску не указано единого значения возможного прироста задержки. Итоговый результат будет зависеть от модели, схемы квантования, характеристик CPU, объёма оперативной памяти и используемой GPU.
Требования: совместимые версии
Плагин CUDA 0.4.0 привязан к ONNX Runtime 1.32.0. Ряд функций, в особенности офлоад MoE, опирается на новые возможности, введённые в основной среде выполнения. Microsoft рекомендует синхронизировать версии и предупреждает: расхождения в схемах операторов могут привести к некорректному выполнению или аварийным завершениям.
Выпуск также включает поддержку весов GGUF и block-packed, квантованные ядра, а также оптимизации для длинных контекстов и спекулятивного декодирования. Для разработчиков и тех, кто развёртывает модели, главным остаётся возможность совместного использования CPU и GPU в тех случаях, когда видеопамять является узким местом. Реальную выгоду в плане ёмкости и скорости предстоит оценить с помощью бенчмарков на конкретном железе и реальных моделях.
Источники: ONNX Runtime CUDA Plugin EP 0.4.0 · ONNX Runtime 1.32.0



