Élevez votre technologie et votre stratégie de données d’entreprise à Transformer 2021.
Dans une préimpression papier publié il y a un an, les scientifiques de Google Research, dont le responsable de l’IA de Google, Jeff Dean décrit une approche de la conception de puces basée sur l’IA qui pourrait tirer des leçons de l’expérience passée et s’améliorer au fil du temps, devenant ainsi meilleure pour générer des architectures pour des composants invisibles. Ils ont affirmé qu’il avait terminé les conceptions en moins de six heures en moyenne, ce qui est nettement plus rapide que les semaines qu’il faut aux experts humains dans la boucle.
Même si le travail n’était pas entièrement nouveau, il s’appuyait sur une technique proposée par les ingénieurs de Google dans un article publié en mars 2020 — il a fait progresser l’état de l’art en ce qu’il impliquait que le placement de transistors sur puce puisse être largement automatisé. Maintenant, dans un papier publié dans la revue Nature, l’équipe originale de chercheurs de Google affirme avoir affiné la technique pour concevoir une génération à venir, non annoncée auparavant, de Google unités de traitement tensoriel (TPU), circuits intégrés spécifiques à une application (ASIC) développés spécifiquement pour accélérer l’IA.
Si elle est rendue publique, la technique des chercheurs de Google pourrait permettre aux startups à court d’argent de développer leurs propres puces pour l’IA et à d’autres fins spécialisées. De plus, cela pourrait aider à raccourcir le cycle de conception des puces pour permettre au matériel de mieux s’adapter à l’évolution rapide de la recherche.
« En gros, en ce moment, dans le processus de conception, vous disposez d’outils de conception qui peuvent vous aider à effectuer une certaine mise en page, mais vous avez des experts en placement et en routage humains qui travaillent avec ces outils de conception pour répéter plusieurs fois », Dean Raconté VentureBeat dans une interview précédente. « C’est un processus de plusieurs semaines pour passer de la conception que vous souhaitez à sa disposition physique sur une puce avec les bonnes contraintes de surface, de puissance et de longueur de fil et de répondre à tous les rôles de conception ou à tout processus de fabrication que vous effectuez. . Nous pouvons essentiellement avoir un modèle d’apprentissage automatique qui apprend à jouer le jeu de [component] placement pour une puce particulière.
Conception de puces AI
Une puce informatique est divisée en dizaines de blocs, chacun étant un module individuel, tel qu’un sous-système de mémoire, une unité de calcul ou un système logique de contrôle. Ces blocs connectés par fil peuvent être décrits par une liste d’interconnexions, un graphique de composants de circuit tels que des composants de mémoire et des cellules standard, notamment portes logiques (par exemple, NAND, NOR et XOR). La « planification au sol » de la puce consiste à placer des listes d’interconnexions sur des grilles bidimensionnelles appelées canevas afin que les mesures de performance telles que la consommation d’énergie, la synchronisation, la surface et la longueur de fil soient optimisées tout en respectant les contraintes de densité et de congestion du routage.
Depuis les années 1960, de nombreuses approches automatisées de la planification des étages de puces ont été proposées, mais aucune n’a atteint des performances de niveau humain. De plus, la croissance exponentielle de la complexité des puces a rendu ces techniques inutilisables sur les puces modernes. Les concepteurs de puces humaines doivent plutôt itérer pendant des mois avec des outils d’automatisation de la conception électronique (EDA), en prenant une description du niveau de transfert de registre (RTL) de la liste d’interconnexions de la puce et en générant un placement manuel de cette liste d’interconnexions sur le canevas de la puce. Sur la base de ce retour, qui peut prendre jusqu’à 72 heures, le concepteur conclut que les critères de conception ont été atteints ou fournit un retour aux concepteurs RTL en amont, qui modifient ensuite le code de bas niveau pour faciliter la tâche de placement.
La solution de l’équipe Google est un apprentissage par renforcement méthode capable de généraliser à travers les puces, ce qui signifie qu’elle peut apprendre de l’expérience pour devenir à la fois meilleure et plus rapide pour placer de nouvelles puces.
Jouer le système
La formation de systèmes de conception basés sur l’IA qui se généralisent sur toutes les puces est difficile car elle nécessite d’apprendre à optimiser le placement de toutes les listes d’interconnexions de puces possibles sur tous les canevas possibles. En fait, la planification des puces est analogue à un jeu avec diverses pièces (par exemple, topologies de listes d’interconnexions, nombres de macros, tailles de macros et rapports d’aspect), des tableaux (taille de toile et rapports d’aspect) et des conditions de gain (l’importance relative des différentes évaluations métriques ou différentes contraintes de densité et de congestion de routage). Même une instance de ce « jeu » – placer une netlist particulière sur un canevas particulier – a plus de mouvements possibles que le jeu de société chinois Go.
Le système des chercheurs vise à placer un graphique « netlist » de portes logiques, de mémoire, etc. sur un canevas de puce, de sorte que la conception optimise la puissance, les performances et la surface (PPA) tout en respectant les contraintes de densité de placement et de congestion du routage. La taille des graphiques varie de millions à des milliards de nœuds regroupés en milliers de clusters, et généralement, l’évaluation des métriques cibles prend de quelques heures à plus d’une journée.
En commençant par une puce vide, le système de l’équipe Google place les composants de manière séquentielle jusqu’à ce qu’il termine la netlist. Pour guider le système dans la sélection des composants à placer en premier, les composants sont triés par taille décroissante ; placer d’abord des composants plus gros réduit le risque qu’il n’y ait pas de placement possible pour cela plus tard.
La formation du système nécessitait la création d’un ensemble de données de 10 000 emplacements de puces, où l’entrée est l’état associé au placement donné et l’étiquette est la récompense du placement (c’est-à-dire la longueur du fil et la congestion). Les chercheurs l’ont construit en choisissant d’abord cinq netlists de puces différentes, auxquelles un algorithme d’IA a été appliqué pour créer 2 000 emplacements différents pour chaque netlist.
Le système a mis 48 heures pour se « pré-entraîner » sur une carte graphique Nvidia Volta et 10 processeurs, chacun avec 2 Go de RAM. Le réglage fin a d’abord pris jusqu’à 6 heures, mais l’application du système pré-entraîné à une nouvelle netlist sans réglage fin a généré un placement en moins d’une seconde sur un seul GPU dans les tests de performances ultérieurs.
Dans un test, les chercheurs de Google ont comparé les recommandations de leur système avec une référence manuelle : la conception de production d’une puce TPU de génération précédente créée par l’équipe de conception physique TPU de Google. Le système et les experts humains ont systématiquement généré des emplacements viables qui répondaient aux exigences de synchronisation et d’encombrement, mais le système d’IA a également surpassé ou égalé les emplacements manuels en termes de surface, de puissance et de longueur de fil tout en prenant beaucoup moins de temps pour répondre aux critères de conception.
Travail futur
Google affirme que la capacité de son système à généraliser et à générer des solutions de « haute qualité » a des « implications majeures », ouvrant des opportunités de co-optimisation avec les premières étapes du processus de conception de puces. Les explorations architecturales à grande échelle étaient auparavant impossibles car il fallait des mois d’efforts pour évaluer un candidat architectural donné. Cependant, la modification de la conception d’une puce peut avoir un impact démesuré sur les performances, note l’équipe de Google, et pourrait jeter les bases d’une automatisation complète du processus de conception de la puce.
De plus, étant donné que le système de l’équipe Google apprend simplement à mapper les nœuds d’un graphique sur un ensemble de ressources, il pourrait être applicable à une gamme d’applications, notamment l’urbanisme, les tests et la distribution de vaccins et la cartographie du cortex cérébral. « [While] notre méthode a été utilisée en production pour concevoir la prochaine génération de Google TPU… [we] crois ça [it] peut être appliqué à des problèmes de placement percutants au-delà de la conception de puces », ont écrit les chercheurs dans le document.
VentureBeat
La mission de VentureBeat est d’être une place publique numérique permettant aux décideurs techniques d’acquérir des connaissances sur la technologie transformatrice et d’effectuer des transactions. Notre site fournit des informations essentielles sur les technologies et les stratégies de données pour vous guider dans la gestion de vos organisations. Nous vous invitons à devenir membre de notre communauté, pour accéder à :
- des informations à jour sur les sujets qui vous intéressent
- nos newsletters
- contenu de leader d’opinion fermé et accès à prix réduit à nos événements prisés, tels que Transformer 2021: Apprendre encore plus
- fonctionnalités de mise en réseau, et plus