Карточка симптома
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.
Доказательства
- Отчёт: vLLM auto выбрал не то MoE-ядро для DeepSeek-V4-Flash на GB10
- Рецепт, запиненный манифест и сырые результаты: github.com/botAGI/dspark-0731-gb10
Источники
- vLLM auto выбрал не то MoE-ядро для DeepSeek-V4-Flash на GB10 · /reports/dsv4-flash-moe-backend-dgx-spark/
Эта карточка описывает один сбой, пойманный на собственном железе лаборатории; цифры, если они есть, живут на странице-источнике по ссылке, а не здесь.