Prueba: Cómo Ollama está utilizando el rendimiento de la CPU de Intel y los núcleos eficientes
Ollama en CPU de Intel: núcleos eficientes vs. de rendimiento
Tengo una teoría que quiero probar: ¿utilizar todos los núcleos en un procesador Intel aumentaría la velocidad de los LLMs? Me molesta que el nuevo modelo gemma3 de 27 bits (gemma3:27b, 17 GB en ollama) no entre en los 16 GB de VRAM de mi GPU, y se ejecute parcialmente en el CPU.
Para obtener más información sobre throughput, latencia, VRAM y benchmarks en diferentes entornos de ejecución y hardware, vea Rendimiento de LLM: Benchmarks, Cuellos de Botella y Optimización.
Para ser preciso
ollama ps
muestra
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Aunque no parece terrible, es la división de capas. La carga real es: GPU: 28%, CPU: 560%. Sí, varios núcleos se están utilizando.

Y aquí está la idea:
¿Qué pasaría si empujamos a ollama para que utilice TODOS los núcleos del procesador Intel, tanto de rendimiento como eficientes?
Parámetro de configuración OLLAMA_NUM_THREADS
Ollama tiene un parámetro de configuración de variable de entorno OLLAMA_NUM_THREADS que supuestamente le dice a ollama cuántos hilos y núcleos debe utilizar.
Primero intenté restringirlo a 3 núcleos:
sudo xed /etc/systemd/system/ollama.service
# poner OLLAMA_NUM_THREADS=3 como
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
pero no funcionó.
Ollama seguía utilizando ~560% del CPU al ejecutar el LLM Gemma 3 27B.
Mala suerte.
Opción de llamada num_thread
Vamos a intentar llamar
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "¿Por qué es azul el cielo?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
El resultado:
- Uso del CPU: 585%
- Uso del GPU: 25%
- Potencia del GPU: 67w
- Evaluación del rendimiento: 6,5 tokens/segundo
Ahora intentemos duplicar los núcleos. Le diremos a ollama que utilice una combinación de núcleos de rendimiento y eficientes:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "¿Por qué es azul el cielo?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
El resultado:
- Uso del CPU: 1030%
- Uso del GPU: 26%
- Potencia del GPU: 70w
- Evaluación del rendimiento: 7,4 t/s
¡Bueno! El rendimiento aumentó aproximadamente un 14%.
Ahora vayamos al extremo. ¡Utilicemos todos los núcleos físicos!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "¿Por qué es azul el cielo?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
El resultado:
- Uso del CPU: 1250%
- Uso del GPU: 10-26% (inestable)
- Potencia del GPU: 67w
- Evaluación del rendimiento: 6,9 t/s
Bien. Ahora vemos una caída en el rendimiento. Intentemos usar 8 núcleos de rendimiento + 4 eficientes:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "¿Por qué es azul el cielo?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
El resultado:
- Uso del CPU: 801%
- Uso del GPU: 27% (inestable)
- Potencia del GPU: 70w
- Evaluación del rendimiento: 7,1 t/s
Aquí y allá.
Para comparación - al ejecutar Gemma 3 14b, es menos inteligente en comparación con Gemma 27b, pero encaja bien en la VRAM de la GPU.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "¿Por qué es azul el cielo?",
"stream": false
}' | jq .
El resultado:
- Uso del CPU: 106%
- Uso del GPU: 94% (inestable)
- Potencia del GPU: 225w
- Evaluación del rendimiento: 61,1 t/s
Eso es lo que llamamos rendimiento. Aunque Gemma 3 27b es más inteligente que 14b, no es 10 veces más.
Conclusión
Si el LLM no encaja en la VRAM de la GPU y algunas capas se transfieren a la CPU por parte de Ollama
- Podemos aumentar el rendimiento del LLM en un 10-14% proporcionando el parámetro
num_thread - La caída de rendimiento debido a la transferencia es mucho mayor y no se compensa con este aumento.
- Tener una GPU más potente con más VRAM. La RTX 3090 es mejor que la RTX 5080, aunque no tengo ninguna de estas…
Para más benchmarks, ajuste de CPU/GPU y guía de rendimiento, consulte nuestro Rendimiento de LLM: Benchmarks, Cuellos de Botella y Optimización.