Энтузиаст разогнал RX 6800 XT в MoE-сценариях до 1770 t/s, обойдя официальную оптимизацию
Разработчик под псевдонимом Stormrage34 выпустил новую версию форка llama.cpp под названием TurboQuant-HIP v0.3.0, которая демонстрирует впечатляющий прирост производительности при работе с MoE-моделями на видеокарте AMD RX 6800 XT. Благодаря переписанным ядрам матричного умножения скорость предзаполнения (prefill) модели выросла с ~480 t/s в официальной ветке llama.cpp до 1770 t/s.
Команда разработчиков давно ведет специализированную ветку llama.cpp, ориентированную на глубокую адаптацию под GPU AMD. В официальной версии llama.cpp поддержка AMD реализована как универсальный бэкенд, а ключевые вычислительные ядра изначально оптимизированы под архитектуру NVIDIA и затем перенесены на AMD. Это привело к значительной неэффективности использования пропускной способности памяти на архитектуре RDNA2, особенно в сценариях MoE, где производительность полностью упиралась в лимиты памяти.
Разработчики подошли к проблеме с низового уровня HIP. Новое ядро деквантизации IQ4_XS на основе BFE показало 13-кратный прирост скорости по сравнению с исходной реализацией.
Кроме того, была добавлена асинхронная логика конвейерной обработки, которая позволяет перекрывать задержки запуска ядер с вычислительными операциями, снижая накладные расходы на запуск на 31%.
Ключевым фактором четырехкратного ускорения в MoE-сценариях стало экспериментальное ядро матричного умножения с двойным буфером LDS, которое позволяет параллельно выполнять загрузку весов и вычисления DP4A, максимально задействуя вычислительные ресурсы.
На данный момент эта оптимизация активируется только через ручной флаг. Разработчики отмечают, что в текущей версии присутствуют конфликты банков LDS при работе с симметричными размерами тайлов, что приводит к повышенной вариативности задержек и пока не позволяет использовать ядро в production-среде. Полное исправление этой проблемы уже разработано.
Пользователи могут собрать тестовую версию, используя скрипты из репозитория проекта, без необходимости редактировать CMake-конфигурацию. Ветка полностью сохраняет весь функционал оригинального llama.cpp.








0 комментариев