Automatisation des modèles de performance pour les accélérateurs DNN
Une nouvelle méthode prédit rapidement et avec précision les performances des DNN sur divers matériels.
― 10 min lire
Table des matières
- Importance des dispositifs en bordure
- Aperçu de l'estimation automatique de la performance
- Travaux connexes
- Méthode proposée
- Aperçu de la nouvelle approche
- Le langage de description d'architecture informatique abstraite (ACADL)
- Flux de modélisation
- Exemples de modélisation
- Estimation de la performance utilisant l'AIDG
- Latence de bout en bout pour les couches DNN
- Résultats et évaluations
- Évaluation de différentes architectures
- Conclusion
- Source originale
- Liens de référence
Utiliser des Réseaux de neurones profonds (DNN) sur de petits dispositifs en bordure, c'est pas simple. Ces appareils ont besoin de matériel spécial pour bien fonctionner. Savoir comment différents montages se débrouillent avec ces tâches d'IA est super important. Cet article partage une méthode pour créer automatiquement des modèles rapides qui prédisent la vitesse d'exécution d'un DNN sur des configurations matérielles spécifiques.
On examine plusieurs types d'Accélérateurs DNN, y compris certains connus et un design flexible appelé tableau systolique. Grâce à notre modèle, on peut prédire comment un DNN fonctionne en utilisant juste un petit nombre d'exemples des calculs réels, ce qui accélère énormément le processus. Notre méthode est beaucoup plus rapide et précise que les méthodes traditionnelles.
Importance des dispositifs en bordure
Les dispositifs en bordure deviennent populaires parce qu'ils consomment moins de données, répondent vite, utilisent moins d'énergie et sont généralement moins chers que les grands centres de données. À mesure que plus de boîtes essaient de construire de meilleurs dispositifs en bordure qui font tourner des DNN, elles doivent choisir le bon matériel pour des applications spécifiques. Beaucoup de méthodes existantes pour mesurer la Performance prennent beaucoup de temps et ne sont pas adaptées à différents DNN, d'où le besoin d'une nouvelle solution.
Dans les premières étapes de conception du matériel, il est essentiel de comparer rapidement diverses conceptions. Les changements peuvent inclure tout, du nombre d'unités de traitement aux différents chemins de données. Côté logiciel, il existe différentes stratégies pour optimiser la façon dont les DNN fonctionnent sur le matériel choisi. Pour rendre cette comparaison plus facile et rapide, on propose une méthode automatique pour estimer à quel point un DNN fonctionnera bien sur différentes configurations.
Aperçu de l'estimation automatique de la performance
Le but de ce travail est de construire rapidement des modèles de performance précis pour les accélérateurs DNN. On introduit un nouveau langage pour décrire les architectures informatiques, appelé ACADL. Ce langage nous aide à créer des modèles pour de nombreux types de configurations matérielles avec différentes options.
Notre méthode génère automatiquement un graphique spécial connu sous le nom de Graphique de Dépendance des Instructions Architecturales (AIDG). Ce graphique montre comment les instructions fonctionnent ensemble au sein de la configuration matérielle. C'est une approche nouvelle parce qu'elle représente à la fois le matériel et le logiciel. Les autres méthodes se concentrent généralement soit sur le logiciel, soit sur le matériel.
On a conçu une méthode rapide d'utilisation de l'AIDG pour calculer comment bien les DNN s'exécutent sur ces configurations matérielles. Dans certains cas, on a juste besoin d'analyser une petite partie de toutes les instructions pour fournir une estimation précise, égalant la précision des méthodes plus lourdes en ressources.
Travaux connexes
De nombreuses études ont essayé de prédire la performance des DNN sur différentes configurations matérielles. Ces études tombent généralement dans deux catégories : les modèles analytiques et les modèles d'apprentissage automatique. Chacun a ses forces et ses faiblesses.
Certains chercheurs ont comparé différentes méthodes d'apprentissage automatique pour estimer la performance des DNN sur des GPU. Ils ont collecté une grande quantité de données pour entraîner leurs modèles. D'autres se sont concentrés sur la mesure de la performance de configurations spécifiques en utilisant des DNN créés spécialement et ont analysé leur temps d'exécution.
Il existe des outils comme Timeloop et Aladdin qui visent à fournir des estimations de performance par différentes approches. Cependant, notre méthode se distingue car elle combine systématiquement la modélisation d'architectures avec une estimation de performance qui peut s'appliquer à diverses configurations sans nécessiter de grandes quantités de données d'entraînement.
Méthode proposée
Aperçu de la nouvelle approche
La base de notre approche est ACADL, un langage qui nous permet de modéliser diverses configurations matérielles. En décrivant un accélérateur dans ce langage, on peut générer les instructions nécessaires pour les DNN.
Chacune de ces instructions est analysée pour construire l'AIDG. Ce graphique dirigé est crucial parce qu'il capture comment les instructions circulent dans le matériel, révèle les conflits éventuels et suit les dépendances. L'AIDG est évalué d'une manière qui nous aide à calculer la vitesse globale d'exécution du DNN.
On considère un exemple spécifique de tableau systolique tout au long de chaque section de notre méthode. Les étapes incluent :
- Modélisation de l'accélérateur : On crée une description basique de l'architecture matérielle.
- Mapping des DNN au matériel : On génère des instructions basées sur la façon dont les DNN peuvent fonctionner sur la configuration matérielle.
- Évaluation de la performance : On analyse l'AIDG pour estimer la performance basée sur les instructions générées.
Le langage de description d'architecture informatique abstraite (ACADL)
La communication sur les architectures informatiques se fait généralement avec des diagrammes en bloc. Cependant, ceux-ci peuvent devenir complexes et nécessitent des connaissances d'expert. ACADL propose une façon plus simple et orientée objet de décrire les composants architecturaux.
Dans ACADL, on définit différentes classes et leurs relations et dépendances. En utilisant ce langage, on peut construire des modèles qui représentent comment les instructions interagissent avec différents composants matériels au fil du temps. Cela permet de modéliser des conceptions complexes sans avoir besoin de connaissances approfondies en matériel.
Les diagrammes de classe ACADL décrivent les parties essentielles des architectures, montrant comment les données se déplacent et comment les instructions sont exécutées. Chaque classe a ses propres attributs, méthodes et relations avec les autres, ce qui en fait un moyen flexible de représenter et de manipuler le matériel.
Flux de modélisation
La création de l'AIDG commence par définir un diagramme d'objet ACADL. Deux méthodes existent pour rassembler ce diagramme :
- Modélisation de haut en bas : Cette approche est préférable pour de nouvelles conceptions matérielles et crée un modèle de haut niveau basé sur les capacités et la structure souhaitées.
- Modélisation de bas en haut : Cette méthode utilise les connaissances matérielles existantes et les détails des diagrammes de blocs architecturaux pour générer le diagramme d'objet ACADL.
Cette flexibilité d'approche permet aux développeurs de choisir la méthode qui convient le mieux à leur contexte.
Exemples de modélisation
On présente deux conceptions d'exemple pour illustrer le fonctionnement d'ACADL :
- Tableau Systolique : Une structure simple où chaque unité de traitement effectue des opérations de base. Ce design sert d'excellente introduction à ACADL, car il peut être modélisé avec des instructions scalaires.
- Accélérateur UltraTrail : Une configuration plus complexe axée sur le traitement à faible consommation. Ce modèle montre comment différents composants matériels peuvent être combinés dans ACADL pour créer une conception fonctionnelle.
Estimation de la performance utilisant l'AIDG
L'AIDG aide à estimer la performance des DNN sur l'architecture modélisée. En évaluant l'AIDG, on peut déterminer la latence de bout en bout de l'exécution des instructions DNN mappées sur le matériel.
Le processus consiste à trier les instructions dans un ordre topologique. Chaque nœud de l'AIDG représente le moment où une instruction occupe le matériel. On évalue les relations et dépendances entre ces nœuds pour obtenir une estimation de performance précise.
La latence globale peut être dérivée de l'analyse de la façon dont les instructions interagissent et combien de ressources sont disponibles durant le processus d'exécution.
Latence de bout en bout pour les couches DNN
Lors d'une exécution typique de DNN, plusieurs itérations se produisent dans un pipeline. Cependant, ces itérations peuvent se chevaucher, ce qui complique les prédictions de timing. Il est essentiel de considérer comment les itérations précédentes influencent le timing des itérations suivantes pour obtenir une estimation précise.
On utilise l'AIDG pour comprendre comment les itérations qui se chevauchent affectent la vitesse d'exécution des couches DNN. Notre méthode capture les différents temps d'exécution et dépendances, offrant des prédictions plus précises.
Résultats et évaluations
Pour évaluer l'efficacité de notre nouvelle approche, on l'applique à quatre architectures d'accélérateurs diverses. On compare nos prédictions avec des références établies pour déterminer la précision de notre méthode.
Pour chaque accélérateur, on mesure à quel point nos estimations s'alignent avec les valeurs réelles obtenues à partir de simulations réelles. Cette comparaison montre que, tandis que les modèles traditionnels nécessitent beaucoup de temps et de données, notre approche maintient une haute précision avec moins de complexité.
Évaluation de différentes architectures
On modélise et évalue les architectures suivantes :
- UltraTrail : On obtient d'excellentes estimations de performance qui correspondent de près à la vérité pour des DNN spécifiques.
- Gemmini : On voit comment notre méthode se comporte par rapport aux modèles analytiques traditionnels. Nos prédictions montrent constamment une plus grande précision.
- Tableaux Systoliques Paramétrables : L'estimation pour différentes tailles donne des résultats solides, notre méthode surpasse les modèles basés sur la régression sans grands ensembles de données d'entraînement.
- Concepts dérivés de Plasticine : Cette architecture montre la flexibilité et l'évolutivité de notre méthode, permettant une exploration rapide de l'espace de conception.
Conclusion
Notre travail propose une méthode rapide et automatique pour créer des modèles de performance pour les accélérateurs DNN. Utiliser ACADL pour décrire différentes architectures et l'AIDG pour estimer la performance offre une solution complète pour associer les DNN aux configurations matérielles.
Cette approche permet une évaluation rapide de diverses conceptions, facilitant le choix du bon matériel pour des tâches IA spécifiques. En simplifiant le processus d'estimation de la performance, on aide les ingénieurs à optimiser leurs conceptions efficacement, économisant du temps et des ressources dans le développement de dispositifs AI en bordure.
En fin de compte, notre travail contribuera à améliorer la performance dans les applications AI en bordure, permettant des solutions plus rapides et plus efficaces pour les besoins technologiques futurs.
Titre: Automatic Generation of Fast and Accurate Performance Models for Deep Neural Network Accelerators
Résumé: Implementing Deep Neural Networks (DNNs) on resource-constrained edge devices is a challenging task that requires tailored hardware accelerator architectures and a clear understanding of their performance characteristics when executing the intended AI workload. To facilitate this, we present an automated generation approach for fast performance models to accurately estimate the latency of a DNN mapped onto systematically modeled and concisely described accelerator architectures. Using our accelerator architecture description method, we modeled representative DNN accelerators such as Gemmini, UltraTrail, Plasticine-derived, and a parameterizable systolic array. Together with DNN mappings for those modeled architectures, we perform a combined DNN/hardware dependency graph analysis, which enables us, in the best case, to evaluate only 154 loop kernel iterations to estimate the performance for 4.19 billion instructions achieving a significant speedup. We outperform regression and analytical models in terms of mean absolute percentage error (MAPE) compared to simulation results, while being several magnitudes faster than an RTL simulation.
Auteurs: Konstantin Lübeck, Alexander Louis-Ferdinand Jung, Felix Wedlich, Mika Markus Müller, Federico Nicolás Peccia, Felix Thömmes, Jannik Steinmetz, Valentin Biermaier, Adrian Frischknecht, Paul Palomero Bernardo, Oliver Bringmann
Dernière mise à jour: 2024-09-13 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2409.08595
Source PDF: https://arxiv.org/pdf/2409.08595
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.