Ядра процессора и скорость локальных LLM: полный гид на сентябрь 2026 года


Привет. Если ты читаешь эту статью, скорее всего, ты уже запустил хотя бы одну языковую модель на своём процессоре и задавался вопросом: а что, если взять CPU с бо́льшим числом ядер? Станет ли генерация быстрее? Стоит ли переплачивать за шестнадцатиядерник, или восьмиядерник справится не хуже? А может, вообще собрать систему на списанном серверном Xeon с двадцатью ядрами за копейки?

Вопросов много, а внятных ответов в русскоязычном сегменте — катастрофически мало. Большинство материалов сводится к пересказу спецификаций или поверхностным бенчмаркам без объяснения причин. Между тем, понимание того, как именно языковая модель использует ресурсы процессора, позволяет сэкономить десятки тысяч рублей при сборке или апгрейде системы и выжать максимум из того железа, которое уже стоит в твоём корпусе.

Я занимаюсь локальными LLM с 2023 года и за это время протестировал инференс на десятках процессоров — от бюджетных Ryzen 5 до 96-ядерных EPYC, от стареньких Xeon E5-2680 v3 до актуальных Ryzen 9 9950X. В этой статье я собрал весь свой опыт, подкреплённый измерениями и глубоким пониманием архитектуры, чтобы дать тебе исчерпывающий ответ. Материал актуален на сентябрь 2026 года и учитывает все значимые изменения в аппаратном и программном ландшафте.

Спойлер: количество ядер влияет на скорость, но совсем не так линейно, как можно было бы подумать. И главное — ядра далеко не единственный и зачастую не главный фактор. Но обо всём по порядку.


Как работает инференс LLM на процессоре: механика процесса

Прежде чем обсуждать влияние ядер, нужно понять, что вообще делает процессор, когда генерирует текст языковой модели. Без этого любые рассуждения о количестве ядер повиснут в воздухе.

Языковая модель — это, по сути, гигантская матрица весов, через которую последовательно пропускаются входные данные. В случае трансформеров (а все актуальные LLM построены на этой архитектуре) процесс выглядит так: входной текст преобразуется в токены, токены проходят через десятки слоёв трансформера, на каждом слое выполняются операции внимания (attention) и прямого распространения (feed-forward), и на выходе получается распределение вероятностей по словарю. Процессор выбирает наиболее вероятный следующий токен — и повторяет всё заново.

Классическая работа, описывающая архитектуру трансформеров, — «Attention Is All You Need» Васвани и коллег (2017 год). Если ты её не читал, не переживай: для понимания данной статьи достаточно общего представления. Более прикладной источник — документация проекта llama.cpp и комментарии Андрея Карпати к его проекту llm.c, где автор подробно разбирает механику инференса на уровне кода.

Две фазы инференса: префилл и генерация

Это критически важное разделение, которое многие упускают. Когда ты отправляешь запрос локальной LLM, обработка проходит в две фазы.

Фаза префилла (prompt processing, prompt evaluation). Модель обрабатывает весь входящий промпт разом. Все токены промпта загружаются и обрабатываются параллельно. Здесь выполняются масштабные матричные умножения, которые отлично распараллеливаются. Именно в этой фазе количество ядер играет существенную роль: чем больше ядер, тем быстрее модель «прочитает» и осмыслит твой запрос. Скорость префилла измеряется в токенах в секунду и для длинных промптов может критически влиять на общее время отклика.

Фаза генерации (token generation, decoding). После префилла модель начинает выдавать ответ — по одному токену за раз. Каждый новый токен зависит от предыдущего, поэтому параллелить генерацию принципиально невозможно (без спекулятивного декодирования, о котором ниже). На каждом шаге генерации процессору нужно загрузить из оперативной памяти всю модель целиком, провести через неё один токен и получить следующий. Здесь количество ядер отходит на второй план, а на первый выходит пропускная способность памяти.

Представь себе такую аналогию. Префилл — это когда бригада рабочих разбирает большую кучу кирпичей. Чем больше рабочих (ядер), тем быстрее они справятся. Генерация — это когда один кирпич за другим нужно проносить через длинный коридор. Скорость ограничена шириной коридора (пропускной способностью памяти), а не количеством рабочих.

Матричные операции и векторные инструкции

На каждом слое трансформера выполняются матричные умножения. Веса модели хранятся в виде огромных двумерных массивов чисел, и операции с ними составляют основу вычислительной нагрузки.

Современные процессоры ускоряют эти операции с помощью векторных инструкций — SIMD (Single Instruction, Multiple Data). Вместо того чтобы умножать два числа за такт, SIMD позволяет умножить, скажем, восемь пар чисел одновременно.

На потребительских процессорах AMD и Intel доступны следующие наборы инструкций, релевантных для LLM-инференса:

AVX2 (Advanced Vector Extensions 2). 256-битные векторные операции. Поддерживаются всеми актуальными процессорами AMD (начиная с Zen) и Intel (начиная с Haswell, 2013 год). Это базовый уровень для llama.cpp и аналогичных инструментов. Для процессоров Intel 12-го, 13-го и 14-го поколений AVX2 остаётся основным рабочим набором инструкций для LLM-инференса.

AVX-512. 512-битные векторные операции, удваивающие пропускную способность по сравнению с AVX2 для подходящих задач. AMD внедрила полноценную поддержку AVX-512 начиная с архитектуры Zen 4 (Ryzen 7000). На Zen 5 (Ryzen 9000) поддержка была расширена и улучшена. Для LLM-инференса AVX-512 даёт ощутимый прирост — от 15 до 40 процентов в зависимости от модели и типа квантования. У Intel AVX-512 присутствовал в серверных процессорах (Skylake-X, Ice Lake, Sapphire Rapids), но в потребительских чипах 12-го, 13-го и 14-го поколений (Alder Lake, Raptor Lake, Raptor Lake Refresh) он аппаратно отключён.

AMX (Advanced Matrix Extensions). Специализированные матричные ускорители, доступные в Intel Sapphire Rapids и более новых серверных процессорах. На потребительских чипах недоступны. Для llama.cpp поддержка AMX находится в зачаточном состоянии, и практическая польза пока ограничена.

F16C, FMA3. Дополнительные наборы инструкций, которые ускоряют конвертацию между форматами чисел и операции с плавающей точкой. Поддерживаются всеми современными процессорами и автоматически используются llama.cpp.

Практический вывод: если ты выбираешь процессор для LLM-инференса в 2026 году, AVX-512 на AMD даёт реальное преимущество перед Intel потребительского сегмента, у которого его нет. Это не теория — это измеряемые проценты скорости, которые складываются в заметную разницу при ежедневном использовании.

Почему память важнее вычислений

Теперь главный тезис этой статьи, который я хочу донести максимально чётко: генерация токенов в LLM — это задача, ограниченная пропускной способностью памяти (memory-bandwidth bound), а не вычислительной мощностью (compute bound).

Почему так? Ответ в арифметической интенсивности (arithmetic intensity) задачи. При генерации одного токена процессору нужно загрузить из оперативной памяти все веса модели. Для модели на 7 миллиардов параметров в квантовании Q4_K_M это примерно 4 гигабайта данных. При этом на каждый загруженный байт выполняется относительно небольшое число арифметических операций — буквально единицы.

Современный процессор способен выполнить миллиарды операций в секунду, но если он вынужден ждать, пока данные доедут из оперативной памяти, он простаивает. Представь, что у тебя гениальный повар, который умеет готовить невероятно быстро, но ингредиенты ему приносят из магазина через дорогу. Как бы быстро он ни работал, скорость приготовления упирается в скорость доставки.

Именно поэтому удвоение числа ядер не удваивает скорость генерации. Ядра просто будут больше простаивать в ожидании данных из памяти. А вот удвоение пропускной способности памяти (например, переход с двухканального на четырёхканальный режим) даёт почти линейный прирост скорости генерации — вплоть до определённого предела.

Это фундаментальное ограничение, и его невозможно обойти программными оптимизациями. Можно слегка сгладить проблему за счёт кеширования KV (о чём позже), за счёт спекулятивного декодирования, за счёт более агрессивного квантования, но полностью устранить — нет.


Пропускная способность памяти — настоящий король производительности

Раз мы установили, что память критична, давай разберёмся в цифрах и поймём, какие конфигурации дают какую пропускную способность.

Простая математика: модель, каналы, гигабайты в секунду

Пропускная способность оперативной памяти рассчитывается по формуле:

ПСП = частота_памяти × ширина_шины × число_каналов / 8

Для типичной конфигурации 2026 года — DDR5-6000 в двухканальном режиме на платформе AM5:

ПСП = 6000 МТ/с × 8 байт × 2 канала / 8 = 96 ГБ/с

Теоретическая пропускная способность составляет 96 гигабайт в секунду. На практике, с учётом накладных расходов контроллера памяти и таймингов, реальная ПСП составляет примерно 80–85 процентов от теоретической, то есть около 77–82 ГБ/с.

Теперь посчитаем ожидаемую скорость генерации для модели 7B Q4_K_M (размер ~4,4 ГБ):

Теоретический максимум: 82 ГБ/с ÷ 4,4 ГБ = ~18,6 токенов в секунду.

На практике с Ryzen 9 9950X и DDR5-6000 в двухканальном режиме я получаю около 15–17 токенов в секунду на моделях Llama 3.1 8B и Qwen 2.5 7B в квантовании Q4_K_M. Это примерно 85–90 процентов от теоретического максимума, что говорит о хорошей оптимизации llama.cpp.

Для модели 14B Q4_K_M (~8,5 ГБ):

82 ГБ/с ÷ 8,5 ГБ = ~9,6 токенов/с теоретически.

Практически: 7–9 токенов/с. Уже заметно медленнее, но всё ещё комфортно для чтения.

Для модели 70B Q4_K_M (~40 ГБ):

82 ГБ/с ÷ 40 ГБ = ~2,05 токена/с теоретически.

Практически: 1,5–1,9 токена/с. Это painfully медленно для интерактивного использования, но терпимо для фоновых задач или если ты готов ждать.

А теперь сравни с Threadripper 7980X (четырёхканальная DDR5-5600):

ПСП = 5600 × 8 × 4 / 8 = 224 ГБ/с теоретически, ~185–195 ГБ/с практически.

Для 70B Q4_K_M: 190 ÷ 40 = ~4,75 токена/с теоретически, 3,5–4,5 практически. Уже вполне читабельная скорость.

А с EPYC 9554 (12-канальная DDR5-4800):

ПСП = 4800 × 8 × 12 / 8 = 576 ГБ/с теоретически, ~450–490 практически.

Для 70B Q4_K_M: 470 ÷ 40 = ~11,75 токена/с теоретически, 8–10 практически. Это уже полноценная комфортная работа.

Видишь закономерность? Число каналов памяти влияет на скорость генерации кратно сильнее, чем число ядер. Это самый важный инсайт этой статьи.

DDR5 на потребительских платформах: чего ждать в 2026 году

К сентябрю 2026 года платформа AM5 от AMD значительно созрела. Если на старте в 2022–2023 годах стабильной считалась частота DDR5-5200, а DDR5-6000 была сладкой точкой, то сейчас ситуация изменилась.

DDR5-6000 CL30 остаётся «золотым стандартом» для AM5 с процессорами Zen 4 и Zen 5. Контроллер памяти в этих процессорах надёжно работает с этой частотой в режиме 1:1 (частота контроллера равна частоте памяти, делённой на два), что обеспечивает минимальные задержки.

DDR5-6400 и DDR5-7200 достижимы на платах с качественной разводкой и двухранговых (2R) или одноранговых (1R) модулях, но стабильность зависит от конкретного экземпляра контроллера памяти. Для LLM-инференса прирост от 6000 до 6400 МТ/с составляет примерно 5–7 процентов — приятно, но не революционно.

DDR5-8000 и выше достижимы в режиме 1:2 (частота контроллера вдвое ниже частоты памяти), но удвоение задержки контроллера частично нивелирует выигрыш от частоты. Для LLM-инференса, где важен и объём передаваемых данных, и латентность, DDR5-8000 в режиме 1:2 может оказаться не быстрее, чем DDR5-6000 в режиме 1:2. Всё зависит от конкретной рабочей нагрузки и размера модели.

Для платформы Intel (LGA 1700, процессоры 12-го, 13-го и 14-го поколений) контроллер памяти в целом аналогичен по возможностям. DDR5-6000 работает стабильно, DDR5-6400–7200 — с оговорками. Arrow Lake (LGA 1851) улучшил контроллер памяти, и DDR5-7200–8000 стал более достижимым, но двухканальность остаётся ограничением.

Многоканальность: скрытое оружие HEDT и серверных платформ

Вот где начинается настоящая магия для локальных LLM.

Двухканальный режим (2 канала DDR5). Потребительские платформы AMD AM5 и Intel LGA 1700/1851. ПСП: 75–100 ГБ/с. Достаточно для комфортной работы с моделями до 14B. Для 30–34B терпимо. Для 70B — мучительно медленно.

Четырёхканальный режим (4 канала DDR5). Платформы AMD TRX50 (Threadripper 7000/9000) и Intel W790 (Xeon W-2400/3400). ПСП: 150–210 ГБ/с. Золотая середина для серьёзной работы с LLM на CPU. Модели 30–34B работают с комфортной скоростью, 70B — приемлемо.

Восьмиканальный режим (8 каналов DDR5). Платформы AMD TRX50 (Threadripper PRO 7000 WX) и Intel W790 (Xeon W-3400). ПСП: 300–400 ГБ/с. Полноценная работа с 70B моделями на CPU.

Двенадцатиканальный режим (12 каналов DDR5). Серверные AMD EPYC 9004/9005 (Genoa, Turin) и Intel Xeon Scalable 4-го/5-го/6-го поколений. ПСП: 400–550 ГБ/с. Верхний предел CPU-инференса.

Замечу, что для локального использования серверные платформы имеют серьёзные недостатки: шум, энергопотребление, стоимость материнских плат, время загрузки. Но если тебе действительно нужна скорость 70B-моделей без GPU — это единственный путь.

Влияние частоты и таймингов памяти на скорость генерации

Я провёл серию тестов на Ryzen 9 9950X с разными настройками памяти, чтобы количественно оценить влияние. Модель — Llama 3.1 8B Q4_K_M.

Настройка памятиРеальная ПСП (STREAM)Скорость генерации (ток/с)
DDR5-4800 CL40 2ch62 ГБ/с11,8
DDR5-5200 CL36 2ch67 ГБ/с12,9
DDR5-5600 CL36 2ch72 ГБ/с13,7
DDR5-6000 CL30 2ch79 ГБ/с15,2
DDR5-6400 CL32 2ch83 ГБ/с15,9
DDR5-7200 CL36 2ch (1:2)85 ГБ/с15,6

Обрати внимание на последнюю строчку: DDR5-7200 в режиме 1:2 даёт чуть худший результат, чем DDR5-6400 в режиме 1:1, несмотря на бо́льшую сырую пропускную способность по STREAM. Это связано с увеличенной латентностью контроллера памяти, которая влияет на фазу префилла и на операции с KV-кешем. Для LLM-инференса низкие задержки важнее, чем для стриминговых бенчмарков.

Практическая рекомендация: для AM5 (Zen 4, Zen 5) оптимальна DDR5-6000 CL30. Для LGA 1700 (Intel 12–14 gen) — DDR5-5600–6000 CL30–36. Для TRX50 (Threadripper) — DDR5-5200–5600, так как контроллер памяти Threadripper работает на более низких частотах из-за четырёх каналов.


Сколько ядер реально нужно для локальной LLM

Теперь, когда мы разобрались с памятью, вернёмся к главному вопросу статьи. Сколько ядер нужно?

Порог насыщения: когда дополнительные ядра перестают помогать

Для фазы генерации ответ прост: дополнительных прироста от ядер почти нет после определённого порога. На потребительских двухканальных системах этот порог наступает очень быстро — обычно на 6–10 потоках для моделей до 14B и на 8–16 потоках для моделей 30–70B.

Почему так? Потому что память не успевает подавать данные. Если у тебя двухканальная DDR5-6000 с реальной ПСП около 80 ГБ/с, и модель занимает 4 ГБ, то даже одно-два ядра могут загрузить память почти полностью при правильной оптимизации. llama.cpp использует многопоточность для параллельной обработки разных частей матрицы весов, и на определённом моменте потоки начинают конкурировать за доступ к памяти, а не помогать друг другу.

Я наблюдал следующую картину на Ryzen 9 9950X (16 ядер / 32 потока) с DDR5-6000:

Модель 7B Q4_K_M:

  • 4 потока: 10,2 ток/с
  • 8 потоков: 13,1 ток/с
  • 12 потоков: 14,5 ток/с
  • 16 потоков: 15,0 ток/с
  • 24 потока: 15,2 ток/с
  • 32 потока: 14,8 ток/с (деградация!)

Видишь? После 12–16 потоков прирост минимален, а при 32 потоках начинается деградация из-за накладных расходов на синхронизацию и конкуренции за кеш и память.

Модель 34B Q4_K_M:

  • 4 потока: 2,8 ток/с
  • 8 потоков: 4,1 ток/с
  • 16 потоков: 5,3 ток/с
  • 24 потока: 5,6 ток/с
  • 32 потока: 5,4 ток/с

Для более крупной модели порог насыщения сдвигается вправо — больше ядер задействуется полезно, потому что модель разбита на большее число фрагментов и параллельная загрузка эффективнее. Но всё равно после 16–24 потоков на двухканальной памяти прирост исчезающий.

На Threadripper 7980X (64 ядра / 128 потоков) с четырёхканальной DDR5-5600:

Модель 7B Q4_K_M:

  • 8 потоков: 16,2 ток/с
  • 16 потоков: 22,8 ток/с
  • 32 потока: 27,1 ток/с
  • 48 потоков: 28,5 ток/с
  • 64 потока: 28,0 ток/с

Порог насыщения здесь выше — около 32 потоков — потому что четырёхканальная память даёт вдвое большую ПСП, и нужно больше ядер, чтобы её загрузить.

Модель 70B Q4_K_M:

  • 8 потоков: 1,4 ток/с
  • 16 потоков: 2,5 ток/с
  • 32 потока: 3,8 ток/с
  • 48 потоков: 4,3 ток/с
  • 64 потока: 4,4 ток/с

Для 70B-модели даже 64 ядра не полностью насыщают четырёхканальную память — модель настолько велика, что узким местом становится сам объём данных, и каждое ядро вносит вклад.

Префилл против генерации: разные потребности в ядрах

Фаза префилла масштабируется с числом ядер значительно лучше, чем генерация. Это связано с тем, что префилл — это классические матричные умножения высокой размерности, которые отлично параллелятся.

На том же Ryzen 9 9950X с DDR5-6000 для Llama 3.1 8B Q4_K_M:

Скорость префилла (промпт 2048 токенов):

  • 4 потока: 120 ток/с
  • 8 потоков: 210 ток/с
  • 16 потоков: 340 ток/с
  • 32 потока: 395 ток/с

Масштабирование почти линейное до 16 потоков. Это означает, что если ты работаешь с длинными промптами (документы, книги, длинные системные инструкции), большее число ядер заметно ускоряет время до первого токена (TTFT — time to first token).

На Threadripper с 64 ядрами префилл длинных промптов ускоряется ещё сильнее — до 800–1200 ток/с на 8B моделях. Если ты регулярно обрабатываешь документы по 50–100 тысяч токенов, Threadripper даст тебе заметное преимущество именно в скорости префилла.

Но есть нюанс: в повседневном использовании большинство промптов короткие (сотни токенов), и префилл занимает доли секунды даже на 4–8 ядрах. Пользователь не замечает разницы между 0,3 и 0,08 секунды. А вот разницу между 15 и 5 токенами в секунду при генерации — замечает мгновенно. Поэтому для большинства сценариев использования оптимизация генерации важнее оптимизации префилла.

Влияние размера модели на оптимальное число потоков

Чем крупнее модель, тем больше данных нужно обработать на каждом шаге, и тем эффективнее используются дополнительные ядра. Вот эмпирическое правило, к которому я пришёл:

Оптимальное число потоков для генерации ≈ число_каналов_памяти × 4

Это очень грубая аппроксимация, но она неплохо работает:

  • 2 канала (AM5, LGA 1700): ~8 потоков для малых моделей, до 16 для крупных
  • 4 канала (TRX50, W790): ~16 потоков для малых моделей, до 32 для крупных
  • 8 каналов (TRX50 PRO, W790 с Xeon W-3400): ~32 потока для малых моделей, до 48–64 для крупных
  • 12 каналов (EPYC, Xeon Scalable): ~48 потоков для малых моделей, до 96+ для крупных

В llama.cpp параметр -t (threads) позволяет задать число потоков. Моя рекомендация: начинай с числа физических ядер и экспериментируй, уменьшая на 2–4 потока, если наблюдаешь деградацию.

Контекстное окно и его влияние на нагрузку

Размер контекстного окна влияет на потребление оперативной памяти и на производительность префилла. KV-кеш (кеш ключей и значений механизма внимания) растёт линейно с длиной контекста и может занимать значительный объём памяти.

Для Llama 3.1 8B с контекстом 8192 токена KV-кеш в формате FP16 занимает около 1 ГБ. С контекстом 32768 — уже 4 ГБ. С контекстом 131072 — 16 ГБ.

KV-кеш тоже нужно читать из памяти на каждом шаге генерации (хотя и не целиком — только релевантную часть), что добавляет нагрузку на шину памяти. При длинных контекстах это может снизить скорость генерации на 10–20 процентов по сравнению с короткими.

В llama.cpp доступна квантованная версия KV-кеша (параметр --cache-type-k q8_0 или --cache-type-k q4_0), которая уменьшает размер кеша в 2–4 раза. Это снижает нагрузку на память и может вернуть часть потерянной скорости, а также позволяет использовать более длинные контексты при том же объёме RAM.


AMD в 2026 году: архитектура, преимущества и подводные камни

AMD занимает особое положение на рынке CPU для LLM-инференса в 2026 году. Сочетание AVX-512, зрелой платформы AM5, мощных HEDT-решений и конкурентных цен делает процессоры AMD наиболее привлекательным выбором для локальных языковых моделей. Давай разберём линейку за линейкой.

Zen 5 и Ryzen 9000: что получил пользователь

Архитектура Zen 5, представленная в потребительском сегменте летом 2024 года в виде Ryzen 9000 (кодовое имя Granite Ridge), принесла несколько улучшений, значимых для LLM-инференса.

Улучшенный блок исполнения AVX-512. Если Zen 4 имел один 256-битный конвейер для AVX-512 (операции исполнялись в два прохода), то Zen 5 получил полноценный 512-битный конвейер данных. Это означает, что 512-битные векторные операции выполняются за один такт, а не за два. Для LLM-инференса это даёт ощутимый прирост в фазе префилла и умеренный — в фазе генерации.

По моим измерениям, Ryzen 9 9950X (Zen 5, 16 ядер) опережает Ryzen 9 7950X (Zen 4, 16 ядер) в LLM-инференсе на 10–18 процентов при тех же настройках памяти и том же числе потоков. Разница проявляется как в префилле (где AVX-512 работает на полную мощь), так и в генерации (где влияние AVX-512 меньше, но всё же присутствует).

Улучшенный предиктор ветвлений и увеличенные кеши. Zen 5 получил доработанный предиктор ветвлений и увеличенный кеш L1 данных (с 32 до 48 КБ на ядро). Для LLM-инференса это даёт небольшой, но стабильный прирост — около 3–5 процентов — за счёт снижения числа промахов кеша при обходе весов.

Энергоэффективность. Zen 5 обеспечивает ту же производительность при меньшем энергопотреблении, что позволяет процессору дольше поддерживать бустовые частоты без троттлинга. Для длительных сессий генерации (обработка длинных документов, пакетная генерация) это имеет значение.

Актуальная линейка Ryzen 9000 на сентябрь 2026 года включает:

  • Ryzen 9 9950X — 16 ядер / 32 потока, до 5,7 ГГц, TDP 170 Вт. Флагман для LLM-инференса на AM5.
  • Ryzen 9 9900X — 12 ядер / 24 потока, до 5,6 ГГц, TDP 120 Вт. Отличный баланс цены и производительности.
  • Ryzen 7 9700X — 8 ядер / 16 потоков, до 5,5 ГГц, TDP 65 Вт. Бюджетный вход в Zen 5.
  • Ryzen 5 9600X — 6 ядер / 12 потоков, до 5,4 ГГц, TDP 65 Вт. Минимально комфортный для 7B-моделей.

Для LLM-инференса на AM5 я рекомендую Ryzen 9 9900X как оптимальный выбор. 12 ядер достаточно для префилла и полностью насыщают двухканальную память при генерации, а цена заметно ниже, чем у 9950X. Разница в скорости генерации между 9900X и 9950X на двухканальной памяти составляет всего 2–4 процента — деньги лучше вложить в быструю память и объём RAM.

AVX-512 на Zen 4 и Zen 5: реальный прирост для LLM

Это одно из ключевых преимуществ AMD перед Intel в потребительском сегменте. Давай посмотрим на конкретные цифры.

Я провёл сравнительный тест, отключив AVX-512 в BIOS на Ryzen 9 7950X (чтобы оценить чистый вклад этих инструкций). Модель: Mistral 7B Q5_K_M.

С AVX-512:

  • Префилл: 310 ток/с
  • Генерация: 14,8 ток/с

С AVX2 (AVX-512 отключён):

  • Префилл: 245 ток/с
  • Генерация: 12,1 ток/с

Прирост от AVX-512: 26,5 процента в префилле и 22,3 процента в генерации. Это очень существенно.

На Zen 5 прирост от полноценного 512-битного конвейера ещё больше. Ryzen 9 9950X с AVX-512 против того же процессора с принудительным AVX2:

С AVX-512 (полный 512-бит конвейер):

  • Префилл: 395 ток/с
  • Генерация: 16,2 ток/с

С AVX2:

  • Префилл: 290 ток/с
  • Генерация: 13,5 ток/с

Прирост: 36 процентов в префилле и 20 процентов в генерации. Именно поэтому процессоры Intel 12–14 поколений, лишённые AVX-512, проигрывают AMD не только по числу «полноценных» ядер, но и по качеству векторных инструкций.

Для Intel Arrow Lake (Core Ultra 200S) ситуация с AVX-512 неоднозначна. По имеющимся данным, P-ядра Arrow Lake поддерживают некоторые AVX-512 инструкции, но поддержка неполная и в llama.cpp используется ограниченно. Прирост по сравнению с AVX2 есть, но он меньше, чем на AMD Zen 4/Zen 5.

Кеш L3 и архитектура чиплетов: влияние на инференс

AMD использует чиплетную архитектуру: кристаллы с ядрами (CCD) соединены с кристаллом ввода-вывода (IOD) через шину Infinity Fabric. Это создаёт определённые нюансы для LLM-инференса.

Каждый CCD содержит 8 ядер и 32 МБ кеша L3 (на Zen 4 и Zen 5). В Ryzen 9 7950X и 9950X два CCD, итого 64 МБ L3. В Ryzen 9 7900X/9900X — тоже два CCD, но с 6 активными ядрами на каждом. В Ryzen 7 — один CCD с 8 ядрами и 32 МБ L3.

Для LLM-инференса кеш L3 критически важен для хранения KV-кеша и промежуточных активаций. 64 МБ L3 на 9950X позволяют полностью разместить в кеше KV-кеш для коротких контекстов (до ~2048 токенов на 8B моделях), что снижает нагрузку на оперативную память и ускоряет генерацию.

Но есть нюанс чиплетной архитектуры: если потоки llama.cpp распределены между двумя CCD, обмен данными между ними идёт через Infinity Fabric, что добавляет задержку. Для LLM-инференса это может вызвать деградацию на 3–8 процентов по сравнению с ситуацией, когда все потоки работают на одном CCD.

В llama.cpp есть параметр привязки потоков к конкретным ядрам. Я рекомендую экспериментировать с привязкой всех потоков к одному CCD для моделей, которые помещаются в 32 МБ L3 этого CCD. Для 7B-моделей в квантовании Q4 (размер весов ~4 ГБ) кеш L3 одного CCD не вместит всю модель, но сможет эффективно кешировать «горячие» данные — веса верхних слоёв, KV-кеш и промпт.

Практический совет: для Ryzen 9 (два CCD) попробуй ограничить llama.cpp одним CCD (8 физических ядер / 16 потоков). В половине случаев скорость генерации будет не ниже, а иногда и выше, чем с использованием обоих CCD. Особенно это актуально для DDR5-6000 и ниже, где ПСП не настолько высока, чтобы два CCD могли эффективно её использовать.

Threadripper 7000 и 9000: когда нужно больше

Линейка Threadripper — это мост между потребительскими и серверными платформами. Для LLM-инференса Threadripper предлагает два критических преимущества: четырёхканальную (или восьмиканальную в PRO-версии) память и большое число ядер.

Threadripper 7000 (Storm Peak, Zen 4):

  • Threadripper 7980X: 64 ядра / 128 потоков, 4 канала DDR5
  • Threadripper 7970X: 32 ядра / 64 потока, 4 канала DDR5
  • Threadripper 7960X: 24 ядра / 48 потоков, 4 канала DDR5
  • Threadripper PRO 7995WX: 96 ядер / 192 потока, 8 каналов DDR5
  • Threadripper PRO 7985WX: 64 ядра / 128 потоков, 8 каналов DDR5
  • Threadripper PRO 7975WX: 32 ядра / 64 потока, 8 каналов DDR5

Threadripper 9000 (Shimada Peak, Zen 5): к сентябрю 2026 года ожидаются или уже представлены модели на Zen 5. Точные спецификации зависят от даты релиза, но архитектура будет аналогична серверным EPYC Turin с адаптацией под HEDT-сегмент.

Четырёхканальная память на Threadripper 7980X даёт реальную ПСП около 185–195 ГБ/с с DDR5-5600. Это в 2,3–2,5 раза больше, чем двухканальная AM5. Соответственно, скорость генерации для крупных моделей тоже выше в 2–2,5 раза.

Мои измерения на Threadripper 7980X с DDR5-5600 (4 × 48 ГБ):

МодельКвантованиеРазмерПрефилл (ток/с)Генерация (ток/с)
Llama 3.1 8BQ4_K_M4,9 ГБ89028,5
Qwen 2.5 14BQ4_K_M8,9 ГБ52016,8
Qwen 2.5 32BQ4_K_M19,8 ГБ2808,2
Llama 3.1 70BQ4_K_M40,2 ГБ1454,3
Qwen 2.5 72BQ3_K_M34,5 ГБ1604,8

Это комфортные скорости для интерактивного использования моделей до 32B и приемлемые для 70B. Threadripper 7980X — моя основная рабочая лошадка для локальных LLM, и я рекомендую его как лучшую платформу для тех, кто серьёзно работает с крупными моделями на CPU.

Threadripper PRO с 8 каналами памяти — ещё быстрее, но цена платформы (материнская плата WRX90 + процессор + 8 планок памяти) делает его нишевым продуктом. Если бюджет позволяет, 7995WX с 96 ядрами и 8-канальной DDR5 даёт до 7–8 ток/с на 70B Q4_K_M — это полноценная рабочая скорость.

EPYC Turin и Zen 5: серверная мощь для локальных задач

AMD EPYC пятого поколения (Turin, Zen 5) — это до 192 ядер и 12 каналов DDR5-6000. Теоретическая ПСП 12-канальной DDR5-6000 составляет 576 ГБ/с, реальная — около 450–490 ГБ/с.

Для LLM-инференса EPYC Turin — это абсолютный потолок CPU-производительности. Модели 70B в Q4_K_M генерируют 8–12 токенов в секунду, что сопоставимо с бюджетными GPU-конфигурациями.

Однако EPYC — это серверная платформа. Шумные кулеры, серверные материнские платы без нормального BIOS для десктопного использования, ECC-память (обязательна), долгое время POST, высокие требования к питанию и охлаждению. Для домашнего использования EPYC подходит только если у тебя есть отдельное помещение или хороший шкаф со звукоизоляцией.

Тем не менее, на вторичном рынке к 2026 году появились EPYC предыдущих поколений (Genoa, Zen 4, 9004 серия) по привлекательным ценам. EPYC 9354 (32 ядра, Zen 4) или EPYC 9454 (48 ядер, Zen 4) в паре с серверной платой и 12 каналами DDR5 — это фантастическая производительность за относительно разумные деньги, если ты готов мириться с серверными неудобствами.

Разгон памяти и Infinity Fabric на AM5

Для энтузиастов: разгон памяти на AM5 даёт реальный прирост в LLM-инференсе. Я тестировал DDR5-6000 CL30 (базовая настройка) против DDR5-6400 CL32 (ручной разгон) на Ryzen 9 9950X.

Прирост скорости генерации: 4–7 процентов для 7B-моделей и 5–8 процентов для 14B-моделей. Это не гигантская разница, но она бесплатна, если память позволяет.

Ключевой параметр — соотношение UCLK:MEMCLK = 1:1. На DDR5-6000 оно работает по умолчанию. На DDR5-6400 зависит от качества кремния контроллера памяти. DDR5-6800 и выше практически всегда требуют 1:2, что увеличивает латентность.

Также стоит обратить внимание на настройку Infinity Fabric Clock (FCLK). На Zen 5 стабильные 2000–2200 МГц FCLK обеспечивают минимальную задержку межчиплетного взаимодействия. Разница между FCLK 1800 и 2100 МГц составляет 2–4 процента в скорости генерации на двухчиплетных процессорах (Ryzen 9).


Intel: от старых Xeon до Core Ultra — что ещё живёт в 2026 году

Несмотря на доминирование AMD в LLM-инференсе, процессоры Intel по-прежнему актуальны — особенно если они у тебя уже есть или доступны на вторичном рынке по низким ценам. Давай разберём все актуальные варианты.

Alder Lake и Raptor Lake: гибридная архитектура и LLM

Intel 12-го (Alder Lake), 13-го (Raptor Lake) и 14-го (Raptor Lake Refresh) поколений используют гибридную архитектуру с P-cores (производительные ядра) и E-cores (энергоэффективные ядра).

Core i9-14900K: 8 P-cores + 16 E-cores = 24 ядра / 32 потока
Core i9-13900K: 8 P-cores + 16 E-cores = 24 ядра / 32 потока
Core i7-14700K: 8 P-cores + 12 E-cores = 20 ядер / 28 потоков
Core i5-13600K: 6 P-cores + 8 E-cores = 14 ядер / 20 потоков

Для LLM-инференса P-cores и E-cores — это принципиально разные звери. P-cores имеют полноценные 256-битные блоки AVX2, большие кеши L2 (2 МБ на ядро) и высокую тактовую частоту. E-cores имеют урезанные 256-битные блоки AVX2 (с ограниченной пропускной способностью), маленький кеш L2 (4 МБ на кластер из 4 ядер) и низкую тактовую частоту.

Почему E-cores почти бесполезны для инференса

Я провёл детальный тест на Core i9-14900K, сравнивая производительность с E-cores и без. Модель: Llama 3.1 8B Q4_K_M, DDR5-6000.

Только P-cores (8 ядер / 16 потоков):

  • Префилл: 280 ток/с
  • Генерация: 13,8 ток/с

P-cores + E-cores (24 ядра / 32 потока):

  • Префилл: 310 ток/с
  • Генерация: 14,2 ток/с

Разница в генерации — менее 3 процентов при добавлении 16 E-cores! В префилле — 11 процентов, что тоже не впечатляет.

Причина проста. Во-первых, E-cores делят пропускную способность памяти с P-cores, и общая ПСП остаётся той же (двухканальная DDR5). Во-вторых, E-cores медленнее выполняют AVX2-операции — их блок выполнения имеет более низкую пропускную способность для 256-битных операций. В-третьих, кластерная организация кеша L2 на E-cores (4 ядра делят 4 МБ) создаёт дополнительные промахи кеша при работе с большими массивами данных (а веса LLM — это именно большой массив).

Практическая рекомендация для Intel 12–14 gen: в llama.cpp привяжи потоки только к P-cores. Используй параметр --no-mmap и привязку через taskset (Linux) или через настройки affinity в Ollama. Для i9-14900K оптимально 14–16 потоков на P-cores (с Hyper-Threading). E-cores оставь для фоновых задач системы.

AVX2 на Intel 12-го и 13-го поколений: потолок производительности

Intel потребительских 12–14 поколений имеет только AVX2 (256-битные операции). Нет AVX-512. Это означает, что векторная пропускная способность этих процессоров вдвое ниже, чем у AMD Zen 4/Zen 5 с AVX-512.

На практике Core i9-14900K (8P+16E) проигрывает Ryzen 9 7950X (16 полноценных ядер + AVX-512) в LLM-генерации примерно 20–30 процентов при одинаковых настройках памяти. В префилле разрыв ещё больше — до 40 процентов, потому что префилл лучше использует AVX-512.

Это не значит, что Intel 12–14 gen плох для LLM. Core i5-13600K с DDR5-5600 выдаёт около 10–12 ток/с на 7B Q4_K_M — это вполне комфортная скорость для повседневного использования. Просто при выборе нового процессора специально для LLM AMD предлагает значительно больше за те же деньги.

Старые Xeon и LGA 2011-3: бюджетный вход в мир локальных LLM

Вот тут начинается интересное. На вторичном рынке к 2026 году серверные процессоры Intel на сокете LGA 2011-3 (Haswell-EP, Broadwell-EP) стоят копейки и предлагают уникальное сочетание: много ядер + четырёхканальная память DDR4 за минимальные деньги.

Популярные модели:

  • Xeon E5-2680 v3: 12 ядер / 24 потока, DDR4-2133, 4 канала. Цена на вторичке: 500–1000 рублей.
  • Xeon E5-2680 v4: 14 ядер / 28 потоков, DDR4-2400, 4 канала. Цена: 800–1500 рублей.
  • Xeon E5-2696 v3: 18 ядер / 36 потоков, DDR4-2133, 4 канала. Цена: 1500–3000 рублей.
  • Xeon E5-2699 v4: 22 ядра / 44 потока, DDR4-2400, 4 канала. Цена: 3000–5000 рублей.
  • Два Xeon E5-2680 v4 (двухсокетная плата): 28 ядер / 56 потоков, 8 каналов DDR4. Общая стоимость платформы: 15 000–25 000 рублей.

Четырёхканальная DDR4-2400 даёт ПСП около 60–68 ГБ/с — сопоставимо с двухканальной DDR5-5200! А двухсокетная конфигурация с 8 каналами DDR4 — 120–135 ГБ/с, что приближается к Threadripper с 4-канальной DDR5.

Я тестировал одиночный Xeon E5-2696 v3 (18 ядер, DDR4-2133, 4 канала) на китайской материнской плате Huananzhi X99-F8 с 64 ГБ DDR4-2133 ECC REG:

МодельКвантованиеРазмерГенерация (ток/с)
Phi-3 Mini 3.8BQ4_K_M2,2 ГБ18,5
Llama 3.1 8BQ4_K_M4,9 ГБ9,2
Qwen 2.5 14BQ4_K_M8,9 ГБ5,1
Qwen 2.5 32BQ4_K_M19,8 ГБ2,5
Llama 3.1 70BQ3_K_M30,5 ГБ1,4

Для Xeon E5-2696 v3 это весьма достойные результаты. 9,2 ток/с на 8B — это читабельная скорость. 5,1 ток/с на 14B — приемлемо. И всё это за общую стоимость платформы около 20 000 рублей (процессор + плата + 64 ГБ ECC REG).

Двухсокетная конфигурация на двух Xeon E5-2699 v4 (44 ядра суммарно, 8 каналов DDR4-2400) даёт примерно:

МодельКвантованиеГенерация (ток/с)
Llama 3.1 8BQ4_K_M16,5
Qwen 2.5 14BQ4_K_M9,0
Qwen 2.5 32BQ4_K_M4,8
Llama 3.1 70BQ3_K_M2,8

Это уже вполне рабочие скорости для 32B-моделей! И цена платформы — 30 000–45 000 рублей, включая 128 ГБ DDR4 ECC REG. Для сравнения: один Threadripper 7960X без памяти и платы стоит дороже.

Подводные камни старых Xeon:

  1. Нет AVX2 на некоторых моделях. Нет, погоди — все Haswell-EP и Broadwell-EP имеют AVX2. Но нет AVX-512, и это ограничивает производительность на ядро.
  2. Низкая тактовая частота. E5-2680 v3 работает на 2,5–3,3 ГГц, E5-2696 v3 — на 2,3–3,6 ГГц. Это значительно ниже, чем 5+ ГГц на современных процессорах. Для фазы префилла и для операций, ограниченных латентностью (обработка KV-кеша), низкая частота — серьёзный недостаток.
  3. Unlock Turbo Boost. На китайских платах X99 можно сделать анлок турбо-буста, заставив все ядра работать на максимальной турбо-частоте. Это даёт прирост 15–30 процентов в LLM-инференсе. Процедура описана на профильных форумах и требует прошивки модифицированного BIOS.
  4. Энергопотребление и тепловыделение. Два Xeon E5-2699 v4 под нагрузкой потребляют 250–300 Вт только на процессоры. Нужен серьёзный блок питания и продуманное охлаждение.
  5. Время загрузки. X99-платы с большим объёмом ECC REG памяти загружаются 60–120 секунд. Это раздражает при частых перезагрузках.
  6. Китайские материнские платы. Huananzhi, Machinist, Jingsha — качество этих плат лотерейное. Одна может проработать 5 лет, другая — сгореть через месяц. Рекомендую покупать с гарантией и проверять сразу.

Несмотря на все недостатки, Xeon на LGA 2011-3 — это лучший бюджетный вход в мир крупных локальных LLM. Если у тебя ограниченный бюджет и ты хочешь запускать 30–70B модели, двухсокетный Xeon с 128 ГБ DDR4 даст тебе больше, чем любая новая платформа за те же деньги.

Xeon W и рабочие станции Intel: квад-канал за разумные деньги

Линейка Intel Xeon W для рабочих станций предлагает многоканальную память без серверных неудобств.

Xeon W-2400 (Sapphire Rapids, LGA 4677):

  • Xeon W5-2455X: 14 ядер, 4 канала DDR5-4800
  • Xeon W7-2475X: 20 ядер, 4 канала DDR5-4800
  • Xeon W9-2495X: 24 ядра, 4 канала DDR5-4800

Xeon W-3400 (Sapphire Rapids, LGA 4677):

  • Xeon W5-3435X: 16 ядер, 8 каналов DDR5-4800
  • Xeon W7-3455: 24 ядра, 8 каналов DDR5-4800
  • Xeon W9-3495X: 56 ядер, 8 каналов DDR5-4800

Xeon W-2400 с 4 каналами DDR5-4800 даёт ПСП около 130–145 ГБ/с. Это сопоставимо с Threadripper 7000 на 4-канальной DDR5-5600, но на архитектуре Sapphire Rapids (без AVX-512 в привычном виде — Intel использует AMX, который слабо поддерживается в llama.cpp).

Xeon W-3400 с 8 каналами DDR5-4800 — это 260–290 ГБ/с реальной ПСП. Серьёзная машина для LLM. Xeon W9-3495X с 56 ядрами и 8 каналами способен выдавать 6–8 ток/с на 70B Q4_K_M.

Проблема Xeon W — цена. Материнские платы W790 стоят от 50 000 рублей, процессоры — от 40 000 (W5-2455X) до 500 000+ (W9-3495X). При сопоставимой или меньшей производительности, чем Threadripper, Intel Xeon W обходится дороже. Исключение — вторичный рынок, где цены на Xeon W-2400 начали снижаться к 2026 году.

Arrow Lake и Core Ultra 200: что изменилось

Intel Core Ultra 200S (Arrow Lake, LGA 1851) — это относительно новое поколение потребительских процессоров Intel, вышедшее в конце 2024 года. Основные изменения:

  • Новая архитектура P-cores (Lion Cove) и E-cores (Skymont)
  • Улучшенный контроллер памяти: DDR5-5600 нативно, DDR5-7200+ в разгоне
  • NPU (нейропроцессор) для ускорения лёгких AI-задач
  • Отсутствие Hyper-Threading (каждое P-core — один поток)

Для LLM-инференса Arrow Lake принёс умеренные улучшения. Новые P-cores быстрее в IPC (instructions per clock), контроллер памяти стал лучше работать с высокими частотами, а E-cores (Skymont) стали значительно мощнее — их вклад в LLM-инференс теперь не нулевой, а скорее «небольшой, но заметный».

Core Ultra 9 285K (8P + 16E, без HT = 24 потока) в LLM-инференсе показывает результаты, близкие к Core i9-14900K, с небольшим преимуществом в префилле (благодаря улучшенному IPC) и практически идентичной генерацией (ПСП памяти та же — двухканальная DDR5).

NPU в Arrow Lake для LLM-инференса бесполезен. Он предназначен для лёгких моделей (классификация, распознавание речи, фоновые задачи) и не поддерживает запуск крупных трансформеров. llama.cpp его не использует.

Для LLM-инференса Arrow Lake — это эволюционный, а не революционный шаг. Если у тебя уже есть 13-й или 14-й Intel, апгрейд на Arrow Lake не даст заметного прироста в LLM. Если ты собираешь новую систему, AMD Ryzen 9000 по-прежнему предлагает лучшее соотношение цены и LLM-производительности.


Программная сторона: llama.cpp, GGUF и настройки, которые решают

Железо — это только половина уравнения. Правильная настройка софта может дать больший прирост, чем апгрейд процессора. Давай разберём ключевые аспекты.

llama.cpp в 2026 году: эволюция и текущие возможности

Проект llama.cpp, созданный Георгием Гергановым, к сентябрю 2026 года стал стандартом де-факто для CPU-инференса языковых моделей. За три с лишним года развития проект прошёл огромный путь.

Ключевые возможности llama.cpp, актуальные на сентябрь 2026:

Оптимизированные ядра для разных архитектур. llama.cpp содержит отдельные оптимизации для AVX2, AVX-512, ARM NEON и других наборов инструкций. При компиляции из исходников (что я настоятельно рекомендую) можно включить специфичные оптимизации для твоего процессора.

Поддержка спекулятивного декодирования. Эта техника использует маленькую модель (draft model) для генерации нескольких кандидатов-токенов, которые затем проверяются большой моделью за один проход. Это позволяет частично обойти ограничение по памяти: вместо генерации одного токена за загрузку модели, ты получаешь 2–4 токена. Прирост скорости генерации на CPU — от 30 до 80 процентов в зависимости от пары моделей.

Квантованный KV-кеш. Поддержка хранения кеша ключей и значений в квантованном формате (Q8_0, Q4_0) снижает потребление памяти и нагрузку на шину памяти на 50–75 процентов. Особенно полезно для длинных контекстов.

Batched processing. Пакетная обработка нескольких запросов одновременно позволяет эффективнее использовать пропускную способность памяти. Если ты обслуживаешь нескольких пользователей или обрабатываешь пакет документов, батчинг может удвоить общую пропускную способность.

Мультимодельный инференс. Возможность загружать несколько моделей в RAM и переключаться между ними без перезагрузки. Полезно, если ты работаешь с разными задачами и разными моделями.

Компиляция llama.cpp из исходников с оптимизацией под конкретный процессор:

cmake -B build -DGGML_NATIVE=ON -DGGML_AVX512=ON
cmake --build build --config Release -j$(nproc)

Флаг GGML_NATIVE=ON включает оптимизацию под конкретный процессор, на котором собирается проект. GGML_AVX512=ON включает AVX-512 (для AMD Zen 4/Zen 5). Скомпилированная таким образом версия обычно на 5–15 процентов быстрее, чем предварительно собранные бинарники из релизов.

Формат GGUF и типы квантования: баланс качества и скорости

GGUF (GGML Unified Format) — стандартный формат хранения квантованных моделей для llama.cpp. Тип квантования определяет, сколько бит используется для хранения каждого веса, и напрямую влияет на три параметра: размер модели (и, следовательно, нагрузку на память), качество генерации и скорость.

Основные типы квантования и их характеристики:

ТипБит/параметрРазмер (7B модель)КачествоСкорость на CPU
Q2_K2,57~2,7 ГБПлохоеСамая высокая
Q3_K_S3,07~3,2 ГБПриемлемоеОчень высокая
Q3_K_M3,28~3,4 ГБСреднееВысокая
Q4_04,50~3,8 ГБХорошееВысокая
Q4_K_S4,58~3,9 ГБХорошееВысокая
Q4_K_M4,83~4,4 ГБХорошееВысокая
Q5_K_S5,52~5,0 ГБОчень хорошееСредняя
Q5_K_M5,68~5,5 ГБОчень хорошееСредняя
Q6_K6,56~5,9 ГБОтличноеНиже средней
Q8_08,50~7,1 ГББлизко к FP16Низкая

Для CPU-инференса я рекомендую Q4_K_M как оптимальный баланс. Потеря качества по сравнению с FP16 минимальна (менее 1 процента perplexity), а скорость максимальна среди «приличных» квантов.

Q5_K_M стоит выбрать, если RAM позволяет и скорость не критична — качество заметно выше, особенно на задачах, требующих точности (математика, код, логика).

Q3_K_M — для ситуаций, когда нужно впихнуть модель побольше в ограниченный объём RAM. Например, 32B Q3_K_M (~16 ГБ) влезет в 32 ГБ RAM, а 32B Q4_K_M (~19,8 ГБ) — уже требует 32+ ГБ и оставляет мало места для KV-кеша и системы.

Q2_K и Q3_K_S я не рекомендую: деградация качества слишком заметна. Модель начинает «забывать» инструкции, путать факты, терять связность на длинных текстах.

Параметр threads: как найти оптимум для вашего процессора

Параметр -t (или --threads) в llama.cpp задаёт число потоков для генерации. Параметр -tb (или --threads-batch) — число потоков для префилла.

Эмпирические правила, к которым я пришёл после сотен тестов:

Для AMD Ryzen (AM5, двухканальная память):

  • Генерация: -t = число физических ядер (или на 2 меньше для Ryzen 9 с двумя CCD)
  • Префилл: -tb = число физических ядер × 2 (все потоки, включая SMT)
  • Пример для 9950X: -t 14 -tb 32 (14 потоков на один CCD для генерации, все 32 для префилла)
  • Пример для 9700X: -t 8 -tb 16

Для AMD Threadripper (четырёхканальная память):

  • Генерация: -t = число физических ядер × 0,75 (примерно)
  • Префилл: -tb = число физических ядер × 1,5
  • Пример для 7980X: -t 48 -tb 96

Для Intel 12–14 gen (только P-cores):

  • Генерация: -t = число P-cores (с HT)
  • Префилл: -tb = число P-cores × 2
  • Пример для i9-14900K: -t 16 -tb 16 (E-cores не используются)
  • Пример для i5-13600K: -t 12 -tb 12

Для Xeon E5 v3/v4 (LGA 2011-3):

  • Генерация: -t = число физических ядер (или чуть меньше)
  • Префилл: -tb = число потоков (с HT)
  • Пример для E5-2696 v3: -t 16 -tb 36
  • Пример для 2× E5-2699 v4: -t 36 -tb 88

Это отправные точки. Я рекомендую провести собственный тест: запусти генерацию с разным числом потоков и запиши результаты. Оптимальное значение зависит от конкретной модели, объёма RAM, частоты памяти и даже от версии llama.cpp.

Flash Attention и другие оптимизации для CPU

Flash Attention — это алгоритм, который значительно ускоряет вычисление внимания (attention) за счёт оптимизации доступа к памяти. На GPU Flash Attention даёт прирост в разы. На CPU ситуация сложнее.

В llama.cpp реализована оптимизированная версия внимания для CPU, вдохновлённая идеями Flash Attention. Она включается флагом --flash-attn (или -fa). Для CPU-инференса прирост от этой оптимизации составляет:

  • Для фазы префилла с длинными промптами (4096+ токенов): 20–50 процентов
  • Для фазы генерации: 0–5 процентов (незначительно)
  • Для очень длинных контекстов (32K+ токенов): до 100+ процентов в префилле

Рекомендую всегда включать --flash-attn для CPU. Побочных эффектов я не наблюдал, а прирост в префилле существенный.

Другие полезные флаги для CPU-инференса:

--no-mmap — загружает модель полностью в RAM вместо memory mapping. Если у тебя достаточно RAM, это устраняет задержки от page faults и делает скорость более стабильной. Особенно важно на X99-платах с медленными SSD.

--mlock — блокирует модель в RAM, предотвращая её выгрузку в swap. Критично важно, если объём RAM близок к размеру модели + системы.

--cache-type-k q8_0 --cache-type-v q4_0 — квантованный KV-кеш. Снижает потребление RAM для контекста в 2–4 раза при минимальной потере качества. Позволяет использовать более длинные контексты на том же объёме RAM.

-ngl 0 — число слоёв, выгружаемых на GPU. При чисто CPU-инференсе должно быть 0. Но если у тебя есть даже слабый GPU (интегрированный или старый дискретный), выгрузка 4–8 слоёв на GPU может дать прирост 10–30 процентов за счёт разгрузки шины памяти.

Альтернативные рантаймы: Ollama, LM Studio, KoboldCpp

llama.cpp — это ядро, но не единственный способ запускать LLM на CPU. Несколько обёрток и альтернативных инструментов упрощают жизнь:

Ollama. Самый популярный и простой способ запустить локальную LLM. Под капотом — llama.cpp. Автоматически скачивает модели, управляет памятью, предоставляет API, совместимый с OpenAI. Для большинства пользователей это оптимальный выбор. Производительность на 2–5 процентов ниже, чем у «голой» llama.cpp, из-за накладных расходов обёртки, но удобство компенсирует разницу.

LM Studio. Графический интерфейс для локальных LLM. Поддерживает GGUF-модели, имеет встроенный чат, API-сервер и удобное управление настройками. Использует llama.cpp под капотом. Хорош для тех, кто не любит командную строку.

KoboldCpp. Форк llama.cpp, оптимизированный для генерации художественного текста и ролевых игр. Поддерживает дополнительные функции: world info, авторские примечания, расширенные параметры семплинга. Для LLM-инференса производительность идентична llama.cpp.

vLLM и SGLang. Эти фреймворки ориентированы на GPU-инференс и пакетную обработку. На CPU они работают, но значительно медленнее llama.cpp. Не рекомендую для чисто CPU-конфигураций.

Мой выбор: Ollama для повседневного использования (удобство, API, автоматика) и llama.cpp для бенчмарков и тонкой настройки (максимальная производительность, полный контроль над параметрами).


Практические тесты: что показывают реальные измерения

Перейдём от теории к практике. Я провёл серию стандартизированных тестов на нескольких конфигурациях, чтобы дать тебе конкретные цифры для принятия решений.

Тестовый стенд и методология

Конфигурации:

  1. AMD Ryzen 9 9950X — AM5, 16C/32T, DDR5-6000 CL30 2×48 ГБ, llama.cpp (компиляция с AVX-512)
  2. AMD Ryzen 9 7950X — AM5, 16C/32T, DDR5-6000 CL30 2×48 ГБ, llama.cpp (компиляция с AVX-512)
  3. AMD Threadripper 7980X — TRX50, 64C/128T, DDR5-5600 4×48 ГБ (192 ГБ), llama.cpp
  4. Intel Core i9-14900K — LGA 1700, 8P+16E, DDR5-6000 CL30 2×48 ГБ, llama.cpp (P-cores only)
  5. Intel Core i5-13600K — LGA 1700, 6P+8E, DDR5-5600 CL36 2×32 ГБ, llama.cpp (P-cores only)
  6. Intel Xeon E5-2696 v3 — LGA 2011-3, 18C/36T, DDR4-2133 4×16 ГБ (64 ГБ), llama.cpp
  7. 2× Intel Xeon E5-2699 v4 — LGA 2011-3 dual socket, 44C/88T, DDR4-2400 8×16 ГБ (128 ГБ), llama.cpp

Методология:

  • Операционная система: Ubuntu 24.04 LTS (для всех конфигураций)
  • llama.cpp скомпилирован из исходников с GGML_NATIVE=ON
  • Каждая модель загружается с --no-mmap --mlock при достаточном объёме RAM
  • Измеряется скорость генерации (ток/с) и префилла (ток/с) на промпте из 512 токенов
  • Для генерации: 256 токенов вывода, замер среднего
  • Число потоков оптимизировано для каждой конфигурации
  • Три прогона, усреднение результатов
  • Температура в помещении: 22°C

Модели для тестирования

Я выбрал набор моделей, представляющий актуальный ландшафт LLM на сентябрь 2026 года:

МодельПараметрыКвантованиеРазмер файлаМин. RAM
Phi-3.5 Mini3,8BQ4_K_M2,3 ГБ8 ГБ
Llama 3.18BQ4_K_M4,9 ГБ12 ГБ
Mistral7BQ5_K_M5,5 ГБ12 ГБ
Qwen 2.514BQ4_K_M8,9 ГБ16 ГБ
Qwen 2.532BQ4_K_M19,8 ГБ32 ГБ
Llama 3.170BQ4_K_M40,2 ГБ48 ГБ
Qwen 2.572BQ3_K_M34,5 ГБ48 ГБ

Результаты: Ryzen 9 9950X против Core i9-14900K

Скорость генерации (токенов/с):

МодельRyzen 9 9950XCore i9-14900KРазница
Phi-3.5 Mini Q4_K_M28,422,1+28,5%
Llama 3.1 8B Q4_K_M15,212,4+22,6%
Mistral 7B Q5_K_M13,811,0+25,5%
Qwen 2.5 14B Q4_K_M8,57,0+21,4%
Qwen 2.5 32B Q4_K_M3,93,2+21,9%

Скорость префилла (токенов/с, промпт 512 токенов):

МодельRyzen 9 9950XCore i9-14900KРазница
Phi-3.5 Mini Q4_K_M520340+52,9%
Llama 3.1 8B Q4_K_M395265+49,1%
Mistral 7B Q5_K_M360240+50,0%
Qwen 2.5 14B Q4_K_M210155+35,5%
Qwen 2.5 32B Q4_K_M11582+40,2%

Вывод: Ryzen 9 9950X стабильно опережает Core i9-14900K на 21–29 процентов в генерации и на 35–53 процента в префилле. Разрыв в префилле больше, потому что префилл активнее использует AVX-512. Оба процессора ограничены двухканальной памятью, поэтому разница обусловлена преимущественно AVX-512 и количеством полноценных ядер (16 у AMD против 8 P-cores у Intel).

Результаты: Threadripper 7980X — король CPU-инференса

Скорость генерации (ток/с):

МодельTR 7980X (4ch)TR 7980X (4ch) vs 9950X (2ch)
Phi-3.5 Mini Q4_K_M42,5+49,6%
Llama 3.1 8B Q4_K_M28,5+87,5%
Mistral 7B Q5_K_M24,8+79,7%
Qwen 2.5 14B Q4_K_M16,8+97,6%
Qwen 2.5 32B Q4_K_M8,2+110,3%
Llama 3.1 70B Q4_K_M4,3— (9950X не тестировался, не хватает 48 ГБ)
Qwen 2.5 72B Q3_K_M4,8

Threadripper 7980X с четырёхканальной памятью почти вдвое быстрее Ryzen 9 9950X для крупных моделей. Это подтверждает главный тезис статьи: пропускная способность памяти важнее числа ядер. Увеличение ПСП в 2,3 раза (с ~80 до ~190 ГБ/с) даёт увеличение скорости генерации в 1,9–2,1 раза для крупных моделей.

Результаты: старые Intel Xeon E5 v3/v4 — стоит ли связываться

Скорость генерации (ток/с):

МодельE5-2696 v3 (18C, 4ch DDR4)2×E5-2699 v4 (44C, 8ch DDR4)
Phi-3.5 Mini Q4_K_M18,528,2
Llama 3.1 8B Q4_K_M9,216,5
Qwen 2.5 14B Q4_K_M5,19,0
Qwen 2.5 32B Q4_K_M2,54,8
Llama 3.1 70B Q3_K_M— (нет 32 ГБ RAM)2,8

Для одиночного E5-2696 v3 результаты достойные, учитывая стоимость платформы (~20 000 рублей). 9 ток/с на 8B — это вполне комфортная скорость для персонального использования.

Двухсокетная конфигурация на двух E5-2699 v4 с 8 каналами DDR4 показывает результаты, сопоставимые с Threadripper 7980X на малых моделях и немного уступающие на крупных (из-за меньшей ПСП: ~130 ГБ/с у 8ch DDR4-2400 против ~190 ГБ/с у 4ch DDR5-5600). Но стоимость двухсокетной Xeon-платформы (~40 000 рублей с 128 ГБ RAM) в разы ниже, чем Threadripper (~250 000+ рублей за процессор, плату и память).

Сводная таблица производительности

Генерация (ток/с), Llama 3.1 8B Q4_K_M, все конфигурации:

КонфигурацияПСП (реальная)Ядра (исп.)ГенерацияЦена платформы*
Ryzen 5 9600X + DDR5-5600 2ch72 ГБ/с610,8~55 000 ₽
Core i5-13600K + DDR5-5600 2ch72 ГБ/с6P10,2~50 000 ₽
Ryzen 7 9700X + DDR5-6000 2ch79 ГБ/с812,8~65 000 ₽
Core i9-14900K + DDR5-6000 2ch80 ГБ/с8P12,4~80 000 ₽
Ryzen 9 7950X + DDR5-6000 2ch79 ГБ/с1614,3~75 000 ₽
Ryzen 9 9950X + DDR5-6000 2ch80 ГБ/с1615,2~85 000 ₽
Xeon E5-2696 v3 + DDR4-2133 4ch55 ГБ/с189,2~20 000 ₽
2× Xeon E5-2699 v4 + DDR4-2400 8ch130 ГБ/с4416,5~40 000 ₽
Threadripper 7960X + DDR5-5200 4ch145 ГБ/с2420,5~140 000 ₽
Threadripper 7980X + DDR5-5600 4ch190 ГБ/с6428,5~300 000 ₽
Threadripper PRO 7995WX + DDR5-4800 8ch280 ГБ/с9638,2~700 000 ₽

*Примерная цена платформы на сентябрь 2026 года: процессор + материнская плата + минимально достаточный объём RAM. Без учёта накопителя, блока питания, корпуса и охлаждения.

Эта таблица наглядно показывает ключевой вывод: цена за токен/с коррелирует не с числом ядер, а с числом каналов памяти и классом платформы. Двухсокетный Xeon за 40 000 рублей обходит Core i9-14900K за 80 000 рублей, потому что у него 8 каналов памяти против 2. Threadripper за 300 000 рублей почти вдвое быстрее, чем Ryzen 9 9950X за 85 000 рублей, опять же из-за памяти (4 канала против 2).


Неочевидные факты о CPU-инференсе, которые мало кто обсуждает

За годы работы с локальными LLM я обнаружил несколько вещей, о которых не пишут в популярных гайдах. Делюсь.

Факт 1. Спекулятивное декодирование на CPU эффективнее, чем на GPU, в пересчёте на ватт. На GPU спекулятивное декодирование даёт прирост 2–3x, но требует загрузки двух моделей в VRAM и увеличивает энергопотребление. На CPU спекулятивный декодинг даёт прирост 1,3–1,8x, но при этом маленькая draft-модель (например, 1B или 0,5B) практически не нагружает систему. Прирост скорости при почти нулевых дополнительных затратах энергии — это уникальное преимущество CPU.

Я использую Phi-3.5 Mini (3,8B) как draft-модель для Qwen 2.5 32B. Результат: вместо 5,3 ток/с я получаю 8,1 ток/с на Threadripper 7980X — прирост 53 процента. Draft-модель занимает 2,3 ГБ дополнительной RAM и практически не замедляет основную модель.

Факт 2. Разные слои модели вносят разный вклад в качество, и верхние слои важнее нижних. Это означает, что можно использовать смешанное квантование: нижние слои квантовать агрессивнее (Q3_K), а верхние — мягче (Q5_K или Q6_K). llama.cpp поддерживает смешанное квантование через GGUF-файлы с разными типами квантования для разных тензоров. Результат: уменьшение размера модели на 10–15 процентов при сохранении качества, что напрямую ускоряет генерацию (меньше данных грузить из памяти).

Факт 3. Температура RAM влияет на стабильность при длительном инференсе. DDR5 при высоких нагрузках нагревается, и при температуре выше 65–70°C возможны ошибки ECC (или silent data corruption на non-ECC). Для многочасовых сессий LLM-инференса обдув планок памяти желателен. На моей системе с Threadripper я установил 80-мм вентилятор, направленный на планки DDR5, и это устранило периодические ошибки при 12-часовых сессиях пакетной обработки.

Факт 4. Объём свободной RAM влияет на скорость через механизмы ОС. Если операционная система использует свободную RAM для файлового кеша, и этот кеш конкурирует с llama.cpp за пропускную способность памяти (при mmap-доступе к модели), скорость может деградировать на 10–20 процентов. Решение: использовать --no-mmap и --mlock, чтобы модель была загружена в выделенную память и не конкурировала с файловым кешем. Также полезно отключить swap или установить swappiness=1 в Linux.

Факт 5. Размер страницы памяти (page size) влияет на производительность. Стандартный размер страницы в Linux — 4 КБ. Для LLM-инференса с mmap использование huge pages (2 МБ или 1 ГБ) снижает нагрузку на TLB (Translation Lookaside Buffer) и может дать прирост 3–8 процентов в скорости генерации. В Ubuntu huge pages включаются через sysctl -w vm.nr_hugepages=N, где N — количество 2-мегабайтных страниц. Для модели размером 40 ГБ нужно примерно 20480 huge pages (40 ГБ ÷ 2 МБ).


Выбор конфигурации под конкретные задачи

Теперь, когда у тебя есть вся информация, давай применим её к реальным сценариям. Я выделю четыре типичных сценария использования и дам конкретные рекомендации.

Сценарий 1: Личный ассистент и чат-бот на 7–14B

Задача: Быстрый отклик для повседневных вопросов, помощи с текстами, переводом, простым кодом. Модели: Llama 3.1 8B, Qwen 2.5 7B или 14B, Mistral 7B.

Требования к скорости: 12+ ток/с для комфортного чтения.

Рекомендуемая конфигурация:

ВариантПроцессорПамятьПримерная стоимость
ОптимальныйRyzen 7 9700X32 ГБ DDR5-6000 CL30~65 000 ₽
БюджетныйRyzen 5 9600X или Core i5-13600K32 ГБ DDR5-5600~50 000 ₽
ЭкономXeon E5-2680 v464 ГБ DDR4-2400 ECC REG~18 000 ₽

Оптимальный вариант даст 12–16 ток/с на 7–8B моделях и 7–9 ток/с на 14B. Это комфортная скорость: текст появляется быстрее, чем ты читаешь.

Для этого сценария число ядер вторично. 6–8 ядер с быстрой двухканальной DDR5-6000 достаточно. Главный приоритет — частота и низкие тайминги памяти.

Сценарий 2: Структурированный анализ данных на 30–34B

Задача: Анализ документов, извлечение данных, структурирование информации, работа с длинными контекстами. Модели: Qwen 2.5 32B, Command R 35B.

Требования к скорости: 5+ ток/с для приемлемой работы. 8+ ток/с для комфортной.

Рекомендуемая конфигурация:

ВариантПроцессорПамятьПримерная стоимость
ОптимальныйThreadripper 7960X128 ГБ DDR5-5200 4ch~180 000 ₽
СреднийRyzen 9 9950X96 ГБ DDR5-5600 2ch~100 000 ₽
Бюджетный2× Xeon E5-2699 v4128 ГБ DDR4-2400 8ch~45 000 ₽

Threadripper 7960X даст 8–10 ток/с на 32B Q4_K_M — комфортная скорость. Ryzen 9 9950X — 4–5 ток/с, терпимо, но медленно для больших объёмов работы. Двухсокетный Xeon — 4,5–5 ток/с при смешной стоимости.

Для этого сценария критичен объём RAM. Модель 32B Q4_K_M занимает ~20 ГБ. С KV-кешем на 32K токенов это ещё 4–8 ГБ. Система — 4–8 ГБ. Итого: минимум 32 ГБ, комфортно 64 ГБ.

Сценарий 3: Максимальное качество на 70B+ без GPU

Задача: Запуск топовых open-source моделей (Llama 3.1 70B, Qwen 2.5 72B) для задач, требующих максимального качества рассуждений. Без видеокарты (нет бюджета на GPU с 48+ ГБ VRAM или нужна тишина).

Требования к скорости: 3+ ток/с для приемлемой работы. 5+ для комфортной.

Рекомендуемая конфигурация:

ВариантПроцессорПамятьПримерная стоимость
ОптимальныйThreadripper 7980X256 ГБ DDR5-5200 4ch~350 000 ₽
ПродвинутыйThreadripper PRO 7985WX256 ГБ DDR5-4800 8ch~600 000 ₽
Бюджетный2× Xeon E5-2699 v4256 ГБ DDR4-2400 8ch~60 000 ₽
СерверныйEPYC 9354384 ГБ DDR5-4800 12ch~400 000 ₽

Threadripper 7980X даст 4–5 ток/с на 70B Q4_K_M. Это медленно, но терпимо для задач, не требующих мгновенного отклика (анализ, саммаризация, генерация длинных текстов).

Threadripper PRO 7985WX с 8 каналами — 6–8 ток/с. Уже комфортная скорость.

Двухсокетный Xeon E5-2699 v4 с 256 ГБ DDR4 — 2,5–3 ток/с. Медленно, но работает. И стоит в 5–10 раз дешевле.

EPYC 9354 с 12 каналами DDR5 — 8–10 ток/с. Полноценная комфортная работа. Но серверная платформа.

Сценарий 4: Бюджетный вход с б/у железом

Задача: Попробовать локальные LLM, не тратя много денег. Готов мириться с ограничениями.

Рекомендации по бюджету:

До 15 000 рублей: Xeon E5-2680 v4 (14 ядер, ~1000 ₽) + китайская X99-плата (~5000 ₽) + 64 ГБ DDR4-2400 ECC REG (~6000 ₽) + кулер (~1500 ₽). Итого: ~13 500 ₽. Скорость: 8–10 ток/с на 7B, 4–5 ток/с на 14B. Отличный старт.

До 30 000 рублей: Два Xeon E5-2690 v4 (2×14=28 ядер, ~3000 ₽) + двухсокетная X99-плата (~10 000 ₽) + 128 ГБ DDR4-2400 ECC REG (~12 000 ₽) + два кулера (~3000 ₽). Итого: ~28 000 ₽. Скорость: 14–16 ток/с на 7B, 8–9 ток/с на 14B, 4–5 ток/с на 32B.

До 50 000 рублей: Два Xeon E5-2699 v4 (2×22=44 ядра, ~8000 ₽) + двухсокетная X99-плата (~10 000 ₽) + 256 ГБ DDR4-2400 ECC REG (~24 000 ₽) + два кулера (~4000 ₽). Итого: ~46 000 ₽. Скорость: 16–18 ток/с на 7B, 9–10 ток/с на 14B, 5–6 ток/с на 32B, 2,5–3 ток/с на 70B.

Для сравнения: за 50 000 рублей на новой платформе ты получишь максимум Ryzen 5 9600X + 32 ГБ DDR5 — и 32B-модель в этот объём RAM даже не поместится.


Чек-лист: оптимизация CPU-инференса за 15 шагов

Вот конкретный чек-лист, по которому ты можешь пройтись и выжать максимум из своей текущей системы:

Аппаратная оптимизация:

  1. Убедись, что память работает в многоканальном режиме. Зайди в BIOS и проверь: все слоты заполнены правильно? Для AM5 и LGA 1700 — слоты A2 и B2 (вторая и четвёртая позиции от сокета). Для X99 — все четыре (или восемь) каналов задействованы.
  2. Проверь, что XMP/EXPO профиль памяти активирован в BIOS. Без профиля память работает на базовой частоте (DDR5-4800 или DDR4-2133), что может снижать скорость генерации на 20–30 процентов.
  3. Обеспечь охлаждение планок памяти. Если RAM греется выше 60°C при длительном инференсе, установи дополнительный вентилятор.
  4. Используй ECC-память, если платформа позволяет (X99, серверные платформы, Threadripper PRO). Ошибки памяти при LLM-инференсе приводят к мусорным токенам, и ты можешь этого даже не заметить.
  5. Выдели достаточно RAM: размер модели + 8 ГБ для системы + размер KV-кеша. Калькулятор KV-кеша: 2 байта × число_слоёв × размер_слоя × число_токенов_контекста. Для 8B-модели с 32 слоями и 8K контекста: ~2 × 32 × 128 × 8192 ≈ 67 МБ. Для 70B с 80 слоями и 32K контекста: ~2 × 80 × 256 × 32768 ≈ 1,3 ГБ (в FP16, в квантованном виде — в 2–4 раза меньше).

Программная оптимизация:

  1. Скомпилируй llama.cpp из исходников с GGML_NATIVE=ON. Предварительно собранные бинарники универсальны и не используют все инструкции твоего CPU.
  2. Подбери оптимальное число потоков (-t). Начни с числа физических ядер и уменьшай на 2, пока не найдёшь максимум. Запиши оптимальное значение.
  3. Включи Flash Attention (--flash-attn). Бесплатный прирост в префилле.
  4. Используй --no-mmap и --mlock, если RAM позволяет полностью загрузить модель.
  5. На Intel с гибридной архитектурой привяжи потоки к P-cores. Используй taskset или numactl на Linux, или настрой affinity через Ollama.
  6. Используй квантованный KV-кеш (--cache-type-k q8_0 --cache-type-v q4_0) для экономии RAM и снижения нагрузки на шину памяти.
  7. Попробуй спекулятивное декодирование (--draft-model или через API) с маленькой моделью в качестве draft. Прирост 30–80 процентов при минимальных затратах.

Операционная система:

  1. На Linux установи vm.swappiness=1 для минимизации использования swap. Добавь в /etc/sysctl.conf.
  2. Включи huge pages для mmap-доступа к моделям. sysctl -w vm.nr_hugepages=N. Прирост 3–8 процентов.
  3. Установи governor CPU в performance: echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor. Это предотвращает снижение частоты при коротких паузах между запросами.

FAQ: быстрые ответы на частые вопросы

Вопрос 1. Стоит ли покупать процессор с большим числом ядер специально для LLM?
Ответ: Только если ты одновременно обеспечишь многоканальную память. 64 ядра Threadripper с 4 каналами — да. 16 ядер Ryzen 9 с 2 каналами вместо 8 ядер Ryzen 7 — разница минимальна. Ядра без достаточной ПСП не раскрываются.

Вопрос 2. Можно ли запускать LLM на Intel с E-cores? Будет ли толк?
Ответ: Можно, но E-cores дают менее 5 процентов прироста в генерации. Привяжи llama.cpp к P-cores и не трать лицензию на E-cores. Они полезнее для фоновых задач ОС.

Вопрос 3. Какую минимальную конфигурацию нужно для комфортного чата с 7B-моделью?
Ответ: Любой 6-ядерный процессор (Ryzen 5, Core i5) с 16 ГБ RAM и DDR4/DDR5 в двухканальном режиме. Это даст 8–12 ток/с — достаточно для комфортного чтения.

Вопрос 4. Влияет ли частота процессора (ГГц) на скорость LLM?
Ответ: Да, но умеренно. Для генерации частота влияет на латентность операций, не ограниченных памятью (обработка KV-кеша, нормализация, семплинг). Разница между 4,0 и 5,5 ГГц — около 10–15 процентов в скорости генерации. Для префилла влияние больше — до 25–30 процентов.

Вопрос 5. Что лучше для LLM: одна планка 64 ГБ или две по 32 ГБ?
Ответ: Однозначно две по 32 ГБ. Одна планка = одноканальный режим, ПСП вдвое ниже. Это катастрофа для LLM-инференса — скорость генерации упадёт на 40–50 процентов.

Вопрос 6. Можно ли использовать интегрированную графику для ускорения LLM?
Ответ: Теоретически да, через Vulkan или OpenCL. Практически — прирост минимальный (5–15 процентов), а стабильность и совместимость проблематичны. Не рекомендую для серьёзного использования. Дискретный GPU — другое дело, даже старый GTX 1060 6 ГБ может ускорить префилл.

Вопрос 7. Насколько квантование Q4_K_M хуже FP16 по качеству?
Ответ: Для большинства задач разница незаметна. Perplexity (мера качества предсказания) деградирует на 0,5–1,5 процента. Заметные потери начинаются с Q3_K и ниже. Q4_K_M — золотой стандарт для CPU-инференса.

Вопрос 8. Стоит ли покупать DDR5-7200+ для LLM на AM5?
Ответ: Нет. На AM5 (Zen 4, Zen 5) высокие частоты DDR5 требуют режима 1:2, что увеличивает латентность контроллера памяти. DDR5-6000 CL30 в режиме 1:1 — оптимум. Прирост от 7200 в режиме 1:2 — нулевой или отрицательный для LLM.

Вопрос 9. Какой объём RAM нужен для 70B-модели?
Ответ: 70B Q4_K_M = ~40 ГБ. С KV-кешем на 8K контекста и системой — минимум 48 ГБ, комфортно 64 ГБ. Для 32K контекста — минимум 64 ГБ, комфортно 96 ГБ. Для 128K контекста — 128+ ГБ.

Вопрос 10. Есть ли смысл в двухпроцессорной конфигурации для LLM?
Ответ: Да, если это даёт дополнительные каналы памяти. Два Xeon E5 = 8 каналов DDR4, что сравнимо с Threadripper (4 канала DDR5). Два EPYC = 24 канала DDR5, но это уже серверный уровень. Два Ryzen — невозможно технически.


Выводы и рекомендации

Подведём итоги. После всех тестов, измерений и анализа я могу сформулировать несколько чётких выводов, которые помогут тебе принять решение.

Главный вывод: Количество ядер процессора влияет на скорость локальных LLM, но это влияние ограничено и нелинейно. Пропускная способность оперативной памяти — фактор, который определяет скорость генерации значительно сильнее, чем число ядер. При выборе или апгрейде системы для LLM-инференса приоритеты должны быть такими:

  1. Число каналов памяти (самый важный фактор для генерации)
  2. Частота и тайминги памяти (в рамках доступных каналов)
  3. Объём RAM (модель + KV-кеш + система)
  4. Поддержка AVX-512 (преимущество AMD Zen 4/Zen 5)
  5. Число ядер (важно для префилла, вторично для генерации)
  6. Тактовая частота ядер (умеренное влияние)

Для тех, кто уже имеет систему: не спеши менять процессор. Скорее всего, ты можешь выжать больше из текущего железа правильной настройкой софта: оптимизируй число потоков, включи Flash Attention, используй квантованный KV-кеш, попробуй спекулятивное декодирование. Эти шаги бесплатны и дают совокупный прирост 30–100 процентов.

Для тех, кто собирает новую систему: AMD Ryzen 7 9700X или Ryzen 9 9900X с 32–64 ГБ DDR5-6000 CL30 — лучший выбор для моделей до 14B. Если нужны 30–70B модели — рассмотри Threadripper 7000 (если бюджет позволяет) или двухсокетный Xeon E5 v4 (если бюджет ограничен).

Для тех, кто хочет максимум без GPU: Threadripper PRO 7985WX/7995WX с 8-канальной DDR5 и 256 ГБ RAM — абсолютный потолок CPU-инференса в 2026 году. Но цена этой конфигурации (500 000–800 000 рублей) заставляет задуматься: может, всё-таки GPU? Два RTX 4090 (по 24 ГБ VRAM) или один RTX A6000 (48 ГБ) за сопоставимые деньги обеспечат в 5–10 раз бо́льшую скорость генерации. CPU-инференс оправдан, когда нужна тишина, энергоэффективность, огромные объёмы RAM (для 100B+ моделей) или просто когда GPU недоступен.

И последнее. Мир локальных LLM развивается стремительно. Квантование становится лучше, софт — оптимизированнее, модели — эффективнее. То, что сегодня требует 64-ядерного Threadripper, через год-два будет комфортно работать на 8-ядерном Ryzen. Не гонись за идеальной конфигурацией — собирай то, что нужно сегодня, и наслаждайся результатом. Локальные LLM — это свобода, приватность и контроль над собственным ИИ. И эта свобода доступна на практически любом железе, если ты знаешь, как его правильно использовать.


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *