Обновить

Мини‑ПК на Strix Halo под параллельной нагрузкой: 236 tok/s на 32 одновременных запросах и три ошибки

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели13K
Всего голосов 8: ↑7 и ↓1+7
Комментарии8

Комментарии 8

Интересно, а такое старое ядро Linux не тормозит ли всё шоу?

Замерил на 7.0.0-28. Генерация: Qwen на 8 клиентах 149 → 155, на 32 клиентах 160 → 159; Gemma на 32 клиентах 236 → 243. Embed 192 → 199 rps, rerank 7,0 → 7,3. Итого дельта ядра в пределах пары процентов, в рамках межпрогонного разброса, а провал на переходе через 8 одновременных запросов на новом ядре воспроизводится один в один. Сырые прогоны добавил в репо.

Сильная методология, особенно история с реранкером на четырех слотах по умолчанию. Это ровно тот тип бага, который прячется, потому что никто не сверяет живой /props, а верят флагам командной строки. По долине на переходе от 8 к 10 клиентам: похоже на classic scheduler granularity в бэкенде. Если внутренний диспетчер Vulkan/RADV раскладывает работу батчами кратными восьми - типичное число для wavefront на RDNA - то на 9-10 запросах часть работы неизбежно фрагментируется на неполный батч, отсюда и просадка, а на 32 все снова ровно ложится по восемь. Про спекулятивный декодинг результат ожидаемый для APU с общей памятью: там пропускная способность на матричное умножение упирается в bandwidth, а не в compute, и лишние проходы драфта на этом стеке просто отъедают тот же bandwidth budget, который нужен основной модели под батчем. И отдельное спасибо, что не подчистили опровергнутую гипотезу про минус 19 процентов у Gemma, а оставили ее в тексте с объяснением - это редкость и на порядок ценнее глянцевой статьи без единой ошибки.

Гипотеза красивая, но wavefront на RDNA – это 32 или 64 потока, восьмёрка сюда не бьётся. Куда вероятнее, что дело не в диспетчере RADV, а на уровень выше – в непрерывном батчинге самого сервера: движок собирает decode-шаги в микробатчи и переразбивает KV-слоты, и как раз на 9–10 клиентах один слот остаётся недозаполненным. Проверяется быстро: если долина двигается при смене числа параллельных слотов в сервере, а не при смене драйвера – это точно не Vulkan.

«Потолки по-прежнему различаются на треть, 236 у Gemma против 178 у лучшего кванта Qwen».

Я тоже тестировал именно эти модели и столкнулся с тем, что tok/s здесь желательно сравнивать вместе с символами/с: у моделей разные токенизаторы и разный средний объём текста в одном токене. В моих тестах TTFT у Qwen часто был сопоставимым или даже ниже, хотя по tok/s он стабильно проигрывал. Поэтому разница в реальной скорости выдачи текста и пользовательской задержке может быть заметно меньше, чем следует из сравнения только токенов в секунду.

8192 токенов контекста, очень реалистичный сценарий использования для каждого из 32 запросов

В подобных тестах всегда больше всего интересовал вопрос, для чего брать устройство на 128Гб памяти, и запускать там модели 27В в Q4? Если они отлично помещаются в 3090, будут работать быстрее намного, а сама система выйдет намного дешевле? На таких устройствах по уму надо запускать модели 120В+, где в кванте 4 вес модели будет около 70гб. Вот только даже для одного пользователя, скорость там выходит 10-15 ток/с.

это какие модели? сейчас qwen3.6 27b + её форки (прим. qwopus) самая лучшая среди всех что влезут в 128гб

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации