Compiling Algorithms for Heterogeneous Systems
La plupart des applications émergentes dans le domaine de l'imagerie et de l'apprentissage automatique doivent effectuer d'énormes quantités de calculs tout en respectant des limites strictes en matière d'énergie et de puissance. Pour atteindre ces objectifs, les architectes construisent des moteurs de calcul de plus en plus spécialisés, adaptés à ces tâches spécifiques. Les systèmes informatiques qui en résultent sont hétérogènes et contiennent de multiples cœurs de traitement avec des modèles d'exécution extrêmement différents. Malheureusement, le coût de production de ce matériel spécialisé - et du logiciel permettant de le contrôler - est astronomique. De plus, le portage d'algorithmes sur ces machines hétérogènes exige généralement que l'algorithme soit réparti sur la machine et réécrit pour chaque architecture spécifique, ce qui prend du temps et est sujet à des erreurs.
Au cours des dernières années, les auteurs ont abordé ce problème en utilisant des langages spécifiques à un domaine (DSL) : des langages de programmation de haut niveau adaptés à des domaines spécifiques, tels que la manipulation de bases de données, l'apprentissage automatique ou le traitement d'images. En renonçant à la généralité, ces langages sont capables de fournir des abstractions de haut niveau au développeur tout en produisant des résultats très performants. L'objectif de ce livre est d'encourager l'adoption et la création de langages spécifiques à un domaine, en particulier pour la création de conceptions matérielles.
Dans le premier chapitre, un bref parcours historique explique les forces qui régissent aujourd'hui l'architecture des ordinateurs. Le chapitre 2 décrit les différentes méthodes de conception des accélérateurs, en soulignant la nécessité d'une plus grande abstraction et les outils qui permettent aux concepteurs de travailler à un niveau conceptuel plus élevé. Le chapitre 3 présente ensuite une brève introduction aux algorithmes de traitement d'images et aux modèles de conception matérielle permettant de les mettre en œuvre. Les chapitres 4 et 5 décrivent et comparent Darkroom et Halide, deux langages spécifiques créés pour le traitement d'images qui produisent des conceptions de haute performance pour les FPGA et les CPU à partir du même code source, ce qui permet des cycles de conception rapides et un portage rapide des algorithmes. La dernière section décrit comment l'approche DSL simplifie également le problème de l'interface entre le code d'application et l'accélérateur en générant la pile de pilotes en plus de la configuration de l'accélérateur.
Ce livre devrait constituer une introduction utile à l'informatique spécialisée par domaine pour les étudiants en architecture informatique et une introduction aux langages spécifiques par domaine et au matériel de traitement d'images pour ceux qui ont plus d'expérience dans ce domaine.
© Book1 Group - tous droits réservés.
Le contenu de ce site ne peut être copié ou utilisé, en tout ou en partie, sans l'autorisation écrite du propriétaire.
Dernière modification: 2024.11.14 07:32 (GMT)