Test: Hoe Ollama Intel CPU-prestaties en efficiënte kernen gebruikt
Ollama op Intel CPU: Efficiëntie versus prestatie-kernen
Ik heb een theorie om te testen – als we alle kernen op een Intel CPU gebruiken, verhoogt dat de snelheid van LLMs? Het irriteert me dat de nieuwe gemma3 27 bit model (gemma3:27b, 17 GB op ollama) niet past in de 16 GB VRAM van mijn GPU en gedeeltelijk op de CPU draait.
Om precies te zijn
ollama ps
toont
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Hoewel het er niet zo slecht uitziet, zijn 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ënte kernen?
OLLAMA_NUM_THREADS configuratieparameter
Ollama heeft een omgevingsvariabele configuratieparameter genaamd 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 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. Laten we ollama vertellen om een mix van prestatie- en efficiënte kernen 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!
Laten we nu extreem gaan! Gebruik alle fysieke kernen!
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ënte kernen:
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 een LLM niet past in de GPU VRAM en enkele lagen worden door Ollama naar de CPU verplaatst
- Kan de LLM-prestatie met 10-14% worden verhoogd door de
num_thread
parameter te gebruiken - De prestatieverlies door het verplaatsen 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…
Nuttige links
- Hoe Ollama parallele aanvragen verwerkt
- Ollama modellen verplaatsen naar een ander station of map
- Ollama cheat sheet
- LLM-snelheidsprestatievergelijking
- Deepseek-r1 op Ollama
- Detectie van logische fouten met LLMs
- Implementeer een Hugo-generatie website op AWS S3
- Vergelijking van LLM-samenvattingsvermogen
- Effectieve prompts schrijven voor LLMs
- Degradatieproblemen in Intel’s 13e en 14e generatie CPUs
- Converteer HTML-inhoud naar Markdown met behulp van LLM en Ollama
- Is de Quadro RTX 5880 Ada 48GB van enige waarde?
- Herordenen van tekstdocumenten met Ollama en Qwen3 Embedding model – in Go