Инструменты7 октября 2026 г., 19:01 МСК🤖 Auto

NVIDIA cuOpt: mPDLP решает задачи оптимизации с 2.1 млрд переменных

NVIDIA представила многопроцессорный решатель mPDLP в cuOpt, позволяющий масштабировать линейное программирование на 8+ GPU с ускорением до 11.4x и снижением памяти в 6 раз.

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

Прорыв в масштабируемости: от 100 млн до 2.1 млрд неzeros

NVIDIA анонсировала обновление библиотеки cuOpt с новым решателем mPDLP (Multi-GPU Primal-Dual hybrid gradient for Linear Programming). Это решение позволяет распределять огромные задачи линейного программирования (LP) между несколькими GPU, соединенными через NVLink. Ключевое достижение — поддержка задач с количеством ненулевых элементов (nonzeros) до 2.1 миллиарда, что ранее было невозможно в рамках одного GPU.

Решатель mPDLP использует алгоритм PDLP, который идеально подходит для GPU благодаря своей параллелизуемости. Основная вычислительная нагрузка приходится на умножение разреженных матриц на вектор (SpMV). mPDLP оптимизирует этот процесс, минимизируя коммуникационные задержки между GPU с помощью алгоритма мин-cut партиционирования, что снижает количество пересечений графа зависимостей.

Бенчмарки: ускорение до 11.4x и экономия памяти

Тестирование проводилось на кластерах NVIDIA DGX B200 и H100 на более чем 100 реальных экземплярах LP-задач. Результаты показывают сильную корреляцию между размером задачи и приростом скорости. Ускорение становится заметным при количестве неzeros свыше 10^7, а на самых крупных задачах скорость шагов PDLP возрастает до 11.4 раз по сравнению с однопоточным решением.

Важным преимуществом является снижение пикового потребления памяти: mPDLP использует до 6 раз меньше памяти на каждый GPU по сравнению с однопоточным PDLP, так как нагрузка распределяется, а не копируется.

Метрика / Параметр Значение / Результат
Макс. размер задачи (nonzeros) 2.1 миллиарда
Максимальное ускорение (шаги PDLP) до 11.4x
Снижение пиковой памяти на GPU до 6x (vs single-GPU PDLP)
Ускорение над D-PDLP (большие задачи) 1.2x – 2.5x
Порог заметного ускорения > 10^7 неzeros

Реальные кейсы: Kinaxis и PSR

Партнеры NVIDIA уже внедрили mPDLP в критически важные бизнес-процессы:

  • Kinaxis (логистика и цепочки поставок): достигла ускорения в 3.3 раза на модели планирования производства с более чем 135 миллионами переменных, используя 8 GPU H100.
  • PSR (энергетика): продемонстрировала ускорение более 5 раз на стохастической модели расширения энергосистемы с 185 миллионами переменных на базе 8 GPU B200.

Почему это важно для индустрии

Проблемы оптимизации в логистике и энергетике растут экспоненциально: добавляются новые SKU, маршруты и источники энергии. Традиционные CPU-решатели или однопоточные GPU-решатели не справляются с объемом данных в реальном времени, заставляя планировщиков ждать часами. mPDLP позволяет решать эти задачи за минуты, обеспечивая возможность анализа большего количества сценариев неопределенности в рамках одного рабочего окна. Исходный код и туториалы доступны на GitHub.

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