Карточка симптома

the server must report the B12X backend, not the DEEPGEMM fallback

Автовыбор MoE-бэкенда в vLLM пропускает FlashInfer-ядро MXFP4, лежащее в образе для DeepSeek-V4-Flash на GB10, и уходит в DEEPGEMM-фолбэк; передайте --moe-backend flashinfer_b12x и убедитесь по логу сервера, что выбран бэкенд B12X.

Платформа:
DGX Spark (GB10)
Рантайм:
vLLM
Опубликовано:
02.09.2026

Что видно

vLLM поднимается на двух узлах DGX Spark, загружает DeepSeek-V4-Flash-0731 и обслуживает запросы. Ни ошибки, ни предупреждения. В образе есть FlashInfer-ядро MoE, собранное под родные MXFP4-эксперты этого семейства моделей на этом поколении GPU, а выбор бэкенда по умолчанию оставляет его без дела. Единственный видимый след — имя бэкенда в логе сервера: DEEPGEMM-фолбэк вместо B12X. Отставание по декоду видно, только если повторить тот же запуск с принудительно заданным ядром.

Из отчёта:

The runtime's auto backend selection does not pick it.
The check that the flag actually took effect is one log line: the server must report the B12X backend, not the DEEPGEMM fallback.

Где мы это поймали

Наша пара DGX Spark, GB10, два узла по RoCE с тензорным параллелизмом. Рантайм: образ vLLM из опубликованного рецепта; его digest и ревизия модели запинены в run-манифесте репозитория, а на странице отчёта нет ни того, ни другого. Модель: DeepSeek-V4-Flash-0731; замеренный чекпоинт — FP8-версия, квантованная сообществом и запиненная ревизией. Официальный aligned-чекпоинт в репозитории указан, но не замерялся. Один прогон на конфигурацию. Отчёт опубликован 2026-08-03; дата прогона на странице не указана.

Причина

Автовыбор MoE-бэкенда (auto) в рантайме не берёт FlashInfer-ядро B12X на этой связке модели и кремния, и сервер вместо него идёт по пути DEEPGEMM. Ядро в образе есть, и именно для этой комбинации оно быстрее; auto оставляет его без дела. Почему — отчёт не говорит. Ничто при запуске не выдаёт промах, так что любой деплой этой связки из коробки идёт по медленному пути, и никто этого не замечает, пока кто-нибудь не прочитает лог.

Лечение

Задайте бэкенд принудительно в командной строке vLLM:

--moe-backend flashinfer_b12x

Затем прочитайте лог сервера. В строке с именем MoE-бэкенда должно стоять B12X, а не DEEPGEMM. Без этой проверки флаг может молча ничего не сделать. Измеренный выигрыш по клиентской метрике декода в однопоточном контроле — в отчёте; это один прогон, и отчёт приводит среднее и медиану раздельно, потому что в серии есть один выброс.

Флаг перекрывает дефолт; выбор самого auto он не меняет. В источнике описано только это переопределение.

Открыто ли апстрим?

Мы не отслеживаем. Отчёт не называет ни одного upstream-issue.

Доказательства

Источники

Эта карточка описывает один сбой, пойманный на собственном железе лаборатории; цифры, если они есть, живут на странице-источнике по ссылке, а не здесь.

← Все карточки симптомов