← Все новости
MoE на 5090 недобирает полтора раза, и дело не в маршрутизации

MoE на 5090 недобирает полтора раза, и дело не в маршрутизации

RTX 5090, одна и та же сборка llama.cpp, один драйвер, батч 1. Плотная Qwen3.5-9B выбирает 72% пропускной способности памяти карты. MoE Qwen3.5-35B-A3B на той же карте выбирает 41%.Маршрутизация экспертов тут почти ни при чём, я её измерил: ядра top-k занимают 7% времени. CUDA-графы захватываются, дыр между запусками нет, занятость SM 97%. Карта работает почти всё время, просто делает работу медленнее, чем позволяет память.Причина оказалась в том, сколько байт читает одно ядро за запуск. Я написал программу на ggml, которая гоняет тот же mul_mat_vec_q на холодных весах, и снял кривую: на 1 МБ ядро берёт 23% полосы, на 4.2 МБ уже 53%, на 33.6 МБ 91%. У MoE на одно ядро приходится 4.6 МБ, у плотной модели 22.2 МБ. Вот и весь разрыв.В статье: разбивка всех 437 матвеков по трассе nsys, четыре способа померить это неправильно и посидеть в каждой ловушке по очереди, проверка модели на другой архитектуре с ошибкой 3.7% и на четырёх глубинах контекста, цена сэмплера и всей обвязки llama-server. Последнее оказалось крупнее всего остального: пользователь видит 225 токенов в секунду там, где бенчмарк показывает 317. Читать далее