Neue Hardware-Architektur für Machine Learning
- Dieses Repository enthält den Quellcode für eine ML-Hardware-Architektur, die die gleiche Leistung wie herkömmliche Inner-Product-Berechnungen erreicht, dabei aber nur fast die Hälfte der Multiplikationsoperationen benötigt.
- Durch die Nutzung von Additionen mit geringer Bitbreite als Ersatz für fast die Hälfte der Multiplikationen führt sie einen alternativen Inner-Product-Algorithmus aus und erhöht so die theoretischen Grenzen von Durchsatz und Recheneffizienz von ML-Beschleunigern.
- Weitere Details finden sich in einem im Journal IEEE Transactions on Computers veröffentlichten Paper.
Neuer Algorithmus und neue Hardware-Architektur
- Vorgestellt werden ein neuer Algorithmus und eine Hardware-Architektur namens Free-pipeline Fast Inner Product (FFIP).
- Er verbessert den 1968 von Winograd vorgeschlagenen Fast-Inner-Product-Algorithmus (FIP).
- FIP steht in keinem Zusammenhang mit dem Winograd-Minimal-Filtering-Algorithmus, der auf konvolutionale Layer angewendet wird, und kann auf alle Layer von ML-Modellen angewendet werden, die sich hauptsächlich auf Matrixmultiplikation zurückführen lassen.
- Es wird die erste Implementierung von FIP in einem ML-Beschleuniger vorgestellt sowie der FFIP-Algorithmus und eine verallgemeinerte Architektur, die die Taktfrequenz von FIP und den daraus resultierenden Durchsatz verbessern.
- Zudem werden ML-spezifische Optimierungen für die FIP- und FFIP-Algorithmen sowie -Architekturen beigetragen.
- FFIP lässt sich nahtlos in bestehende Fixed-Point-Systolic-Array-ML-Beschleuniger integrieren, um mit halb so vielen Multiply-Accumulate-(MAC-)Einheiten den gleichen Durchsatz zu erreichen oder bei festem Hardware-Budget eine größere maximale Systolic-Array-Größe umzusetzen.
- FFIP-Implementierungen für nicht-sparse ML-Modelle mit 8- bis 16-Bit-Fixed-Point-Eingaben erreichen auf derselben Art von Computing-Plattform höheren Durchsatz und bessere Recheneffizienz als führende Lösungen.
Struktur des Quellcodes
compiler: enthält einen Compiler, der Python-Modellbeschreibungen in Beschleunigerbefehle parst, sowie Interface-Code zum PCIe-Treiber, der die Modellausführung auf dem Beschleuniger startet, Ergebnisse und Performance-Counter ausliest und die Korrektheit der Ergebnisse testet.
rtl: enthält synthesefähiges SystemVerilog-RTL.
sim: enthält Skripte zum Einrichten einer Simulationsumgebung für Tests.
tests: enthält UVM-basierten Testbench-Quellcode, der den Beschleuniger in der Simulation mit Cocotb verifiziert.
utils: enthält zusätzliche Python-Pakete und Skripte, die im Projekt verwendet werden, sowie allgemeine Entwicklungs-Utilities und Hilfen, die vom Autor erstellt wurden.
Meinung von GN⁺
- Dieser Artikel stellt einen innovativen Fortschritt bei ML-Hardware-Architekturen vor und beschreibt insbesondere einen neuen Algorithmus und eine neue Architektur, die Multiplikationsoperationen reduzieren, ohne die Leistung zu verringern. Das ist ein wichtiger Fortschritt, der die Effizienz von ML-Berechnungen deutlich verbessern kann.
- Der FFIP-Algorithmus fügt bestehenden Entwürfen von ML-Beschleunigern eine neue Dimension hinzu und bietet eine Möglichkeit, Hardware-Ressourcen effizienter zu nutzen. Das ist in heutigen Computing-Umgebungen, in denen Energieeffizienz und Kosteneffizienz wichtig sind, besonders relevant.
- Damit sich diese Technologie breit durchsetzt, müssen jedoch die Kompatibilität mit bestehenden ML-Beschleunigern, das Verständnis der Entwickler für die neue Architektur sowie Leistungs- und Kostenfragen bei der Implementierung in realer Hardware berücksichtigt werden.
- Vergleichbare Projekte oder Produkte mit ähnlicher Funktionalität sind etwa Googles TPU (Tensor Processing Unit) oder NVIDIAs CUDA-Kerne, die bereits am Markt etablierte ML-Beschleunigerlösungen sind.
- Bei der Einführung neuer Technologien oder von Open Source sollten die Kompatibilität mit bestehenden Systemen, mögliche Kostensteigerungen im Verhältnis zum Performance-Gewinn sowie die Komplexität von Entwicklung und Wartung berücksichtigt werden. Zu den Vorteilen von FFIP gehören höherer Durchsatz und bessere Recheneffizienz; mögliche Nachteile sind die Lernkurve für Entwickler bei neuen Systemen und anfängliche Implementierungskosten.
1 Kommentare
Hacker-News-Kommentare