Проект llama.cpp объединил операции RMS_NORM и SCALE в единое CUDA-ядро для снижения накладных расходов хоста/драйвера. Ранее отдельные узлы SCALE добавляли дополнительные запуски ядер, которые были незначительными при обычной пакетной обработке, но существенно увеличивали задержку при спекулятивном декодировании с черновиком (draft-mtp).
- Объединение добавляет флаг do_scale в rms_norm_f32, позволяя объединённому пути разделять ядро, редукцию и запускающий механизм, сохраняя при этом побитовое численное соответствие.
- На конфигурации из двух GTX 1080 Ti с Qwen3.8-27B пропускная способность холодного префилла улучшилась на 4,2% для 8000 токенов и на 4,8% для 20000 токенов в условиях draft-mtp.
- Количество запусков на ubatch снизилось с 1032,9 + 841,7 до 978,9 + 799,7, что соответствует предыдущим базовым значениям без изменения сумм операций GPU.
- Все бэкенд-тесты для RMS_NORM_SCALE, NORM_SCALE и связанных операций проходят на обоих GPU, при этом перплексия остаётся идентичной не объединённой сборке.
Эта оптимизация улучшает скорость вывода specifically в сценариях спекулятивного декодирования за счёт снижения совокупной стоимости запусков ядер.