اختبار: كيف يستخدم Ollama أداء وحدات المعالجة المركزية ووحدات المعالجة الفعالة من إنتل
أولاما على معالج إنتل: الكفاءة مقابل أداء النواة
لدي نظرية أريد اختبارها - هل استخدام جميع النوى على معالج Intel CPU سيزيد سرعة نماذج LLM؟ (اختبار: كيف يستخدم Ollama أداء معالج Intel ووحدات النوى الفعالة) يزعجني أن نموذج gemma3 27 بت (gemma3:27b، 17GB على ollama) لا يناسب 16GB VRAM لبطاقتي الرسومية، ويتم تشغيله جزئيًا على المعالج.
لأكون دقيقًا
ollama ps
يظهر:
gemma3:27b a418f5838eaf 22 GB 29%/71% CPU/GPU
رغم أن المظهر ليس سيئًا، إلا أن الطبقات مُوزعة. الحمل الفعلي هو: GPU:28%، CPU: 560%. نعم، تُستخدم عدة نوى.
وهنا الفكرة:
ماذا لو دفعنا ollama لاستخدام جميع نوى Intel CPU - كل من الأداء والفعالية؟
معلمة OLLAMA_NUM_THREADS
لدي Ollama معلمة تكوين متغير البيئة OLLAMA_NUM_THREADS التي من المفترض أن تخبر Ollama عدد الخيوط والنوى التي يجب استخدامها.
جربت تقييدها أولاً إلى 3 نوى:
sudo xed /etc/systemd/system/ollama.service
# ضع OLLAMA_NUM_THREADS=3 كـ
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
ولم يعمل.
ظل Ollama يستخدم ~560% من المعالج عند تشغيل نموذج Gemma 3 27B LLM.
الحظ السيئ.
خيار num_thread للاتصال
لنحاول الاتصال
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "لماذا السماء زرقاء؟",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
النتيجة:
- استخدام المعالج: 585%
- استخدام GPU: 25%
- قوة GPU: 67 واط
- تقييم الأداء: 6.5 رمز/ثانية
الآن دعنا نجرب تضاعف النوى. نخبر Ollama باستخدام مزيج من نوى الأداء ونوى الفعالية:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "لماذا السماء زرقاء؟",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
النتيجة:
- استخدام المعالج: 1030%
- استخدام GPU: 26%
- قوة GPU: 70 واط
- تقييم الأداء: 7.4 رمز/ثانية
جيد! ازداد الأداء بنسبة ~14%!
الآن دعنا نذهب إلى أقصى حد! نستخدم جميع النوى الفيزيائية!
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "لماذا السماء زرقاء؟",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
النتيجة:
- استخدام المعالج: 1250%
- استخدام GPU: 10-26% (غير مستقر)
- قوة GPU: 67 واط
- تقييم الأداء: 6.9 رمز/ثانية
حسنًا. الآن نرى انخفاضًا في الأداء. لنحاول استخدام 8 أداء + 4 فعالة:
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "لماذا السماء زرقاء؟",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
النتيجة:
- استخدام المعالج: 801%
- استخدام GPU: 27% (غير مستقر)
- قوة GPU: 70 واط
- تقييم الأداء: 7.1 رمز/ثانية
هنا وهناك.
للاستعارة - تشغيل Gemma 3 14b، وهو أقل ذكاءً مقارنة بـ Gemma 27b، لكنه يناسب VRAM لبطاقتي الرسومية بشكل أفضل.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "لماذا السماء زرقاء؟",
"stream": false
}' | jq .
النتيجة:
- استخدام المعالج: 106%
- استخدام GPU: 94% (غير مستقر)
- قوة GPU: 225 واط
- تقييم الأداء: 61.1 رمز/ثانية
هذا ما نسميه أداءً. حتى لو كان Gemma 3 27b أذكى من 14b، إلا أنه ليس 10 مرات!
الخلاصة
إذا لم يناسب نموذج LLM VRAM لبطاقة GPU، وتم تحميل بعض الطبقات بواسطة Ollama إلى المعالج
- يمكننا زيادة أداء LLM بنسبة 10-14% من خلال توفير معلمة
num_thread
- انخفاض الأداء بسبب التحميل أعلى بكثير ولا يتم تعويضه بهذه الزيادة.
- يجب أن يكون لديك GPU أقوى مع VRAM أكثر. RTX 3090 أفضل من RTX 5080، على الرغم من أنني لا أملك أي من هذه…
روابط مفيدة
- كيف يتعامل Ollama مع الطلبات المتزامنة
- نقل نماذج Ollama إلى محرك أو مجلد مختلف
- قائمة مصطلحات Ollama
- مقارنة أداء سرعة نماذج LLM
- Deepseek-r1 على Ollama
- كشف الأخطاء المنطقية باستخدام نماذج LLM
- نشر الموقع المُنشأ بواسطة Hugo على AWS S3
- مقارنة قدرات تلخيص نماذج LLM
- كتابة محفزات فعالة لنماذج LLM
- مشاكل التدهور في معالجات Intel الجيل 13 و14
- تحويل محتوى HTML إلى نصوص Markdown باستخدام LLM و Ollama
- هل Quadro RTX 5880 Ada 48GB جيد؟
- إعادة ترتيب وثائق النص باستخدام Ollama ونموذج Qwen3 Embedding - في Go