
Compiling Algorithms for Heterogeneous Systems
Die meisten neuen Anwendungen in den Bereichen Bildverarbeitung und maschinelles Lernen müssen immense Rechenleistungen erbringen und gleichzeitig strenge Energie- und Leistungsgrenzen einhalten. Um diese Ziele zu erreichen, bauen Architekten zunehmend spezialisierte Recheneinheiten, die auf diese spezifischen Aufgaben zugeschnitten sind. Die daraus resultierenden Computersysteme sind heterogen und enthalten mehrere Rechenkerne mit sehr unterschiedlichen Ausführungsmodellen. Leider sind die Kosten für die Herstellung dieser spezialisierten Hardware - und der Software zu deren Steuerung - astronomisch. Außerdem erfordert die Portierung von Algorithmen auf diese heterogenen Maschinen in der Regel, dass der Algorithmus auf die Maschine aufgeteilt und für jede spezifische Architektur neu geschrieben wird, was zeitaufwändig und fehleranfällig ist.
In den letzten Jahren haben sich die Autoren diesem Problem mit Hilfe von domänenspezifischen Sprachen (DSLs) genähert: High-Level-Programmiersprachen, die auf bestimmte Domänen zugeschnitten sind, z. B. Datenbankmanipulation, maschinelles Lernen oder Bildverarbeitung. Durch den Verzicht auf Allgemeingültigkeit sind diese Sprachen in der Lage, dem Entwickler High-Level-Abstraktionen zu bieten und gleichzeitig eine leistungsstarke Ausgabe zu produzieren. Das Ziel dieses Buches ist es, die Einführung und Erstellung von domänenspezifischen Sprachen voranzutreiben, insbesondere für die Erstellung von Hardware-Designs.
Im ersten Kapitel wird in einem kurzen historischen Abriss erläutert, welche Kräfte die Computerarchitektur heute bestimmen. In Kapitel 2 werden die verschiedenen Methoden zur Erstellung von Entwürfen für Beschleuniger beschrieben, wobei das Streben nach mehr Abstraktion und die Werkzeuge erläutert werden, die es den Entwicklern ermöglichen, auf einer höheren konzeptionellen Ebene zu arbeiten. Anschließend gibt Kapitel 3 eine kurze Einführung in Bildverarbeitungsalgorithmen und Hardware-Entwurfsmuster zu deren Implementierung. In den Kapiteln 4 und 5 werden Darkroom und Halide beschrieben und verglichen, zwei domänenspezifische Sprachen für die Bildverarbeitung, mit denen aus demselben Quellcode Hochleistungsdesigns für FPGAs und CPUs erstellt werden können, was schnelle Designzyklen und eine schnelle Portierung von Algorithmen ermöglicht. Der letzte Abschnitt beschreibt, wie der DSL-Ansatz auch das Problem der Schnittstelle zwischen Anwendungscode und Beschleuniger vereinfacht, indem er zusätzlich zur Beschleunigerkonfiguration den Treiberstapel generiert.
Dieses Buch ist für Studenten der Computerarchitektur eine nützliche Einführung in das domänenspezifische Computing und für diejenigen, die bereits über mehr Erfahrung auf diesem Gebiet verfügen, ein Grundkurs in domänenspezifischen Sprachen und Bildverarbeitungshardware.