Performance evaluation of branch-free fused multiply-add algorithms for multi-component-type multiple-precision floating-point arithmetic
Dieses Paper schlägt neue verzweigungsfreie Fused-Multiply-Add-Algorithmen für Double-Word-, Triple-Word- und Quadruple-Word-Mehrpräzisionsarithmetik vor und benchmarkt diese, wobei es zeigt, dass sie durch das Eliminieren von bedingten Verzweigungen weitere Leistungsverbesserungen gegenüber bestehenden Methoden erzielen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie versuchen, einen superpräzisen Taschenrechner zu bauen, indem Sie nur aus Standard-Lego-Steinen bauen. Diese Steine sind Ihre normalen Gleitkommazahlen des Computers. Normalerweise, wenn Sie diese Steine stapeln, um ein „Double-Word“ (zwei Steine), „Triple-Word“ (drei Steine) oder „Quadruple-Word“ (vier Steine) zu bilden, müssen Sie ständig die Größe der Teile überprüfen, während Sie den Stapel aufbauen. Wenn ein Teil zu groß oder zu klein ist, müssen Sie anhalten, pausieren und den Stapel neu ordnen. In der Welt der Computerchips sind diese „Pausen“ als Branches (Verzweigungen) bekannt.
Wenn Sie versuchen, Millionen dieser Stapel gleichzeitig zu bauen (wie auf einer modernen Grafikkarte oder einem leistungsstarken Prozessor), werden diese Pausen zu einem Albtraum. Es ist wie ein Verkehrsstau, bei dem jedes Auto anhalten muss, um ein anderes Schild zu prüfen, bevor es weiterfahren kann. Einige Autos fahren links, andere rechts, und die gesamte Schlange kommt zum Stillstand. Dies wird als „Lane Divergence“ (Laufdivergenz) bezeichnet und ruft die Leistung in den Keller.
Die große Entdeckung: Die „No-Stop“-Autobahn
Tomonori Kouyas Arbeit führt eine neue Art vor, diese Stapel zu bauen, die niemals anhält, um Schilder zu prüfen. Es ist ein „branch-freier“ (verzweigungsfreier) Algorithmus. Anstatt zu fragen: „Ist dieses Teil groß genug?“ und auf eine Antwort zu warten, nutzt die neue Methode eine clevere, im Voraus geplante Route, die perfekt funktioniert, egal wie die Teile aussehen.
Das Papier beweist, unter Verwendung eines superintelligenten Roboter-Mathematikers (eines SMT-Solvers namens FPANVerifier), dass diese neue Route sicher und genau für alle Standard-Computerformate ist. Die Hauptfindung ist, dass der Computer durch das Entfernen dieser „Stop-and-Check“-Pausen viel schneller rechnen kann.
Der magische Trick: Die Bewegung verschmelzen
Das Papier konzentriert sich auf eine spezifische Operation namens Fused Multiply-Add (FMA). Stellen Sie sich vor, Sie müssen zwei Zahlen multiplizieren und dann eine dritte Zahl addieren. Normalerweise führen Sie dies in zwei Schritten aus:
- Multiplizieren (und vielleicht pausieren, um das Ergebnis zu korrigieren).
- Addieren (und vielleicht erneut pausieren).
Der Autor schlägt eine „gefusete“ Version vor, die beides in einer einzigen, fließenden Bewegung erledigt, wie ein Ninja, der ein Messer wirft und es im selben Atemzug wieder auffängt.
- Für Double-Word (2 Steine): Der alte Weg dauerte 29 Schritte. Der neue Weg benötigt nur 17.
- Für Triple-Word (3 Steine): Der alte Weg dauerte 96 Schritte. Der neue Weg benötigt 66.
- Für Quadruple-Word (4 Steine): Der alte Weg dauerte 209 Schritte. Der neue Weg benötigt 146.
Das Papier diskutt auch eine „Abkürzungs“-Methode, die von anderen Forschern vorgeschlagen wurde (die 6-Schritte-Methode). Entscheidend ist, dass diese Abkürzung NICHT allgemein gültig ist. Es ist ein Hochgeschwindigkeitswerkzeug, das nur funktioniert, wenn die Zahlen bereits in einer ganz bestimmten Weise angeordnet sind (speziell, wenn die addierte Zahl mindestens doppelt so groß ist wie das Produkt). Wenn Sie versuchen, diese Abkürzung bei allgemeinen mathematischen Problemen wie Division oder Quadratwurzeln anzuwenden, bei denen Sie nicht garantieren können, dass diese Zahlen so zusammenpassen, verschlechtert sich die Genauigkeit drastisch. Die neue Methode des Autors hingegen funktioniert für alle Zahlen, ohne dass spezielle Anordnungen nötig sind, was sie zu einem echten „Drop-in“-Ersatz für die allgemeine Hochpräzisionsmathematik macht.
Wie sicher sind wir?
Die Autoren sind unglaublich zuversichtlich, aber sie stützen sich nicht auf Vermutungen, sondern auf harte Fakten.
- Maschinell verifiziert: Sie haben nicht einfach Code geschrieben und gehofft; sie haben ein Computerprogramm verwendet, um mathematisch zu beweisen, dass der Fehler in ihrer neuen Methode winzig ist (speziell begrenzt durch Formeln wie , und , wobei der winzige Rundungsfehler einer einzelnen Zahl ist).
- Überall getestet: Sie haben ihre neuen Algorithmen auf zwei sehr unterschiedlichen Supercomputern getestet: einem Arm-basierten Chip (GB10) und einem Intel-basierten Chip (H100).
- Die Ergebnisse:
- Auf dem Arm-Chip war die neue Methode für Divisions- und Quadratwurzelberechnungen 1,5- bis 2,1-mal schneller.
- Auf dem Intel-Chip war sie für Divisionen und Quadratwurzeln 1,2- bis 1,6-mal schneller.
- Für große mathematische Aufgaben wie die Matrixmultiplikation (GEMM) war die Beschleunigung auf dem Arm-Chip sogar noch dramatischer und erreichte beim Triple-Word bis zu 2,0-mal schneller.
Die „exakte“ Alternative
Das Papier erwähnt auch eine „perfekte“ Version dieses Tricks namens Exact FMA. Diese Version ist noch präziser, aber sie hat einen hohen Preis: Sie ist 6- bis 11-mal langsamer als die hier vorgeschlagene Methode. Die Autoren schlagen vor, diese „perfekte“ Version nur dann zu verwenden, wenn Sie absolut, zu 100 % die höchste Genauigkeit benötigen und die Geschwindigkeit keine Rolle spielt. Für fast alles andere ist die „branch-freie“ Methode der Gewinner.
Was ist mit dem „alten“ Weg?
Das Papier korrigiert auch einen Fehler aus einer früheren Version dieser Forschung. Zuvor verglichen die Autoren ihre neue Methode mit einer „vollständig destillierten“ alten Methode, die unglaublich langsam und ineffizient war. Sie erkannten, dass dies kein fairer Kampf war. Als sie ihre neue Methode gegen die tatsächliche Standard-„branch-freie“ Methode (die bereits ziemlich schnell ist) verglichen, gewann die neue Methode immer noch, aber der Geschwindigkeitsvorteil war bescheidener (etwa 1,3- bis 1,7-mal schneller). Dies ist immer noch ein riesiger Gewinn, aber er ist realistischer.
Das Fazit
Dieses Papier zeigt, dass wir die Computer erheblich schneller machen können, ohne an Genauigkeit zu verlieren, indem wir die „Stop-and-Check“-Pausen in der Hochpräzisionsmathematik entfernen. Es ist, als würde man von einem Auto, das an jeder Kreuzung anhalten muss, auf ein Auto aufrüsten, das über sie hinwegfliegen kann. Die Autoren haben bewiesen, dass dies funktioniert, es auf echter Hardware getestet und gezeigt, dass es bereit für den Einsatz in der nächsten Generation von superschnellen Taschenrechnern ist.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.