Раз уж видео посвящено инференсу нейронки на AMD EPYC 9684X, мы решили рассказать, как ...
Раз уж видео посвящено инференсу нейронки на AMD EPYC 9684X, мы решили рассказать, как вообще появился CPU-инференс и как развивалась эта передовая технология. 🤩 В марте 2023 года появился llama.cpp — передовой движок, который впервые дал юзерам возможность инференсить нейронки на центральных процессорах. Это стало возможным благодаря специальному формату весов GGUF, который сжимает веса нейросети с 16-битных (FP16) или 32-битных чисел до 4 бит. SIMD-инструкции CPU без проблем справляются с инференсом такой квантизацией, но по-началу скорости никого не впечатляли. Ситуация изменилась, когда в llama.cpp появились K-кванты, которые позволили сжимать веса нейонок от 2 до 6 бит со смешанной точностью. Благодаря этому большие модели помещались в обычную оперативку почти без потери качества. 🤩 В июле 2024 года инженеры Arm добавили оптимизированные вычислительные ядра под типы данных INT4 и INT8, и на процессорах AWS Graviton3 обработка промпта ускорилась в 2,5 раза, а генерация вдвое. В ноябре движок научился перестраивать расположение весов прямо при загрузке модели, и на том же Graviton3 это дало еще 2,9-кратное ускорение промпта и 2,3-кратное ускорение генерации. Процессор и память остались прежними, просто софт стал гораздо эффективнее их использовать. 🤩 В марте 2025 года пришла очередь x86. Разработчики переупорядочили блоки популярного формата Q4_K так, чтобы инструкции AVX2 обрабатывали их эффективнее. На Ryzen 5 7600X с моделью LLaMA 2 7B обработка промпта в формате Q4_K_M выросла с 45,8 до 70,6 токена в секунду, а в Q4_K_S с 46,6 до 77,25. Это прирост на 54-66%. А вот генерация при этом не только не ускорилась, но даже немного просела: с 14,09 до 13,85 токена в секунду в Q4_K_M и с 14,91 до 14,62 в Q4_K_S. Вычисления стали быстрее, но генерация уперлась в память, и дальше одними оптимизациями матриц ее уже не разогнать. 🤩 Казалось бы, за три года все уже оптимизировали. Но в июле 2026 года разработчик предложил новое вычислительное ядро для 2-битного формата Q2_0 с инструкциями AVX-VNNI и AVX-512 VNNI. На восьми ядрах AMD EPYC 9645 модель Bonsai 8B ускорилась с 2,82 до 10,26 токена в секунду на промпте и с 2,39 до 8,2 токена на генерации. Это ускорение в 3,4–3,6 раза, причем на моделях от 1,7 до 27 млрд параметров результаты были похожими. Правда, причина такого скачка в том, что старый код для Q2_0 был откровенно неэффективным, и новое ядро просто устранило этот недостаток. То есть, несмотря на низкую скорость генерации токенов в сравнении с GPU, и несмотря на бушующий на рынке кризис память, CPU-инференс продолжает мало-помалу развиваться. AMX, VNNI и новые вычислительные ядра дают много новых возможностей для локального ИИ-инференса, но только в фазе обработки промптов. Но общая скорость инференса все равно в основном зависит от пропускной способности памяти. Конечно, софтверные методы ускорения ИИ, вроде спекулятивного декодирования, пакетной обработки запросов и оптимизации KV-кэша могут слегка исправить ситуацию, но CPU-инференс всегда будет проигрывать GPU-инференсу. 😅 Канал Serverflow в MAX: Подписаться