• Home
  • Chimie
  • Astronomie
  • Énergie
  • La nature
  • Biologie
  • Physique
  • Électronique
  • L'outil prédit à quelle vitesse le code s'exécutera sur une puce

    Crédit :CC0 Domaine public

    Des chercheurs du MIT ont inventé un outil d'apprentissage automatique qui prédit à quelle vitesse les puces informatiques exécuteront le code de diverses applications.

    Pour que le code s'exécute le plus rapidement possible, les développeurs et les compilateurs (programmes qui traduisent le langage de programmation en code lisible par machine) utilisent généralement des modèles de performances qui exécutent le code via une simulation d'architectures de puces données.

    Les compilateurs utilisent ces informations pour optimiser automatiquement le code, et les développeurs l'utilisent pour s'attaquer aux goulots d'étranglement des performances des microprocesseurs qui l'exécuteront. Mais les modèles de performances pour le code machine sont écrits à la main par un groupe d'experts relativement restreint et ne sont pas correctement validés. En conséquence, les mesures de performance simulées s'écartent souvent des résultats réels.

    Dans une série d'articles de conférence, les chercheurs décrivent un nouveau pipeline d'apprentissage automatique qui automatise ce processus, rendre plus facile, plus rapide, et plus précis. Dans un article présenté à la Conférence internationale sur l'apprentissage automatique en juin, les chercheurs ont présenté Ithemal, un modèle de réseau de neurones qui s'entraîne sur des données étiquetées sous la forme de "blocs de base" - des extraits fondamentaux d'instructions informatiques - pour prédire automatiquement combien de temps il faut à une puce donnée pour exécuter des blocs de base inédits. Les résultats suggèrent qu'Ithemal fonctionne beaucoup plus précisément que les modèles traditionnels réglés à la main.

    Puis, au Symposium international IEEE de novembre sur la caractérisation de la charge de travail, les chercheurs ont présenté une suite de référence de blocs de base dans une variété de domaines, y compris l'apprentissage automatique, compilateurs, cryptographie, et des graphiques qui peuvent être utilisés pour valider les modèles de performance. Ils en ont mis en commun plus de 300, 000 des blocs profilés dans un ensemble de données open source appelé BHive. Lors de leurs évaluations, Ithemal a prédit à quelle vitesse les puces Intel exécuteraient le code encore mieux qu'un modèle de performance construit par Intel lui-même.

    Finalement, les développeurs et les compilateurs peuvent utiliser l'outil pour générer du code qui s'exécute plus rapidement et plus efficacement sur un nombre toujours croissant de conceptions de puces diverses et « boîte noire ». "Les processeurs informatiques modernes sont opaques, horriblement compliqué, et difficile à comprendre. Il est également incroyablement difficile d'écrire du code informatique qui s'exécute aussi rapidement que possible pour ces processeurs, " dit le co-auteur Michael Carbin, professeur adjoint au Département de génie électrique et informatique (EECS) et chercheur au Laboratoire d'informatique et d'intelligence artificielle (CSAIL). "Cet outil est un grand pas en avant vers la modélisation complète des performances de ces puces pour une efficacité améliorée."

    Plus récemment, dans un article présenté à la conférence NeurIPS en décembre, l'équipe a proposé une nouvelle technique pour générer automatiquement des optimisations de compilateur. Spécifiquement, ils génèrent automatiquement un algorithme, appelé Vemal, qui convertit certains codes en vecteurs, qui peut être utilisé pour le calcul parallèle. Vemal surpasse les algorithmes de vectorisation fabriqués à la main utilisés dans le compilateur LLVM, un compilateur populaire utilisé dans l'industrie.

    Apprendre des données

    Concevoir des modèles de performance à la main peut être « un art noir, " dit Carbin. Intel fournit une documentation complète de plus de 3, 000 pages décrivant les architectures de ses puces. Mais il n'existe actuellement qu'un petit groupe d'experts qui construiront des modèles de performances simulant l'exécution de code sur ces architectures.

    "Les documents d'Intel ne sont ni exempts d'erreurs ni complets, et Intel omettra certaines choses, parce que c'est propriétaire, " dit Mendis. " Cependant, lorsque vous utilisez des données, vous n'avez pas besoin de connaître la documentation. S'il y a quelque chose de caché, vous pouvez l'apprendre directement à partir des données."

    Faire cela, les chercheurs ont chronométré le nombre moyen de cycles qu'un microprocesseur donné prend pour calculer les instructions de bloc de base - en gros, la séquence de démarrage, exécuter, et s'arrêter, sans intervention humaine. L'automatisation du processus permet un profilage rapide de centaines de milliers ou de millions de blocs.

    Architectures spécifiques au domaine

    Dans la formation, le modèle Ithemal analyse des millions de blocs de base profilés automatiquement pour savoir exactement comment les différentes architectures de puces exécuteront le calcul. Surtout, Ithemal prend du texte brut en entrée et ne nécessite pas d'ajouter manuellement des fonctionnalités aux données d'entrée. En test, Ithemal peut être alimenté avec des blocs de base inédits et une puce donnée, et générera un seul nombre indiquant à quelle vitesse la puce exécutera ce code.

    Les chercheurs ont découvert qu'Ithemal réduisait les taux d'erreur de précision, c'est-à-dire la différence entre la vitesse prévue et la vitesse réelle, de 50 % par rapport aux modèles traditionnels fabriqués à la main. Plus loin, dans leur prochain article, ils ont montré que le taux d'erreur d'Ithemal était de 10 %, tandis que le taux d'erreur du modèle de prévision des performances d'Intel était de 20 % sur une variété de blocs de base dans plusieurs domaines différents.

    L'outil facilite désormais l'apprentissage rapide des vitesses de performances pour toutes les nouvelles architectures de puces, dit Mendis. Par exemple, architectures spécifiques au domaine, tels que la nouvelle unité de traitement tenseur de Google utilisée spécifiquement pour les réseaux de neurones, sont en cours de construction mais ne sont pas largement compris. "Si vous voulez entraîner un modèle sur une nouvelle architecture, vous collectez simplement plus de données à partir de cette architecture, exécutez-le via notre profileur, utiliser ces informations pour former Ithemal, et maintenant vous avez un modèle qui prédit les performances, " dit Mendis.

    Prochain, les chercheurs étudient des méthodes pour rendre les modèles interprétables. Une grande partie de l'apprentissage automatique est une boîte noire, il n'est donc pas vraiment clair pourquoi un modèle particulier a fait ses prédictions. "Notre modèle dit qu'il faut un processeur, dire, 10 cycles pour exécuter un bloc de base. Maintenant, nous essayons de comprendre pourquoi, " dit Carbin. " C'est un bon niveau de granularité qui serait incroyable pour ce type d'outils. "

    Ils espèrent également utiliser Ithemal pour améliorer encore plus les performances de Vemal et obtenir automatiquement de meilleures performances.

    Cette histoire est republiée avec l'aimable autorisation de MIT News (web.mit.edu/newsoffice/), un site populaire qui couvre l'actualité de la recherche du MIT, innovation et enseignement.




    © Science https://fr.scienceaq.com