Simple Science

La science de pointe expliquée simplement

# Informatique# Architecture matérielle# Informatique distribuée, parallèle et en grappes

Optimiser les réseaux de neurones profonds avec CMDS

Une nouvelle méthode améliore l'utilisation de l'énergie et les performances dans l'exécution des DNN.

― 7 min lire


CMDS améliore lesCMDS améliore lesperformances de DNNd'énergie et accélère l'exécution.Une nouvelle méthode réduit les coûts
Table des matières

Les réseaux de neurones profonds (DNN) sont super importants pour plein d'applis intelligentes, surtout pour le traitement d'images et de sons. Ils cartonnent vraiment, mais cette haute performance demande des calculs complexes et différents types de structures de réseau. Des réseaux comme ResNet et MobileNetv2 sont populaires pour des tâches comme classer des images et des sons. Chaque couche dans ces réseaux peut être assez différente en forme et en type, ce qui rend difficile de créer une seule façon d'exécuter toutes les couches efficacement sur le matériel informatique.

Beaucoup de recherches ont été faites pour trouver la meilleure façon d'exécuter chaque couche d'un DNN. Certains outils peuvent trouver la meilleure façon de faire tourner une certaine couche sur un matériel spécifique. Cependant, ces outils considèrent généralement chaque couche séparément. Ils ne tiennent pas compte de la manière dont les données sont disposées en mémoire entre les différentes couches, ce qui crée des inefficacités lors du passage d'une couche à l'autre.

Cet article présente une nouvelle approche appelée le Planificateur de Flux de Données Sensible à la Mémoire Intercouche (CMDS). Cette méthode vise à améliorer la façon dont les DNN utilisent le matériel en tenant compte de la manière dont les données sont organisées en mémoire à travers les différentes couches. L'objectif est de rendre l'exécution des DNN plus efficace en réduisant la Consommation d'énergie et le Temps d'exécution.

Problèmes avec les Outils Actuels

Les outils existants qui optimisent l'exécution des couches DNN traitent chaque couche comme un problème séparé. Cela signifie qu'ils ne considèrent pas comment la sortie d'une couche peut devenir l'entrée d'une autre couche. Quand les couches sont traitées indépendamment, il peut y avoir des décalages dans la façon dont les données sont stockées en mémoire. Ces décalages peuvent gaspiller des ressources et ralentir la performance globale du DNN.

Par exemple, si la Couche A produit des données dans un certain format et que la Couche B attend ces données dans un format différent, le matériel doit passer plus de temps à transformer les données au bon format. Ça ralentit non seulement le système, mais ça peut aussi augmenter la consommation d'énergie, ce qui est un souci dans l'informatique moderne.

CMDS : Une Nouvelle Approche

Le Planificateur de Flux de Données Sensible à la Mémoire Intercouche (CMDS) aborde ces problèmes sous un nouvel angle. Au lieu de regarder chaque couche isolément, le CMDS considère comment les données circulent d'une couche à l'autre. Il prend en compte l'organisation interne de la mémoire, ce qui permet une meilleure coordination entre les couches.

En introduisant des concepts comme la Largeur de Banque (BD), la Largeur de Port (PD) et la Largeur de Mémoire (MD), le CMDS peut décrire comment la mémoire est structurée. Ça aide à optimiser l'exécution des DNN de manière plus efficace. Le CMDS fonctionne en réorganisant les données en mémoire au besoin, ce qui lui permet de s'adapter aux demandes des différentes couches tout en minimisant le coût et l'effort nécessaires.

Structure de la mémoire et son Importance

Dans les accélérateurs DNN modernes, la mémoire est souvent organisée en plusieurs banques. Chaque banque peut fonctionner indépendamment, ce qui aide à accéder et à traiter les données simultanément. Cependant, comment cette mémoire est structurée peut avoir un énorme impact sur la performance.

En comprenant et en utilisant l'organisation des banques de mémoire, le CMDS peut gérer comment les données sont lues et écrites. Par exemple, il peut déterminer les meilleures façons d'aligner les formats de données pour différentes couches dans un réseau de neurones. Ça garantit que lorsque les données d'une couche sont prêtes à être passées à la couche suivante, elles sont déjà dans le bon format, ce qui fait gagner du temps et de l'énergie.

Planification des Tâches

Le CMDS n'optimise pas seulement comment les données sont organisées mais gère aussi la planification des tâches. Le flux de données pour chaque couche peut être ajusté en fonction de la manière dont les données sont disposées en mémoire. Ça signifie que le CMDS peut aider les couches à travailler ensemble harmonieusement, réduisant la probabilité d'inefficacités qui viennent de mises en page de données mal assorties.

Pendant le processus de planification, le CMDS détermine d'abord la meilleure façon de gérer les données de chaque couche en fonction de la structure de mémoire existante. Ensuite, il examine comment ces décisions affectent les couches suivantes, s'assurant que l'ensemble du réseau fonctionne sans accroc.

Bénéfices de Performance

En utilisant le CMDS, les chercheurs ont trouvé des améliorations significatives tant en efficacité énergétique qu'en temps d'exécution lors de l'exécution des DNN par rapport aux méthodes traditionnelles. La capacité de prendre en compte l'organisation de la mémoire et les dépendances de données entre les couches a permis au CMDS d'atteindre de meilleures performances tout en maintenant des coûts matériels bas.

Par exemple, la consommation d'énergie peut être réduite parce que le système peut éviter des transformations de données inutiles. Quand les données sont déjà au bon format, le matériel n'a pas besoin de travailler aussi dur, ce qui fait que moins d'énergie est utilisée.

Résultats Expérimentaux

Pour évaluer l'efficacité du CMDS, plusieurs expériences ont été réalisées avec différents modèles de DNN. Les résultats ont montré que les réseaux optimisés avec le CMDS consommaient moins d'énergie et obtenaient des temps d'exécution plus courts par rapport à ceux optimisés avec des méthodes plus anciennes qui ne prenaient pas en compte les mises en page de données.

En particulier, les coûts énergétiques liés à l'exécution des DNN avec des mises en page de données mal assorties ont été considérablement réduits. Ça signifie que la dépense énergétique globale pendant les opérations était plus faible, ce qui en fait une option plus durable pour faire tourner des applications DNN complexes.

Conclusion

Les réseaux de neurones profonds deviennent une partie essentielle de nombreuses technologies que nous utilisons aujourd'hui. Cependant, faire fonctionner ces réseaux efficacement sur du matériel est un défi complexe. Les outils d'optimisation actuels négligent souvent la relation entre les différentes couches, ce qui entraîne des inefficacités.

Le Planificateur de Flux de Données Sensible à la Mémoire Intercouche (CMDS) offre une solution prometteuse à ces problèmes. En prenant en compte la façon dont les données circulent entre les couches et comment la mémoire est structurée, le CMDS peut optimiser l'exécution des DNN pour une meilleure performance et une consommation d'énergie réduite. Cette nouvelle approche est essentielle pour améliorer la durabilité et l'efficacité des futures applications intelligentes.

Source originale

Titre: CMDS: Cross-layer Dataflow Optimization for DNN Accelerators Exploiting Multi-bank Memories

Résumé: Deep neural networks (DNN) use a wide range of network topologies to achieve high accuracy within diverse applications. This model diversity makes it impossible to identify a single "dataflow" (execution schedule) to perform optimally across all possible layers and network topologies. Several frameworks support the exploration of the best dataflow for a given DNN layer and hardware. However, switching the dataflow from one layer to the next layer within one DNN model can result in hardware inefficiencies stemming from memory data layout mismatch among the layers. Unfortunately, all existing frameworks treat each layer independently and typically model memories as black boxes (one large monolithic wide memory), which ignores the data layout and can not deal with the data layout dependencies of sequential layers. These frameworks are not capable of doing dataflow cross-layer optimization. This work, hence, aims at cross-layer dataflow optimization, taking the data dependency and data layout reshuffling overheads among layers into account. Additionally, we propose to exploit the multibank memories typically present in modern DNN accelerators towards efficiently reshuffling data to support more dataflow at low overhead. These innovations are supported through the Cross-layer Memory-aware Dataflow Scheduler (CMDS). CMDS can model DNN execution energy/latency while considering the different data layout requirements due to the varied optimal dataflow of layers. Compared with the state-of-the-art (SOTA), which performs layer-optimized memory-unaware scheduling, CMDS achieves up to 5.5X energy reduction and 1.35X latency reduction with negligible hardware cost.

Auteurs: Man Shi, Steven Colleman, Charlotte VanDeMieroop, Antony Joseph, Maurice Meijer, Wim Dehaene, Marian Verhelst

Dernière mise à jour: 2024-06-14 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2406.14574

Source PDF: https://arxiv.org/pdf/2406.14574

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.

Plus d'auteurs

Articles similaires