Domänenspezifische Beschleuniger: Definition, Architektur und Verwendung

Domänenspezifische Beschleuniger: Definition, Architektur und Verwendung

Domänenspezifische Beschleuniger oder domänenspezifische Beschleuniger sind eine Art von Einheiten, die durch ihre Komplexität unter a CPU, hat aber die Fähigkeit, bestimmte Aufgaben mit geringerem Stromverbrauch und schneller auszuführen. Aber wie funktionieren sie, was macht sie aus und warum sind sie die Zukunft der Hardware?

Im Laufe der Zeit müssen Programme immer schneller werden, aber gleichzeitig sind CPUs und GPUs zu komplexen Giganten geworden, bei denen es sehr schwierig ist, die Leistung auf herkömmliche Weise zu steigern. Die zukünftige Lösung für dieses Problem? Domänenspezifische Beschleuniger

Vor allem das Drosselkonzept

System ARM RISC

Seit den Anfängen der Computertechnik waren Unterstützungschips erforderlich, um bestimmte Techniken zu beschleunigen. Ursprünglich befreiten diese Chips die CPU von der Ausführung einer sich wiederholenden und rekursiven Aufgabe. Das deutlichste Beispiel waren die Grafiksysteme, bei denen die CPU nicht die meiste Zeit mit dem Zeichnen auf dem Bildschirm verschwenden musste.

Ein Beschleuniger ist ein Unterstützungschip, der weiter geht, weil er die CPU nicht nur von dieser Aufgabe befreit, sondern auch beschleunigt. Das heißt, die Aufgabe wird in einem Teil der Zeit erledigt, die die CPU benötigen würde. Das bedeutet, dass es beschleunigt wird und sich darauf auswirkt, dass alles schneller geht. Daher der Name Beschleuniger.

Beschleuniger Es gibt viele Arten und Designs, jede Art von Hardware kann ein Beschleuniger sein: ein Mikrocontroller, ein FPGA, eine kombinatorische oder sequentielle Schaltung usw. In den letzten Jahren ist eine Art von Beschleuniger aufgetaucht, der die Hardware in den folgenden Jahren dominieren wird , die domänenspezifischen Beschleuniger.

Domänenspezifische Beschleuniger, allgemeine Definition

Uhr-CPU

In der Hardware setzen wir Beschleuniger schon seit langem für unterschiedliche Aufgabenstellungen und spezifische Anwendungen und damit insbesondere für eine bestimmte Domäne ein. Heute können diese Domänen Grafiken, Deep Learning, Bioinformatik, Sprachverarbeitung und Bilder in Echtzeit sein. Es gibt viele spezifische Domänen, in denen ein domänenspezifischer Beschleuniger das Problem besser lösen kann als eine CPU, dh in weniger Zeit und weniger Verbrauch.

Das erste, was einem in den Sinn kommt, ist die Frage: Ist a GPU ein domänenspezifischer Beschleuniger? Nein ist es nicht. DSAs übernehmen insbesondere sehr spezifische Aufgaben, so dass eine GPU mehrere dieser Einheiten haben wird. Um es verständlicher zu machen, muss berücksichtigt werden, dass jede Aufgabe in mehrere kleinere aufgeteilt werden kann, die mit dieser Art von Prozessoren unabhängig voneinander beschleunigt werden können.

Domänenspezifische Beschleuniger unterscheiden sich jedoch von anderen auf dem Markt erhältlichen Optionen, da sie in ihrem Design eine Reihe von Merkmalen ausnutzen, die sie zwischen Allzweckprozessoren und herkömmlichen Beschleunigern platzieren. Mit anderen Worten, sie erreichen nicht die Komplexität einer CPU, sind aber deutlich komplexer als die klassischen Lösungen, insbesondere solche, die auf einer festen Funktion basieren.

Spezifische Domäne, spezifische ISA

Quellcode

Als erstes müssen wir bedenken, dass ein Domain Specific Accelerator keine CPU ist, obwohl er auch ein Programm ausführt, sein Design ist für eine bestimmte Lösung optimiert und nicht für eine im Allgemeinen, dafür wird ein vollständiger ISA um den herum erstellt Exklusive DSA-Einheiten, deren Befehle, Register und Datentypen verwendet werden sollen, um in kurzer Zeit bestimmte Befehle zu lösen, für die eine CPU viele Zyklen benötigen würde.

Die CPUs in ihren ISAs bauen heute Befehle aus Mikrobefehlen auf, die einen gemeinsamen Datenpfad durch den Befehlszyklus teilen. Dies bedeutet, dass aufgrund der Komplexität des Befehlssatzes ein komplexer Befehl viele Zyklen benötigt, um abgeschlossen zu werden. In einem DSA können wir Befehlsschleifen und spezifische Datenpfade für bestimmte Befehle erstellen, die schneller ausgeführt werden. Wir können sogar parallel Einheiten erstellen, die genau diese Anweisung rekursiv ausführen.

Aber der größte Vorteil davon ist, dass es uns für bestimmte Anwendungen ermöglicht, Anweisungen loszuwerden, die eine Allzweckeinheit für unsere spezielle Anwendung nutzlos ist. Und dass sie in den letzten Jahren die Register- und Befehlssätze von CPUs und GPUs in Mastodons umgewandelt haben, die einen großen Raum einnehmen.

Domänenspezifische Beschleuniger und Speicherzugriff

Coste Energetico Relativo

Eine weitere Verbesserung des DSA betrifft den Speicher, da sie wie ein Mikrocontroller Speicher innerhalb des Beschleunigers selbst verwenden. Das ist wichtig, da die physikalische Entfernung, in der sich der Speicher befindet, die Energiekosten der Anweisungen beeinflusst.

Die Speicherkonfiguration ist der Hauptvorteil von Beschleunigern, da jeder ausgeführte Befehl viel weniger Strom verbraucht als in einer CPU, außerdem vermeidet er das Problem der Speicherkonkurrenz. Ein DSA nutzt das System nicht RAM um seine Berechnungen durchzuführen, damit es die ganze Zeit parallel arbeiten kann.

Darüber hinaus können wir sie aufgrund ihrer Funktionsweise in einem SoC oder einer ähnlichen Struktur platzieren und die CPU direkt mit ihnen kommunizieren lassen, ohne dass der RAM zum Abrufen der Daten verwendet werden muss.

Hardware und Software gehen bei DSAs Hand in Hand

Diseño Circuitos Papel

Hardware-Design wird normalerweise nicht für spezifische Software durchgeführt, sondern es ist die Software, die angepasst ist, um die Vorteile der Hardware zu nutzen. Dies geschieht durch die Verwendung spezialisierter APIs auf Softwareebene, wo die Software mit einer Abstraktion der Hardware interagiert, so dass ein Programm, das der Treiber ist, die Übersetzung zwischen der Abstraktion und der Hardware durchführt.

Bei domänenspezifischen Beschleunigern besteht die Idee darin, dass sie ein Programm ausführen können, das auf ihnen läuft, als ob es eine CPU wäre, aber vorausgesetzt, sie verfügen über einen speziellen Satz von Anweisungen für ein bestimmtes Problem mit dem Ziel, dass die Programme unter einem DSA schneller laufen, der unter einer CPU aufgrund seiner spezialisierten ISA und Architektur.

Diseño Processores testen

Viele der zukünftigen Hardware-Designs werden DSAs für spezielle Probleme sein. Die in jedem Unternehmen und jeder Institution lokal erstellt werden, um bestimmte Teile eines oder mehrerer entwickelter Programme zu beschleunigen. Seine Implementierung erfolgt durch die Schaffung einzigartiger Chips, seine Implementierung in SoCs und sogar in FPGAs durch Sprachen wie Verilog oder VHDL.

Es geht also darum, die Beziehung zwischen Hardware und Software vollständig umzukehren, da wir vom Design von Software zur Nutzung einer bestimmten Hardware zum Design von Hardware für bestimmte Softwarelösungen übergehen.