Test : Comment Ollama utilise les performances du processeur Intel et les cœurs efficaces
Ollama sur processeur Intel : cœurs d'efficacité vs cœurs de performance
J’ai une théorie à tester - si l’utilisation de tous les cœurs d’un processeur Intel augmenterait la vitesse des LLMs ? Cela me tracasse que le nouveau modèle gemma3 27 bit (gemma3:27b, 17 Go sur ollama) ne s’adapte pas dans les 16 Go de VRAM de ma carte graphique, et qu’il s’exécute partiellement sur le CPU.
Pour être précis
ollama ps
affiche
gemma3:27b a418f5838eaf 22 Go 29%/71% CPU/GPU
Bien que cela ne semble pas terrible, c’est la répartition des couches. La charge réelle est : GPU : 28 %, CPU : 560 %. Oui, plusieurs cœurs sont utilisés.
Et voici une idée :
Et si on poussait ollama à utiliser TOUS les cœurs du processeur Intel - tant les cœurs de performance que les cœurs efficaces ?
Paramètre de configuration OLLAMA_NUM_THREADS
Ollama a un paramètre de configuration d’environnement OLLAMA_NUM_THREADS qui est censé indiquer à ollama combien de threads et de cœurs il devrait utiliser.
J’ai d’abord essayé de le limiter à 3 cœurs :
sudo xed /etc/systemd/system/ollama.service
# ajouter OLLAMA_NUM_THREADS=3 comme
# Environment="OLLAMA_NUM_THREADS=3"
sudo systemctl daemon-reload
sudo systemctl restart ollama
mais cela n’a pas fonctionné.
Ollama utilisait toujours environ 560 % du CPU lors de l’exécution du LLM Gemma 3 27B.
Mauvaise chance.
Option de rappel num_thread
Essayons maintenant d’appeler
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Pourquoi le ciel est-il bleu ?",
"stream": false,
"options":{
"num_thread": 8
}
}' | jq .
Le résultat :
- Utilisation du CPU : 585 %
- Utilisation de la GPU : 25 %
- Puissance de la GPU : 67 W
- Évaluation des performances : 6,5 tokens/sec
Maintenant, essayons de doubler le nombre de cœurs. Disons à ollama d’utiliser un mélange de cœurs de performance et de cœurs efficaces :
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Pourquoi le ciel est-il bleu ?",
"stream": false,
"options":{
"num_thread": 16
}
}' | jq .
Le résultat :
- Utilisation du CPU : 1030 %
- Utilisation de la GPU : 26 %
- Puissance de la GPU : 70 W
- Évaluation des performances : 7,4 t/s
Très bien ! Les performances ont augmenté de ~14 % !
Maintenant, allons plus loin ! Utilisons tous les cœurs physiques :
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Pourquoi le ciel est-il bleu ?",
"stream": false,
"options":{
"num_thread": 20
}
}' | jq .
Le résultat :
- Utilisation du CPU : 1250 %
- Utilisation de la GPU : 10-26 % (instable)
- Puissance de la GPU : 67 W
- Évaluation des performances : 6,9 t/s
D’accord. Maintenant, nous observons une baisse des performances. Essayons un mélange de 8 cœurs de performance + 4 cœurs efficaces :
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:27b",
"prompt": "Pourquoi le ciel est-il bleu ?",
"stream": false,
"options":{
"num_thread": 12
}
}' | jq .
Le résultat :
- Utilisation du CPU : 801 %
- Utilisation de la GPU : 27 % (instable)
- Puissance de la GPU : 70 W
- Évaluation des performances : 7,1 t/s
Ici et là.
À titre de comparaison - l’exécution du modèle Gemma 3 14b est moins performant que le Gemma 27b, mais il s’adapte bien à la VRAM de la GPU.
curl http://localhost:11434/api/generate -d '
{
"model": "gemma3:12b-it-qat",
"prompt": "Pourquoi le ciel est-il bleu ?",
"stream": false
}' | jq .
Le résultat :
- Utilisation du CPU : 106 %
- Utilisation de la GPU : 94 % (instable)
- Puissance de la GPU : 225 W
- Évaluation des performances : 61,1 t/s
C’est ce qu’on appelle une performance. Même si le Gemma 3 27b est plus intelligent que le 14b, il ne l’est pas de 10 fois !
Conclusion
Si le LLM ne tient pas dans la VRAM de la GPU et que certaines couches sont déchargées par Ollama sur le CPU
- On peut augmenter les performances du LLM de 10 à 14 % en fournissant le paramètre
num_thread
- La baisse de performance due à la décharge est bien plus importante et non compensée par cette augmentation.
- Il vaut mieux avoir une carte graphique plus puissante avec plus de VRAM. La RTX 3090 est meilleure que la RTX 5080, bien que je n’en aie aucune de ces cartes…
Liens utiles
- Comment Ollama gère les requêtes parallèles
- Déplacer les modèles Ollama vers un autre disque ou dossier
- Feuille de rappel Ollama
- Comparaison de la vitesse des performances des LLM
- Deepseek-r1 sur Ollama
- Détection des fautes logiques avec les LLM
- Déployer un site web généré par Hugo sur AWS S3
- Comparaison des capacités de résumé des LLM
- Rédiger des prompts efficaces pour les LLM
- Problèmes de dégradation des processeurs Intel de 13e et 14e génération
- Convertir du contenu HTML en Markdown à l’aide d’un LLM et d’Ollama
- La Quadro RTX 5880 Ada 48 Go est-elle bonne ?
- Reranking des documents texte avec Ollama et le modèle d’embedding Qwen3 - en Go