Test: Wie Ollama die Leistung und Effizienz der Intel CPU-Kerne nutzt
Ollama auf Intel CPU: Effiziente vs. Leistungscores
Ich habe eine Theorie, die ich testen möchte – wenn man alle Kerne eines Intel-Prozessors nutzt, würde das die Geschwindigkeit von LLMs erhöhen? Test: Wie Ollama die Leistung und effizienten Kerne von Intel-Prozessoren nutzt
Es stört mich, dass das neue Gemma3-Modell mit 27 Bit (gemma3:27b, 17 GB auf Ollama) nicht in die 16 GB VRAM meines GPUs passt und teilweise auf dem CPU läuft.
Um präzise zu sein:
ollama ps
zeigt:
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Obwohl es nicht katastrophal aussieht, sind die Schichten geteilt. Die tatsächliche Auslastung ist: GPU: 28%, CPU: 560%. Ja, mehrere Kerne werden genutzt.
Und hier ist die Idee:
Was, wenn wir Ollama dazu bringen, alle Intel-CPU-Kerne – sowohl der Leistungs- als auch der Effizienzkerne – zu nutzen?
OLLAMA_NUM_THREADS-Konfigurationsparameter
Ollama hat eine Umgebungsvariable OLLAMA_NUM_THREADS, die Ollama sagen soll, wie viele Threads und Kerne entsprechend genutzt werden sollen.
Zuerst habe ich es versucht, auf 3 Kerne zu beschränken:
sudo xed /etc/systemd/system/ollama.service
# füge OLLAMA_NUM_THREADS=3 hinzu als
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
Aber es hat nicht funktioniert.
Ollama nutzte immer noch etwa 560 % der CPU, wenn Gemma 3 27B LLM lief.
Pech.
num_thread-Call-Option
Lassen Sie uns versuchen:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Warum ist der Himmel blau?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
Das Ergebnis:
- CPU-Auslastung: 585%
- GPU-Auslastung: 25%
- GPU-Leistung: 67w
- Leistungsbewertung: 6,5 Token/sec
Jetzt versuchen wir, die Kerne zu verdoppeln. Wir bitten Ollama, eine Mischung aus Leistungs- und Effizienzkerne zu nutzen:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Warum ist der Himmel blau?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
Das Ergebnis:
- CPU-Auslastung: 1030%
- GPU-Auslastung: 26%
- GPU-Leistung: 70w
- Leistungsbewertung: 7,4 t/s
Gut! Die Leistung stieg um ~14 %!
Jetzt gehen wir extrem! Alle physischen Kerne nutzen!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Warum ist der Himmel blau?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
Das Ergebnis:
- CPU-Auslastung: 1250%
- GPU-Auslastung: 10–26 % (instabil)
- GPU-Leistung: 67w
- Leistungsbewertung: 6,9 t/s
Okay. Jetzt sehen wir einen Leistungsverlust. Versuchen wir, 8 Leistungs- + 4 Effizienzkerne:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Warum ist der Himmel blau?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
Das Ergebnis:
- CPU-Auslastung: 801%
- GPU-Auslastung: 27 % (instabil)
- GPU-Leistung: 70w
- Leistungsbewertung: 7,1 t/s
Hier und da.
Zur Vergleich – Gemma 3 14b passt besser in die GPU VRAM, ist aber weniger intelligent als Gemma 27b.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "Warum ist der Himmel blau?",
"stream": false
}' | jq .
Das Ergebnis:
- CPU-Auslastung: 106%
- GPU-Auslastung: 94 % (instabil)
- GPU-Leistung: 225w
- Leistungsbewertung: 61,1 t/s
Das nennen wir Leistung. Obwohl Gemma 3 27b intelligenter als 14b ist, ist sie nicht zehnmal intelligenter!
Schlussfolgerung
Wenn ein LLM nicht in die GPU VRAM passt und einige Schichten von Ollama auf die CPU ausgelagert werden
- Können wir die LLM-Leistung um 10–14 % erhöhen, indem wir den
num_thread
-Parameter bereitstellen - Der Leistungsverlust aufgrund der Auslagerung ist viel höher und wird durch diesen Anstieg nicht ausgeglichen.
- Besser eine leistungsstärkere GPU mit mehr VRAM haben. Die RTX 3090 ist besser als die RTX 5080, obwohl ich keine davon habe…
Nützliche Links
- Wie Ollama parallelle Anfragen verarbeitet
- Ollama-Modelle auf einen anderen Laufwerk oder Ordner verschieben
- Ollama-Übersicht
- Vergleich der LLM-Geschwindigkeit
- Deepseek-r1 auf Ollama
- Erkennung logischer Fehlschlüsse mit LLMs
- Hugo-generierte Website auf AWS S3 bereitstellen
- Vergleich der Zusammenfassungsfähigkeiten von LLMs
- Effektive Prompts für LLMs schreiben
- Degradationsprobleme bei Intels 13. und 14. Generation CPUs
- HTML-Inhalt in Markdown konvertieren mit LLM und Ollama
- Ist die Quadro RTX 5880 Ada 48GB gut?
- Wiederbewertung von Textdokumenten mit Ollama und Qwen3-Embedding-Modell – in Go