Gadgets
Un outil pour naviguer dans des instructions informatiques complexes
Nous avons parcouru un long chemin depuis qu’Intel a lancé le premier microprocesseur en 1971. Leurs 4004 contenaient 2 300 transistors, les meilleures puces d’aujourd’hui dépassant les milliards, exploitant de plus en plus de puissance depuis leur naissance.
Mais chaque fois qu’Intel lance une nouvelle puce informatique, c’est un investissement coûteux, car ils doivent ajouter de nouvelles instructions de programmes informatiques qui lui indiquent quelles données traiter et comment les traiter. Ce sont des choses qu’un utilisateur ne voit pas, mais qui alimentent des tâches telles que le traitement d’image, l’apprentissage automatique et le codage vidéo.
Cependant, les programmes qui traitent ces nouvelles informations, appelés compilateurs, ne peuvent pas toujours utiliser ces instructions plus complexes. Le fardeau incombe alors souvent aux développeurs experts de faire plus de travail à la main et d’exécuter des tâches lourdes et sujettes à des erreurs telles que l’écriture de code d’assemblage.
Les scientifiques du Laboratoire d’informatique et d’intelligence artificielle du MIT (CSAIL) ont trouvé un moyen de mieux naviguer dans la complexité de la prise en charge de ces instructions. Leur outil « VeGen » (prononcé « vegan ») génère automatiquement des plugins de compilation pour utiliser efficacement des instructions plus compliquées.
CSAIL Ph.D. l’étudiant Yishen Chen dit que VeGen reprend la même documentation qu’Intel donne aux développeurs de logiciels, et génère automatiquement un plugin de compilateur qui permet au compilateur d’exploiter quelque chose appelé non-Single Instruction Multiple Data (SIMD), qui sont des instructions plus compliquées à accélérer un programme donné par l’utilisateur.
«Sans VeGen, les ingénieurs du compilateur doivent lire la documentation et modifier manuellement le compilateur pour utiliser ces instructions», explique Chen, auteur d’un nouvel article sur VeGen. « Le problème ici est que c’est toujours manuel et que les algorithmes actuels du compilateur ne sont pas efficaces pour utiliser ces instructions. »
Méthodes d’instruction
La plupart des processeurs utilisent des instructions basées sur les mathématiques qui vous permettent de faire quelque chose comme «A = B + C».
Les processeurs prennent également en charge ce que l’on appelle les instructions vectorielles, qui sont des instructions qui effectuent des opérations multiples mais identiques à la fois, telles que «A1 = B1 + C1 et A2 = B2 + C2». Ces deux instructions sont considérées comme des instructions « SIMD » plus traditionnelles.
Les instructions «non SIMD» sont plus compliquées, mais encore plus puissantes et efficaces, telles que les instructions qui effectuent simultanément des additions et des soustractions. Chen dit que VeGen est principalement motivé par des instructions qui ne correspondent pas au modèle SIMD, d’une manière ou d’une autre.
Pensez à l’ensemble du processus comme un restaurant:
- Le programmeur est le chef célèbre qui pense à un programme (un plat)
- Le compilateur est le sous-chef qui prend le programme (le plat) et crée les instructions à exécuter (recette) en connaissant les ressources disponibles dans la cuisine
- Le processeur est la cuisine
- Les instructions (la recette) sont exécutées (préparées) par les cuisiniers à la chaîne en profitant de différents équipements dans la cuisine
- Une nouvelle conception de processeur qui ajoute de nouvelles capacités au processeur est le remodelage de la cuisine ou l’ajout de nouveaux équipements de cuisine.
Si le sous-chef et son équipe ne savent pas comment utiliser le nouvel équipement, les restaurateurs qui dépensent tout leur argent pour rénover la cuisine ne seront pas contents.
« Avec l’avènement des instructions complexes, il est devenu difficile pour les développeurs de compilateurs de maintenir à jour les stratégies de génération de code afin d’exploiter tout le potentiel supporté par le matériel sous-jacent », déclare Charith Mendis, professeur à l’Université de l’Illinois à Urbana -Champaign, auteur d’un article sur l’outil. «L’approche de VeGen en matière de création de générateurs de code allège ce fardeau en générant automatiquement des parties du compilateur chargées d’identifier les séquences de code qui peuvent exploiter de nouvelles fonctionnalités matérielles. Nous espérons que l’approche de VeGen pour créer des composants de compilateur conduira à des infrastructures de compilateurs plus durables et maintenables dans le futur. »
Les premiers résultats ont montré que, par exemple, sur certains noyaux de codage vidéo, VeGen pouvait automatiquement utiliser des instructions vectorielles non SIMD et obtenir une accélération de 27% à 300%.
«Le fait de rassembler tous les manuels d’instructions d’Intel fait plus d’un pied de large et se divise en milliers de pages», explique Saman Amarasinghe, professeur au MIT, auteur de l’article sur VeGen. « Normalement, le rédacteur du compilateur doit se pencher sur les petits détails des changements d’instructions, répartis sur des centaines de pages, mais VeGen contourne totalement le travail fastidieux. »
«Alors que le matériel devient plus compliqué pour accélérer les domaines à forte intensité de calcul, nous pensons que VenGen est une contribution précieuse», déclare Chen. « L’objectif à long terme est que, chaque fois que vous ajoutez de nouvelles fonctionnalités à votre matériel, nous pouvons automatiquement trouver un moyen – sans avoir à réécrire votre code – d’utiliser ces accélérateurs matériels. »
Chen a écrit l’article aux côtés de Mendis et des professeurs du MIT Michael Carbin et Saman Amarasinghe. Ils présenteront le document virtuellement lors de la conférence ASPLOS (Architectural Support for Programming Languages and Operating Systems) en avril.
Carpentry Compiler aide les menuisiers à concevoir des objets qu’ils peuvent réellement fabriquer
Fourni par le Massachusetts Institute of Technology
Citation: Un outil pour naviguer dans des instructions informatiques complexes (2021, 19 avril) récupéré le 19 avril 2021 sur https://techxplore.com/news/2021-04-tool-complex.html
Ce document est soumis au droit d’auteur. En dehors de toute utilisation équitable à des fins d’étude ou de recherche privée, aucune partie ne peut être reproduite sans l’autorisation écrite. Le contenu est fourni seulement pour information.
Sommaire