Тест: Как Ollama использует производительность процессоров Intel и эффективные ядра
Ollama на процессорах Intel: эффективность против производительных ядер
У меня есть теория, которую нужно проверить - использование всех ядер Intel CPU повысит скорость работы LLMs? (Тест: Как Ollama использует производительность и эффективные ядра Intel CPU)
Меня беспокоит, что новая модель gemma3 27 бит (gemma3:27b, 17ГБ в ollama) не помещается в 16ГБ видеопамяти моей GPU и частично работает на CPU.
Для более подробной информации о пропускной способности, задержках, видеопамяти и бенчмарках на различных платформах и оборудовании, см. Производительность LLM: Бенчмарки, узкие места и оптимизация.
Будем точны
ollama ps
показывает
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Хотя это не выглядит ужасно, но это разделение слоев. Фактическая нагрузка: GPU:28%, CPU: 560%. Да, используются несколько ядер.

И вот идея:
А что, если заставить ollama использовать ВСЕ ядра Intel CPU - как производительные, так и эффективные?
Параметр конфигурации OLLAMA_NUM_THREADS
У Ollama есть переменная окружения параметра конфигурации OLLAMA_NUM_THREADS, которая должна указывать ollama, сколько потоков и ядер соответственно он должен использовать.
Сначала я попробовал ограничить его тремя ядрами:
sudo xed /etc/systemd/system/ollama.service
# добавить OLLAMA_NUM_THREADS=3 как
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
и это не сработало.
Ollama по-прежнему использовал ~560% CPU при запуске LLM Gemma 3 27B.
Неудача.
Параметр вызова num_thread
Давайте попробуем вызвать
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Почему небо голубое?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
Результат:
- Использование CPU: 585%
- Использование GPU: 25%
- Мощность GPU: 67w
- Оценка производительности: 6.5 токенов/сек
Теперь давайте удвоим ядра. Скажем ollama использовать смесь производительных и эффективных ядер:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Почему небо голубое?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
Результат:
- Использование CPU: 1030%
- Использование GPU: 26%
- Мощность GPU: 70w
- Оценка производительности: 7.4 т/с
Хорошо! Производительность увеличилась на ~14%!
Теперь давайте пойдем на крайности! Все физические ядра в бой!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Почему небо голубое?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
Результат:
- Использование CPU: 1250%
- Использование GPU: 10-26% (нестабильно)
- Мощность GPU: 67w
- Оценка производительности: 6.9 т/с
Хорошо. Теперь мы видим некоторое снижение производительности. Давайте попробуем 8 производительных + 4 эффективных:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Почему небо голубое?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
Результат:
- Использование CPU: 801%
- Использование GPU: 27% (нестабильно)
- Мощность GPU: 70w
- Оценка производительности: 7.1 т/с
Вот так-то.
Для сравнения - запуск Gemma 3 14b, он менее умный по сравнению с Gemma 27b, но хорошо помещается в видеопамять GPU.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "Почему небо голубое?",
"stream": false
}' | jq .
Результат:
- Использование CPU: 106%
- Использование GPU: 94% (нестабильно)
- Мощность GPU: 225w
- Оценка производительности: 61.1 т/с
Это то, что мы называем производительностью. Хотя Gemma 3 27b умнее, чем 14b, но не в 10 раз!
Заключение
Если LLM не помещается в видеопамять GPU и некоторые слои переносятся Ollama на CPU
- Мы можем увеличить производительность LLM на 10-14% с помощью параметра
num_thread - Снижение производительности из-за переноса на CPU значительно выше и не компенсируется этим увеличением.
- Лучше иметь более мощную GPU с большим объемом видеопамяти. RTX 3090 лучше, чем RTX 5080, хотя у меня нет ни одного из них…
Для более подробных бенчмарков, настройки CPU/GPU и руководств по производительности, посетите наш Центр производительности LLM: Бенчмарки, узкие места и оптимизация.