Uji Coba: Bagaimana Ollama Menggunakan Kinerja dan Inti Efisien CPU Intel

Ollama pada CPU Intel: Efisiensi vs. Inti Kinerja

Konten Halaman

Saya punya teori untuk diuji - jika memanfaatkan semua inti pada CPU Intel akan meningkatkan kecepatan LLM? Ini mengganggu saya bahwa model baru gemma3 27 bit (gemma3:27b, 17GB pada ollama) tidak masuk ke dalam VRAM 16GB GPU saya, dan sebagian berjalan di CPU.

Untuk lebih tepatnya

ollama ps

menunjukkan

gemma3:27b    a418f5838eaf    22 GB    29%/71% CPU/GPU

Meskipun tampaknya tidak buruk, tetapi lapisan terbagi. Beban aktualnya adalah: GPU:28%, CPU: 560%. Ya, beberapa inti digunakan.

Potret Llama dan CPU terbang

Dan di sini ide:

Apa jika kita mendorong ollama untuk menggunakan SEMUA inti CPU Intel - baik jenis Performa maupun Efisien?

OLLAMA_NUM_THREADS parameter konfigurasi

Ollama memiliki parameter konfigurasi variabel lingkungan OLLAMA_NUM_THREADS yang seharusnya memberi tahu ollama berapa banyak thread dan inti yang seharusnya digunakan.

Saya mencoba membatasinya ke 3 inti terlebih dahulu:

sudo xed /etc/systemd/system/ollama.service

# masukkan OLLAMA_NUM_THREADS=3 sebagai
# Environment="OLLAMA_NUM_THREADS=3"

sudo systemctl daemon-reload
sudo systemctl restart ollama

dan tidak berhasil.

Ollama tetap menggunakan sekitar 560% CPU saat menjalankan LLM Gemma 3 27B.

Kebetulan buruk.

Opsi num_thread pemanggilan

Mari coba memanggil

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Mengapa langit biru?",  
"stream": false,
"options":{
  "num_thread": 8
}
}'  | jq .

Hasilnya:

  • Penggunaan CPU: 585%
  • Penggunaan GPU: 25%
  • Daya GPU: 67w
  • Evaluasi kinerja: 6,5 token/detik

Sekarang mari coba gandakan inti. Memberi tahu ollama untuk menggunakan campuran inti performa dan efisien:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Mengapa langit biru?",  
"stream": false,
"options":{
  "num_thread": 16
}
}'  | jq .

Hasilnya:

  • Penggunaan CPU: 1030%
  • Penggunaan GPU: 26%
  • Daya GPU: 70w
  • Evaluasi kinerja: 7,4 t/d

Bagus! Kinerja meningkat sekitar 14%!

Sekarang mari kita pergi ekstrem! Semua inti fisik pergi!

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Mengapa langit biru?",  
"stream": false,
"options":{
  "num_thread": 20
}
}'  | jq .

Hasilnya:

  • Penggunaan CPU: 1250%
  • Penggunaan GPU: 10-26% (tidak stabil)
  • Daya GPU: 67w
  • Evaluasi kinerja: 6,9 t/d

Baik. Sekarang kita melihat penurunan kinerja. Mari coba beberapa 8 Performa + 4 efisien:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Mengapa langit biru?",  
"stream": false,
"options":{
  "num_thread": 12
}
}'  | jq .

Hasilnya:

  • Penggunaan CPU: 801%
  • Penggunaan GPU: 27% (tidak stabil)
  • Daya GPU: 70w
  • Evaluasi kinerja: 7,1 t/d

Di sini-sana.

Untuk perbandingan - menjalankan Gemma 3 14b, kurang cerdas dibandingkan Gemma 27b, tetapi masuk ke dalam VRAM GPU dengan baik.

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:12b-it-qat",  
"prompt": "Mengapa langit biru?",  
"stream": false
}'  | jq .

Hasilnya:

  • Penggunaan CPU: 106%
  • Penggunaan GPU: 94% (tidak stabil)
  • Daya GPU: 225w
  • Evaluasi kinerja: 61,1 t/d

Itulah yang kita sebut kinerja. Meskipun Gemma 3 27b lebih cerdas daripada 14b, tetapi tidak sepuluh kali lebih baik!

Kesimpulan

Jika LLM tidak masuk ke dalam VRAM GPU dan beberapa lapisan dikirimkan oleh Ollama ke CPU

Tautan yang berguna