Команда Doubleword пыталась запустить DeepSeek-V4-Flash на AMD MI300X для своего инференс-облака. На бумаге карта отличная: 192 ГБ HBM3 против 80 ГБ у H100, сопоставимая производительность в FP8, вдвое меньшая цена. Но софт подвёл.
Главная проблема — формат FP8. Пока индустрия не договорилась о стандарте, AMD и Graphcore продвигали один вариант (fnuz), а Intel c NVIDIA — другой (OCP). В итоге победил OCP, и новые чипы AMD (MI350X, MI355X) его поддерживают. А MI300X застрял на fnuz. Битовое представление то же, но смещение экспоненты отличается на единицу — один и тот же байт даёт результат в два раза больше или меньше. vLLM об этом не знает, поэтому из коробки модель просто не работает. Doubleword пришлось патчить компилятор и пути квантования, чтобы fnuz учитывался.
Дальше — нехватка быстрых ядер. На AMD за производительность отвечает библиотека AITER. Для DeepSeek v4 на старых чипах gfx942 (ядро MI300X) покрытие AITER неравномерное. Где-то путей нет вообще, где-то они есть, но ломаются именно на этой архитектуре. Для каждого куска пришлось писать обёртки под ROCm: вызывать AITER, если есть, иначе падать на медленный Triton.
HIP graphs — аналог CUDA graphs. Они ускоряют декодинг, записывая последовательность операций один раз и просто повторяя её. Но графики требуют, чтобы всё внутри было чистой функцией от данных на устройстве. Никаких чтений с хоста, динамических выделений памяти или синхронизаций. С AITER это работает, а с самописными Triton-ядрами пришлось переписывать логику, чтобы она не ломалась под захватом.
В мелочах тоже хватало: роутинг MoE путал маску экспертов, когда MXFP4 падал на эмуляцию; Triton-ядро при высокой нагрузке затирало битматрицу роутинга. После исправления ошибок занялись оптимизацией. Оказалось, что много времени уходит не на умножение матриц, а на служебные операции — пересборку метаданных, копирование буферов, материализацию весов на каждом шаге. Почистили — получили прирост с 2485 до 2699 токенов в секунду на GPU (+8.6%).
Вывод: MI300X стоит вдвое дешевле конкурентных NVIDIA, у него больше памяти, он доступен прямо сейчас, даже когда H100 и H200 ждать месяцами. Да, софт сырой, но большая часть проблем временная — с новыми чипами AMD перешла на нормальный FP8, а покрытие AITER постепенно подтягивается. Doubleword доказали: если хорошо постараться, можно получить рабочий сервис. Так что ваш запрос к их API вполне может обслуживаться на AMD.