Des entreprises comme Google, Amazone, et Intel ont largement adopté différents types d'accélérateurs matériels dans leurs pipelines de cloud computing, mais de nombreux programmes ne peuvent toujours pas en profiter pleinement. Crédit :Université du Michigan
Une nouvelle technique développée par des chercheurs de l'Université du Michigan pourrait permettre une adoption plus large des composants informatiques post-loi de Moore grâce à la traduction automatique de code. Le système, appelé AutomataSynth, permet aux ingénieurs logiciels d'exploiter la puissance des accélérateurs matériels tels que les FPGA sans connaissances spécialisées en programmation ou sans avoir besoin de réécrire les anciens, Code centré sur le processeur.
La loi de Moore touchant à sa fin, les entreprises et les concepteurs s'appuient sur un certain nombre de techniques matérielles pour contourner les rendements décroissants fournis par les nouveaux processeurs. Parmi les candidats à court terme les plus viables figurent les accélérateurs matériels tels que les réseaux de portes programmables sur site (FPGA), qui peut être dédié à l'exécution rapide de fonctions communes particulières et à l'élimination des goulots d'étranglement dans les applications plus volumineuses.
Alors que leur adoption par des entreprises comme Microsoft et Amazon Web Services est déjà bien avancée, Les FPGA sont limités dans leur utilisation par des exigences de programmation qui sont étrangères à de nombreux développeurs de logiciels. Ces exigences limitent également leur utilisation sur les logiciels hérités préexistants, qui a été généralement écrit pour fonctionner spécifiquement avec les processeurs.
La plupart des programmes utilisés aujourd'hui doivent être complètement réécrits à un niveau très bas pour profiter des avantages de l'accélération matérielle. À cause de ce, les composants sont installés plus rapidement qu'ils ne sont réellement utilisés.
« Les entreprises prennent des mesures pour essayer de rendre les [FPGA] plus accessibles aux gens, " dit Kevin Angstadt, un doctorat candidat porteur du projet, "mais quand il s'agit d'écrire de nouveaux programmes, le processus est encore très primitif."
L'équipe, qui comprend les Profs. Westley Weimer et Jean-Baptiste Jeannin, a cherché à briser ces barrières à l'adoption en réécrivant automatiquement certaines fonctions de bas niveau utilisées par de nombreuses applications plus importantes. Mis en œuvre à grande échelle, cela signifierait que les développeurs pourraient utiliser pleinement les FPGA en ajoutant simplement quelques lignes à leur code existant, sans réécriture nécessaire.
Angstadt compare le processus à l'adaptation des unités de traitement graphique (GPU) à l'informatique à usage général, initialement activé par la plate-forme CUDA de NVIDIA. CUDA a fourni aux développeurs une interface à travers laquelle ils pouvaient exploiter la puissance de traitement d'un GPU sur des tâches non graphiques.
"Le but de ce travail était de faire quelque chose de similaire avec les FPGA, " dit Angstadt. " Vous ne pouvez pas simplement écrire dans la même langue lorsque vous les utilisez, mais nous pouvons vous donner l'illusion d'écrire dans la même langue."
Pour y parvenir, les chercheurs ont utilisé une technique appelée apprentissage des automates bornés. La technique utilise une combinaison de différentes analyses de programme pour produire une machine d'état qui est à la fois équivalente en fonction au code d'origine et se prête à l'accélération avec des FPGA. Essentiellement, leur système lit le code qui lui est donné, apprend la fonctionnalité du code, et écrit une description matérielle de ce comportement à envoyer à l'accélérateur.
Dans un article présenté sur le travail, ils ont démontré leur technique sur une classe de fonctions, noyaux de chaîne, qui gèrent les opérations de recherche et de comparaison effectuées sur du texte.
"Chaque fois que vous effectuez une recherche dans un document texte, vous utilisez l'une des formes les plus primitives de ces noyaux de chaîne, " dit Angstadt. Mais elles peuvent être beaucoup plus complexes - les fonctions sont fondamentales pour des applications aussi diverses que la détection de spam, analyse génétique, recommandations de produits, et la physique des particules.
Exécuter AutomataSynth sur une suite de référence de fonctions de chaîne du monde réel écrites pour fonctionner avec les processeurs, l'équipe a découvert qu'elle était capable d'apprendre des conceptions matérielles entièrement équivalentes dans 72 % des cas et des approximations proches dans 11 % supplémentaires.
L'application de cette technique à d'autres classes de fonctions reste un problème ouvert pour des travaux ultérieurs, mais Angstadt est convaincu qu'il peut être largement utilisé.
« Notre recherche indique que même s'il existe de nombreux types de fonctions autres que celles que nous soutenons, il y a plus d'applications que nous ne le pensons qui peuvent être réécrites en tant que noyaux de chaînes, " dit Angstadt. " Nous pourrions donc encore appliquer des techniques similaires pour prendre en charge d'autres types de code. "
En cas de succès, nous pourrions voir les FPGA devenir un composant standard pour l'informatique à usage général.
Les chercheurs ont présenté leurs résultats dans l'article "Accelerating Legacy String Kernels via Bounded Automata Learning, " accepté par la conférence 2020 sur le support architectural pour les langages de programmation et les systèmes d'exploitation (ASPLOS).