Test: Jak Ollama wykorzystuje wydajność i efektywne jądra procesora Intel
Ollama na procesorze Intel CPU: wydajność w porównaniu do rdzeni o wysokiej wydajności
Mam teorię do przetestowania – czy wykorzystanie Wszystkich rdzeni na procesorze Intel zwiększy szybkość LLM? Denerwuje mnie fakt, że nowy model gemma3 27 bit (gemma3:27b, 17 GB na ollama) nie mieści się w 16 GB VRAM mojej karty graficznej i częściowo działa na procesorze.
Być precyzyjnym
ollama ps
pokazuje
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
Choć nie wygląda to źle, to są warstwy rozdzielone. Rzeczywisty obciążenie to: GPU:28%, CPU: 560%. Tak, kilka rdzeni jest wykorzystywanych.
I tu jest pomysł:
Co jeśli zmusimy ollama do wykorzystania WSZYSTKICH rdzeni procesora Intel – zarówno wydajnych, jak i efektywnych?
Parametr konfiguracyjny OLLAMA_NUM_THREADS
Ollama ma parametr konfiguracyjny zmiennej środowiskowej OLLAMA_NUM_THREADS, który ma informować ollama, ile wątków i rdzeni powinien wykorzystać.
Najpierw spróbowałem ograniczyć go do 3 rdzeni:
sudo xed /etc/systemd/system/ollama.service
# dodaj OLLAMA_NUM_THREADS=3 jako
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
i nie zadziałało.
Ollama nadal wykorzystywał ~560% procesora, gdy uruchamiał się Gemma 3 27B LLM.
Niestety.
Opcja num_thread
Spróbujmy wywołać
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Dlaczego niebo jest niebieskie?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
Wynik:
- Użycie procesora: 585%
- Użycie karty graficznej: 25%
- Moc karty graficznej: 67w
- Ocena wydajności: 6,5 tokenów/sec
Teraz spróbujmy podwoić liczby rdzeni. Powiedzmy ollama, aby wykorzystywał mieszankę rdzeni wydajnych i efektywnych:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Dlaczego niebo jest niebieskie?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
Wynik:
- Użycie procesora: 1030%
- Użycie karty graficznej: 26%
- Moc karty graficznej: 70w
- Ocena wydajności: 7,4 t/s
Dobrze! Wydajność wzrosła o około 14%!
Teraz przejdźmy do ekstremum! Wszystkie fizyczne rdzenie!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Dlaczego niebo jest niebieskie?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
Wynik:
- Użycie procesora: 1250%
- Użycie karty graficznej: 10-26% (niestabilne)
- Moc karty graficznej: 67w
- Ocena wydajności: 6,9 t/s
Dobrze. Teraz widzimy pewne spadek wydajności. Spróbujmy 8 rdzeni wydajnych + 4 efektywne:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Dlaczego niebo jest niebieskie?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
Wynik:
- Użycie procesora: 801%
- Użycie karty graficznej: 27% (niestabilne)
- Moc karty graficznej: 70w
- Ocena wydajności: 7,1 t/s
Tu i tam.
W porównaniu – uruchamiając Gemma 3 14b, jest mniej inteligentny niż Gemma 27b, ale dobrze mieści się w VRAM karty graficznej.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "Dlaczego niebo jest niebieskie?",
"stream": false
}' | jq .
Wynik:
- Użycie procesora: 106%
- Użycie karty graficznej: 94% (niestabilne)
- Moc karty graficznej: 225w
- Ocena wydajności: 61,1 t/s
To jest to, co nazywamy wydajnością. Choć Gemma 3 27b jest bardziej inteligentny niż 14b, to nie o 10 razy!
Wnioski
Jeśli LLM nie mieści się w VRAM karty graficznej i niektóre warstwy są przekazywane przez Ollama na procesor
- Możemy zwiększyć wydajność LLM o 10-14% podając parametr
num_thread
- Spadek wydajności z powodu przekazywania jest znacznie większy i nie kompensowany tym wzrostem.
- Lepiej mieć bardziej potężną kartę graficzną z większą ilością VRAM. RTX 3090 jest lepszy niż RTX 5080, choć nie mam żadnej z tych kart…
Przydatne linki
- Jak Ollama obsługuje żądania równoległe
- Przeniesienie modeli Ollama na inny dysk lub folder
- Ollama cheatsheet
- Porównanie wydajności prędkości LLM
- Deepseek-r1 na Ollama
- Wykrywanie błędów logicznych z użyciem LLM
- Wdrażanie strony wygenerowanej przez Hugo na AWS S3
- Porównanie zdolności sumaryzacji LLM
- Pisanie skutecznych promptów dla LLM
- Problemy degradacji w 13. i 14. generacji procesorów Intel
- Konwersja treści HTML na Markdown za pomocą LLM i Ollama
- Czy Quadro RTX 5880 Ada 48GB jest dobry?
- Przestawianie dokumentów tekstowych z użyciem Ollama i modelu Qwen3 Embedding – w Go