Test: Hoe Ollama Intel CPU-prestaties en efficiënte kernen gebruikt

Ollama op Intel CPU: Efficiëntie versus prestatiescores

Inhoud

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.

Het portret van Llama en vliegende CPUs

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

Voor meer benchmarks, CPU/GPU-aftuning en prestatiebegeleiding, controleer ons LLM-prestaties: benchmarks, beperkingen en optimalisatie hub.