Test: Hoe Ollama Intel CPU-prestaties en efficiënte kernen gebruikt
Ollama op Intel CPU: Efficiëntie versus prestatiescores
Ik heb een theorie om te testen - als we alle kernen op een Intel CPU gebruiken, zou dat de snelheid van LLMs verhogen? Het irriteert me dat de nieuwe gemma3 27 bit model (gemma3:27b, 17 GB op ollama) niet in de 16 GB VRAM van mijn GPU past en gedeeltelijk op de CPU draait.
Voor meer informatie over doorvoer, latentie, VRAM en benchmarks over runtime en hardware, zie LLM-prestaties: benchmarks, beperkingen en optimalisatie.
Om precies te zijn
ollama ps
toont
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Hoewel het er niet erg slecht uitziet, is het wel de lagen gesplitst. De werkelijke belasting is: GPU: 28%, CPU: 560%. Ja, meerdere kernen worden gebruikt.

En hier is een idee:
Wat als we ollama aanzetten om ALLE Intel CPU-kernen te gebruiken - zowel prestatie als efficiëntie soorten?
OLLAMA_NUM_THREADS configuratieparameter
Ollama heeft een omgevingsvariabele configuratieparameter OLLAMA_NUM_THREADS die ollama moet vertellen hoeveel threads en kernen het moet gebruiken.
Ik probeerde het eerst te beperken tot 3 kernen:
sudo xed /etc/systemd/system/ollama.service
# voeg OLLAMA_NUM_THREADS=3 toe als
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
maar dat werkte niet.
Ollama gebruikte nog steeds ongeveer 560% van de CPU bij het uitvoeren van de Gemma 3 27B LLM.
Slechte geluk.
num_thread aanroepoptie
Laten we proberen
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Waarom is de blauwe lucht blauw?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
Het resultaat:
- CPU-gebruik: 585%
- GPU-gebruik: 25%
- GPU-kracht: 67w
- Prestatieevaluatie: 6,5 tokens/sec
Laten we nu de kernen verdubbelen. Vertel ollama om een mix van prestatie- en efficiëntiekernen te gebruiken:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Waarom is de blauwe lucht blauw?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
Het resultaat:
- CPU-gebruik: 1030%
- GPU-gebruik: 26%
- GPU-kracht: 70w
- Prestatieevaluatie: 7,4 t/s
Goed! De prestaties zijn met ongeveer 14% gestegen!
Nu gaan we extreem! Alle fysieke kernen gebruiken!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Waarom is de blauwe lucht blauw?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
Het resultaat:
- CPU-gebruik: 1250%
- GPU-gebruik: 10-26% (onstabiel)
- GPU-kracht: 67w
- Prestatieevaluatie: 6,9 t/s
Goed. Nu zien we een lichte daling in prestaties. Laten we proberen 8 prestatie + 4 efficiëntie:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Waarom is de blauwe lucht blauw?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
Het resultaat:
- CPU-gebruik: 801%
- GPU-gebruik: 27% (onstabiel)
- GPU-kracht: 70w
- Prestatieevaluatie: 7,1 t/s
Hier en daar.
Voor vergelijking - Gemma 3 14b is minder slim dan Gemma 27b, maar past wel mooi in de GPU VRAM.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "Waarom is de blauwe lucht blauw?",
"stream": false
}' | jq .
Het resultaat:
- CPU-gebruik: 106%
- GPU-gebruik: 94% (onstabiel)
- GPU-kracht: 225w
- Prestatieevaluatie: 61,1 t/s
Dat noemen we een prestatie. Hoewel Gemma 3 27b slimmer is dan 14b, is het niet tien keer zo slim!
Conclusie
Als de LLM niet in de GPU VRAM past en enkele lagen door Ollama op de CPU worden uitgelost
- Kan de LLM-prestatie met 10-14% worden verhoogd door de
num_threadparameter te geven - De prestatieverlies door het uitladen is veel groter en wordt niet gecompenseerd door deze toename.
- Het is beter om een krachtiger GPU met meer VRAM te hebben. De RTX 3090 is beter dan de RTX 5080, hoewel ik geen van deze heb…
Voor meer benchmarks, CPU/GPU-aftuning en prestatiebegeleiding, controleer ons LLM-prestaties: benchmarks, beperkingen en optimalisatie hub.