Améliorer la gestion des tâches dans des systèmes à criticité mixte
Un nouveau cadre améliore la réactivité des systèmes gérant des priorités de tâches variées.
Jiapeng Guan, Ran Wei, Dean You, Yingquan Wang, Ruizhe Yang, Hui Wang, Zhe Jiang
― 8 min lire
Table des matières
- Contexte
- Les Problèmes
- Une Nouvelle Approche : MESC
- Caractéristiques Clés de MESC
- Le Composant Matériel : Accélérateurs DNN
- Architecture Gemmini
- Le Composant Logiciel : Intégration au Système d'Exploitation
- Planification des tâches
- Surveillance des Tâches
- Résultats Expérimentaux
- Tests de Changement de Contexte
- Exécution Réussie des Tâches
- Applications Futures
- Expansion au-delà des DNN
- Conclusion
- Source originale
Dans le paysage technologique d'aujourd'hui, il y a un besoin croissant de systèmes capables de gérer efficacement des tâches complexes tout en garantissant que les fonctions critiques restent fiables. Ces systèmes, appelés Systèmes à criticité mixte (MCS), sont conçus pour gérer des tâches avec différents niveaux d'importance. Par exemple, dans une voiture, un système pourrait prioriser les fonctions de sécurité, comme l'évitement de collision, tout en gérant des fonctions moins critiques, comme les options de divertissement.
Les MCS modernes utilisent souvent un mélange de différents types de matériel pour réaliser le job, ce qui peut aider à répondre à la demande croissante en puissance de calcul. Cependant, beaucoup de ces systèmes rencontrent des défis pour gérer efficacement les tâches en fonction de leur importance. Cet article va discuter d'une nouvelle approche conçue pour s'attaquer à ces problèmes, en se concentrant spécifiquement sur la manière d'améliorer la performance des composants matériels utilisés dans les MCS.
Contexte
Les MCS doivent gérer des tâches qui varient en termes de criticité. Les tâches à haute criticité nécessitent une exécution rapide pour maintenir la sécurité et le fonctionnement, tandis que les tâches de moindre criticité peuvent tolérer des délais. Beaucoup de ces systèmes emploient du matériel spécialisé, comme des accélérateurs de réseaux de neurones profonds (DNN), pour accélérer le calcul. Cependant, ce matériel a souvent du mal avec la priorisation des tâches.
Un problème significatif qui survient est le phénomène des inversions de priorité. Cela se produit lorsque des tâches de faible priorité prennent des ressources système, faisant que les tâches de haute priorité attendent plus longtemps que nécessaire. De tels délais peuvent entraîner des problèmes graves, surtout dans des applications critiques pour la sécurité. Par exemple, dans un système automobile, un retard dans le traitement des données d'évitement de collision peut avoir des conséquences mortelles.
Les Problèmes
Un des principaux défis dans les MCS, c'est que beaucoup de composants matériels sont conçus pour un haut débit plutôt que pour un changement de tâche efficace. Cela signifie que les tâches sont souvent traitées d'une manière qui ne permet pas aux tâches de haute priorité d'interrompre les tâches de faible priorité en cours. Cela entraîne de longues périodes d'attente pour des tâches importantes.
Pour remédier à ces problèmes, certains chercheurs ont envisagé de répartir les charges de travail entre différents systèmes ou d'utiliser des solutions logicielles qui modifient la façon dont les tâches sont gérées. Cependant, faire ces ajustements nécessite souvent des changements significatifs à la fois au niveau du matériel et du logiciel, ce qui peut être long et coûteux.
Une Nouvelle Approche : MESC
Pour surmonter ces défis, nous proposons un nouveau cadre appelé Make Each Switch Count (MESC). L'objectif de MESC est de fournir un moyen plus efficace de passer d'une tâche à l'autre à un niveau de granularité beaucoup plus fin, permettant une réaction immédiate aux tâches de haute priorité sans avoir besoin d'arrêter complètement les tâches de moindre priorité en cours.
Caractéristiques Clés de MESC
Préemption au Niveau des Instructions : MESC permet d'interrompre les tâches au niveau des instructions individuelles, plutôt que seulement à la fin des algorithmes entiers. Cela réduit considérablement le temps d'attente pour les tâches de haute priorité.
Structure Système Cohérente : MESC intègre des changements matériels et logiciels pour créer un système cohésif capable de gérer plusieurs tâches efficacement. Cela signifie concevoir un nouvel accélérateur qui fonctionne bien avec les composants matériels et logiciels existants tout en améliorant la gestion des tâches.
Validation Théorique : Avec la mise en œuvre pratique, MESC inclut un modèle théorique qui aide à garantir que les nouvelles méthodes sont fiables et prévisibles dans leur comportement.
Accélérateurs DNN
Le Composant Matériel :Les accélérateurs DNN sont des pièces de matériel spécialisées conçues pour effectuer des calculs complexes rapidement, ce qui les rend idéaux pour des tâches comme la reconnaissance d'images et le traitement du langage naturel. Cependant, leur conception les rend souvent difficiles à intégrer dans des systèmes de gestion de tâches traditionnels.
Architecture Gemmini
Un exemple d'accélérateur DNN est l'architecture Gemmini. Elle utilise un réseau systolique, qui est un type de grille de processeurs qui communiquent entre eux pour effectuer des calculs. Gemmini est conçu pour fonctionner aux côtés de processeurs CPU généraux, permettant un traitement parallèle. Mais sa conception est principalement axée sur l'optimisation du débit plutôt que sur le changement de tâche.
MESC introduit une méthode pour rendre Gemmini plus adaptable, lui permettant de préempter les tâches au niveau des instructions. Cela signifie que lorsque qu'une tâche de haute priorité arrive, elle peut interrompre les processus en cours, améliorant ainsi la réactivité du système.
Le Composant Logiciel : Intégration au Système d'Exploitation
Avec les améliorations matérielles, MESC inclut aussi des modifications au système d'exploitation (OS). Ces modifications aident l'OS à gérer efficacement le changement de tâche et l'allocation des ressources.
Planification des tâches
Une caractéristique critique dans MESC est un nouvel ordonnanceur conçu pour gérer les tâches efficacement. L'ordonnanceur surveille constamment l'état du système et décide quand interrompre une tâche. Quand une tâche de haute priorité nécessite une action immédiate, l'ordonnanceur peut rapidement mettre en œuvre un changement de contexte, permettant à la tâche importante de s'exécuter tout en gardant une trace de ce que faisait la tâche précédente.
Surveillance des Tâches
Un autre aspect important est un moniteur de tâches qui suit l'état actuel et les besoins en ressources de chaque tâche. Ce composant garantit que le système maintient des informations précises sur toutes les tâches, facilitant ainsi la gestion des changements de contexte et de l'allocation des ressources de manière efficace.
Résultats Expérimentaux
Pour démontrer l'efficacité de MESC, une série de tests a été réalisée en utilisant une carte FPGA AMD Alveo U280. Les tests impliquaient une variété de charges de travail DNN pour évaluer la performance du nouveau système.
Tests de Changement de Contexte
L'un des principaux axes était d'évaluer comment MESC pouvait gérer le changement de contexte et les surcharges associées. Les résultats ont montré des améliorations significatives en termes de temps nécessaire pour sauvegarder et restaurer les états des tâches comparé aux méthodes traditionnelles. En particulier, MESC a pu réduire la durée des périodes d'attente critiques de millions de cycles à seulement quelques centaines, rendant le tout beaucoup plus efficace.
Exécution Réussie des Tâches
Le succès de l'exécution des tâches sous MESC a également été évalué. Les tests ont montré que même lorsque l'utilisation du système était élevée, le nouveau cadre maintenait un taux de réussite élevé, ce qui signifie que les tâches étaient plus susceptibles de respecter leurs délais. Dans des scénarios sans les capacités de changement de contexte de MESC, le taux de succès chutait drastiquement lorsque la charge du système augmentait.
Applications Futures
Les améliorations apportées par MESC pourraient avoir des implications considérables pour divers secteurs. Par exemple, dans les systèmes automobiles, la capacité à gérer les tâches plus efficacement pourrait mener à de véhicules autonomes plus sûrs. De même, dans les technologies aérospatiales et médicales, garantir que les tâches critiques soient prioritaires peut avoir des bénéfices de sécurité importants.
Expansion au-delà des DNN
Bien que ce cadre ait été appliqué aux accélérateurs DNN, les principes décrits peuvent être adaptés à d'autres types de coprocesseurs également. Cette flexibilité signifie que MESC pourrait potentiellement améliorer la performance d'une large gamme de systèmes au-delà de ceux liés à l'apprentissage machine.
Conclusion
MESC offre une nouvelle approche prometteuse pour gérer les systèmes à criticité mixte, abordant des problèmes critiques liés à la priorisation des tâches et à la réactivité. En intégrant des solutions matérielles et logicielles, MESC améliore les capacités de gestion des tâches, réduisant considérablement les temps d'attente pour les tâches de haute priorité tout en maintenant l'efficacité globale du système.
Alors que la technologie continue d'évoluer, des cadres comme MESC deviendront de plus en plus vitaux pour garantir que des systèmes complexes puissent fonctionner en toute sécurité et efficacement dans une variété de conditions.
Titre: MESC: Re-thinking Algorithmic Priority and/or Criticality Inversions for Heterogeneous MCSs
Résumé: Modern Mixed-Criticality Systems (MCSs) rely on hardware heterogeneity to satisfy ever-increasing computational demands. However, most of the heterogeneous co-processors are designed to achieve high throughput, with their micro-architectures executing the workloads in a streaming manner. This streaming execution is often non-preemptive or limited-preemptive, preventing tasks' prioritisation based on their importance and resulting in frequent occurrences of algorithmic priority and/or criticality inversions. Such problems present a significant barrier to guaranteeing the systems' real-time predictability, especially when co-processors dominate the execution of the workloads (e.g., DNNs and transformers). In contrast to existing works that typically enable coarse-grained context switch by splitting the workloads/algorithms, we demonstrate a method that provides fine-grained context switch on a widely used open-source DNN accelerator by enabling instruction-level preemption without any workloads/algorithms modifications. As a systematic solution, we build a real system, i.e., Make Each Switch Count (MESC), from the SoC and ISA to the OS kernel. A theoretical model and analysis are also provided for timing guarantees. Experimental results reveal that, compared to conventional MCSs using non-preemptive DNN accelerators, MESC achieved a 250x and 300x speedup in resolving algorithmic priority and criticality inversions, with less than 5\% overhead. To our knowledge, this is the first work investigating algorithmic priority and criticality inversions for MCSs at the instruction level.
Auteurs: Jiapeng Guan, Ran Wei, Dean You, Yingquan Wang, Ruizhe Yang, Hui Wang, Zhe Jiang
Dernière mise à jour: 2024-09-23 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2409.14837
Source PDF: https://arxiv.org/pdf/2409.14837
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.