परीक्षण: ओलामा कैसे इंटेल CPU के प्रदर्शन और कुशल कोर का उपयोग कर रहा है

ओलामा इंटेल सीपीयू पर दक्षता वाले कोर्स बनाम प्रदर्शन कोर्स

Page content

मेरे पास एक सिद्धांत है जिसे परीक्षण करना है - अगर इंटेल के CPU पर सभी कोर का उपयोग करने से LLMs की गति बढ़ेगी? (परीक्षण: ओलामा कैसे इंटेल CPU के प्रदर्शन और कुशल कोर का उपयोग करता है)
यह मुझे चिंता कर रहा है कि नए gemma3 27 बिट मॉडल (gemma3:27b, 17GB ओलामा पर) मेरे GPU के 16GB VRAM में फिट नहीं हो रहा है और इसके कुछ हिस्सा CPU पर चल रहा है।

सटीक रूप से:

ollama ps

दिखाता है:

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

हालांकि यह बुरा नहीं लगता, लेकिन यह परतों के विभाजन के कारण है।
वास्तविक भार है: GPU:28%, CPU: 560%। हां, कई कोर का उपयोग किया जा रहा है।

लम्बा और उड़ते हुए CPU के चित्र

और यहां एक विचार है:

अगर हम ओलामा को सभी इंटेल CPU कोर के उपयोग के लिए अग्र और कुशल प्रकार के दोनों को उपयोग करने के लिए धकेल दें?

OLLAMA_NUM_THREADS सेटिंग पैरामीटर

ओलामा में एक पर्यावरण चर सेटिंग पैरामीटर OLLAMA_NUM_THREADS है जो ओलामा को बताने के लिए है कि वह कितने थ्रेड और कोर के अनुसार उपयोग करे।

पहले मैंने इसे 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

लेकिन यह काम नहीं किया।

ओलामा अभी भी Gemma 3 27B LLM चलाते समय ~560% के CPU का उपयोग कर रहा था।

खराब भाग्य।

num_thread कॉल विकल्प

चलो इसे प्रयोग करते हैं:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 8
}
}'  | jq .

परिणाम:

  • CPU उपयोग: 585%
  • GPU उपयोग: 25%
  • GPU शक्ति: 67w
  • प्रदर्शन मूल्यांकन: 6.5 tokens/sec

अब हम दोगुने कोर का प्रयोग करते हैं। ओलामा को प्रदर्शन और कुशल कोर के मिश्रण के उपयोग के लिए कहते हैं:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 16
}
}'  | jq .

परिणाम:

  • CPU उपयोग: 1030%
  • GPU उपयोग: 26%
  • GPU शक्ति: 70w
  • प्रदर्शन मूल्यांकन: 7.4 t/s

अच्छा! प्रदर्शन में लगभग 14% की वृद्धि हुई!

अब हम अत्यधिक तक पहुंचते हैं! सभी भौतिक कोर के उपयोग के लिए:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 20
}
}'  | jq .

परिणाम:

  • CPU उपयोग: 1250%
  • GPU उपयोग: 10-26% (अस्थायी)
  • GPU शक्ति: 67w
  • प्रदर्शन मूल्यांकन: 6.9 t/s

ठीक। अब हम प्रदर्शन में कुछ गिरावट देखते हैं। चलो कुछ 8 प्रदर्शन + 4 कुशल के प्रयोग करते हैं:

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:27b",  
"prompt": "Why is the blue sky blue?",  
"stream": false,
"options":{
  "num_thread": 12
}
}'  | jq .

परिणाम:

  • CPU उपयोग: 801%
  • GPU उपयोग: 27% (अस्थायी)
  • GPU शक्ति: 70w
  • प्रदर्शन मूल्यांकन: 7.1 t/s

यहां-तहां।

तुलना के लिए - Gemma 3 14b चलाना, जो Gemma 27b के मुकाबले कम बुद्धिमान है, लेकिन GPU VRAM में बेहतर फिट होता है।

curl http://localhost:11434/api/generate -d '
{  
"model": "gemma3:12b-it-qat",  
"prompt": "Why is the blue sky blue?",  
"stream": false
}'  | jq .

परिणाम:

  • CPU उपयोग: 106%
  • GPU उपयोग: 94% (अस्थायी)
  • GPU शक्ति: 225w
  • प्रदर्शन मूल्यांकन: 61.1 t/s

यही हम उच्च प्रदर्शन कहते हैं। यद्यपि Gemma 3 27b Gemma 14b के मुकाबले बुद्धिमान है, लेकिन इसके 10 गुना नहीं है!

निष्कर्ष

यदि LLM GPU VRAM में फिट नहीं होता है और कुछ परतों को Ollama द्वारा CPU पर बाहर निकाल दिया जाता है

उपयोगी लिंक