Kimi K3 на AMD MI355X: лучше по цене за токен, чем NVIDIA B300

· Искусственный интеллект
Инженеры Wafer запустили открытую 2,8-триллионную модель Kimi K3 на ускорителях AMD MI355X и получили заметно лучшую производительность на доллар, чем на флагманских NVIDIA Blackwell.

cover.svg

Открытые языковые модели за последние месяцы совершили рывок: DeepSeek V4-Pro и GLM5.2 подобрались к уровню закрытых флагманов, а свежая Kimi K3 претендует на уровень интеллекта Fable/Sol. Но чем умнее модель, тем она крупнее. Kimi K3 несёт 2,8 трлн параметров — это более 1,5 ТБ VRAM ещё до выделения KV-кэша под контекст в миллион токенов. Даже узел из восьми NVIDIA B200 её целиком не вмещает.

Ставка на память

Остаётся два пути: развернуть модель на узле B300 (288 ГБ VRAM на GPU) либо занять сразу два узла B200 в режиме TP16. Но те же 288 ГБ есть и у AMD MI355X — при этом чип в среднем примерно в 2,4 раза дешевле B300 и в 1,7 раза дешевле B200. Главная слабость AMD — программная поддержка: более медленные ядра и запаздывающая совместимость с фреймворками инференса. Однако для Kimi K3 поддержка ROCm подоспела в день релиза, так что большая часть работы была уже сделана.

Цифры

На тесте «1024 токена на входе, 400 на выходе» узел из восьми MI355X выдал 952 ток/с и 118 ток/с в одиночном потоке. Это в 3,8 раза выше совокупной пропускной способности на узел, чем у двухузловой связки B200. Узел B300 остаётся быстрее по совокупной пропускной способности примерно в 1,65 раза, но при цене в 2,4 раза выше по показателю «производительность на доллар» MI355X его уверенно обходит.

Что пришлось чинить

Модель заработала «из коробки», но до нынешних чисел её пришлось доводить. Спекулятивное декодирование через сторонний драфт сразу падало на ROCm с ошибкой NameError: name 'top_k_renorm_prob' is not defined: в CUDA-сборке нужное ядро есть, а в ROCm-версии оно попросту не определено. Инстинктивно кажется, что нужно писать кастомное ядро, но здесь хватило одной функции на PyTorch — сортировка, обнуление лишнего, нормировка. Это дало около 2,2-кратного ускорения в одиночном потоке.

Отдельная беда — время до первого токена: холодный прогрев на 172 тыс. токенов занимал около 51 с против 23 с у B300. Причина — падение на медленное обобщённое Triton-внимание: быстрое ядро AITER MLA рассчитано на 4, 8 или кратное 16 число голов, а K3 при TP8 даёт 12 на ранг. Решение оказалось до смешного простым: дополнить 12 голов нулями до 16, прогнать быстрое ядро и извлечь обратно нужные 12. Прогрев ускорился в 2–3 раза.

Вывод авторов лаконичен: выйти в лидеры по цене за токен на AMD удалось почти без ухищрений и без единого кастомного ядра — багов оказалось даже меньше, чем с GLM5.2. Не пора ли объявлять «ров» вокруг CUDA пересохшим?


Источник: Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.