Die Arbeit präsentiert SARIS, eine flexible und generische Methode zur Beschleunigung von Stencil-Codes mithilfe von indirekten Streamregistern. SARIS speichert die Offsets der Gitterpunktladungen in statischen Indexfeldern, die in jeder Punktiteration wiederverwendet werden. Mehrere indirekte Streamregister werden für das gleichzeitige Streaming von Operanden verwendet, zusätzliche affine Register dienen zum Laden von Koeffizienten oder Speichern von Ergebnissen.
Die Methode funktioniert mit beliebigen Stencil-Formen und einer beliebigen Anzahl von Ein-/Ausgabe-Arrays und ist für Parallelisierung geeignet. Sie kann mit Codeoptimierungen wie Schleifenentfaltung, arithmetischer Reassoziation und dem Einsatz von Hardware-Schleifen kombiniert werden.
Die Autoren evaluieren SARIS auf dem achtkernigen RISC-V Snitch-Cluster mit SSSR-Erweiterungen. Sie implementieren parallele, optimierte RV32G-Basisversionen und SARIS-beschleunigte Varianten gängiger Stencil-Codes, die sie quelloffen zur Verfügung stellen. SARIS erzielt signifikante Beschleunigungen von 2,72x, nahezu ideale FPU-Auslastungen von 81% und beachtliche Energieeffizienzsteigerungen von 1,58x im Durchschnitt. Bei Skalierung auf ein 256-Kern-Manycore-System erreicht SARIS eine FPU-Auslastung von 64% und eine durchschnittliche Beschleunigung von 2,14x, trotz der Bandbreitenbeschränkungen eines komplexen Speichersystems.
Til et andet sprog
fra kildeindhold
arxiv.org
Vigtigste indsigter udtrukket fra
by Paul Scheffl... kl. arxiv.org 04-09-2024
https://arxiv.org/pdf/2404.05303.pdfDybere Forespørgsler