Une unité centrale de traitementCPU, souvent appelée simplement processeur, est le composant central d'un ordinateur qui exécute les instructions et effectue les principaux calculs nécessaires au fonctionnement du système. Elle gère les opérations arithmétiques, logiques, de contrôle et d'entrée/sortie (E/S) de base spécifiées par les instructions du logiciel. Dans les domaines de l'intelligence artificielle (IA) et de l'apprentissage automatique (ML), alors que le matériel spécialisé comme les GPU et les TPU excelle dans le traitement parallèle pour des tâches telles que l'entraînement de modèles d'apprentissage profond, l'CPU reste un composant essentiel et polyvalent qui orchestre le flux de travail global.
Rôle dans l'IA et l'apprentissage automatique
Les unités centrales de traitement sont conçues comme des processeurs polyvalents, excellant dans l'exécution rapide de séquences d'instructions et dans la gestion de diverses tâches de calcul. Les principales caractéristiques qui influent sur les performances sont la vitesse d'horloge (nombre d'opérations par seconde) et le nombre de cœurs (permettant l'exécution parallèle des tâches). Bien que les unités centrales modernes de fabricants tels que Intel et AMD comportent plusieurs cœurs, ils ne possèdent pas l'architecture massivement parallèle des GPU, ce qui les rend moins adaptés aux multiplications matricielles à grande échelle courantes dans la formation au deep learning.
Cependant, les unités centrales sont indispensables dans les pipelines d'IA/ML pour plusieurs fonctions critiques :
- Préparation des données : Les tâches telles que le chargement des ensembles de données, le nettoyage des données, la transformation et l'augmentation des données s'exécutent souvent efficacement sur les unités centrales. Des bibliothèques comme Pandas et certaines parties de Scikit-learn dépendent fortement du traitement par CPU . La préparation des données pour les projets de vision par ordinateur est une étape courante CPU.
- Orchestration du flux de travail : Les CPU gèrent le flux d'exécution global des pipelines ML, en coordonnant les tâches entre les différents composants matériels (comme les GPU) et les modules logiciels.
- Modèles ML traditionnels : De nombreux algorithmes ML classiques, tels que les machines à vecteurs de support (SVM) et les forêts aléatoires, sont souvent formés et fonctionnent efficacement sur les CPU.
- Inférence : Bien que les GPU offrent un débit élevé pour l'inférence, les CPU sont fréquemment utilisés pour l'inférence en temps réel, en particulier dans les environnements aux ressources limitées(Edge AI) ou lorsque la latence pour les prédictions uniques est priorisée par rapport au débit des lots. Des frameworks comme ONNX Runtime et la boîte à outils OpenVINO d'Intel offrent des capacités d'inférence optimisées sur les CPU. Les modèles Ultralytics peuvent être exportés vers des formats tels que ONNX pour le déploiement sur l CPU , comme l'indique la documentation sur l'exportation des modèles.
- Opérations d'entrée/sortie (E/S) : Les unités centrales gèrent la lecture et l'écriture des données à partir du stockage et de la communication réseau, ce qui est essentiel pour le chargement des modèles et des données.
CPU vs. GPU et TPU
La principale différence entre les CPU, les GPU et les TPU réside dans leur architecture et l'usage auquel ils sont destinés :
- CPU: Processeur polyvalent optimisé pour l'exécution à faible latence de tâches séquentielles. Il possède quelques cœurs puissants. Idéal pour le flux de contrôle, les fonctions du système d'exploitation et divers calculs.
- GPU: À l'origine pour le graphisme, aujourd'hui largement utilisé pour l'IA. Comporte des milliers de petits cœurs optimisés pour le traitement parallèle de grands blocs de données (comme les matrices dans l'apprentissage profond). Voir les GPUNVIDIA pour des exemples. Accélère considérablement la formation pour les modèles tels que Ultralytics YOLO.
- TPU: Matériel personnalisé deGoogle, spécialement conçu pour accélérer les calculs tensor utilisés dans les réseaux neuronaux, en particulier dans le cadre de l'application TensorFlow TensorFlow. Optimisé pour un débit élevé et une efficacité sur des charges de travail ML spécifiques.
Même dans les systèmes qui s'appuient fortement sur les GPU ou les TPU pour l'entraînement de modèles complexes comme YOLOv10 ou YOLO11l'CPU gère l'ensemble du système, prépare les données et s'occupe des parties du flux de travail qui ne sont pas adaptées aux accélérateurs. Choisir le bon matériel implique de comprendre ces compromis pour un déploiement efficace des modèles.
Exemples réels d'IA/ML utilisant l'CPU
- Traitement du langage naturel (NLP) Prétraitement : Les tâches telles que la tokenisation, qui consiste à décomposer le texte en unités plus petites (mots ou sous-mots), sont fondamentales dans le traitement du langage naturel. Les bibliothèques telles que Hugging Face Tokenizers effectuent souvent ces opérations de manière efficace sur l'CPU avant que les données ne soient transmises à un GPU pour l'inférence ou l'entraînement du modèle.
- Inférence sur les appareils Edge : De nombreuses applications Edge AI déploient des modèles ML sur des appareils dont la puissance et les ressources de calcul sont limitées, comme un Raspberry Pi ou des appareils basés sur l'architecture ARM. Dans ces scénarios, l'inférence s'exécute souvent directement sur le CPU l'appareil, éventuellement à l'aide de bibliothèques optimisées comme TensorFlow Lite ou OpenVINO afin d'obtenir des performances acceptables pour des tâches telles que la détection d'objets de base ou le repérage de mots-clés. La gestion de ces déploiements peut être facilitée par des plateformes comme Ultralytics HUB.
Il est essentiel de comprendre les capacités et les limites de l'CPU pour concevoir et optimiser les systèmes d'IA de bout en bout, du traitement des données(voir le guide sur la collecte des données) au déploiement efficace sur diverses plateformes matérielles.