# 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.

- Platform: DGX Spark (GB10)
- Runtime: vLLM
- Published: 2026-09-02
- Sources: https://agmind.ai/ru/reports/dsv4-flash-moe-backend-dgx-spark/
- Canonical: https://agmind.ai/ru/symptoms/vllm-auto-moe-backend-skips-mxfp4-kernel-gb10/

## Что видно

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](https://agmind.ai/ru/reports/dsv4-flash-moe-backend-dgx-spark/)
- Рецепт, запиненный манифест и сырые результаты: [github.com/botAGI/dspark-0731-gb10](https://github.com/botAGI/dspark-0731-gb10)

---

Machine-readable claim registry: https://agmind.ai/claims.json · llms.txt: https://agmind.ai/llms.txt
