FB6 Mathematik/Informatik/Physik

Institut für Informatik


Navigation und Suche der Universität Osnabrück


Hauptinhalt

Topinformationen

STANN – High-Level-Entwurfsablauf für FPGA-basierte ML-Beschleuniger

Beschleuniger für Deep-Learning stehen seit langem im Fokus einer Vielzahl von Forschungsprojekten und kommerzieller Lösungen, wobei der Schwerpunkt meist auf monolithischen Beschleunigern für die Inferenz großer CNNs liegt. Erst in jüngster Zeit haben auch Beschleuniger für das Training neuronaler Netze in der Edge mehr Aufmerksamkeit erlangt. STANN (Synthesis Templates for Artificial Neural Networks) ist eine in der AG Technische Informatik entwickelte Template-Bibliothek, die schnelle und effiziente FPGA-basierte Implementierungen neuronaler Netze durch High-Level-Synthese ermöglicht. Sie unterstützt sowohl Inferenz als auch Training und ermöglicht damit auch Realisierungen für Deep Reinforcement Learning. Die Templates sind in hohem Maße konfigurierbar und können auf unterschiedliche Weise kombiniert werden, um eine Vielzahl alternativer Hardware-Architekturen mit zu erstellen. Auf diese Weise kann für unterschiedliche Anwendungsfälle jeweils der beste Kompromiss aus Geschwindigkeit, Ressourcenbedarf, Energieeffizienz und Genauigkeit erzielt werden.

STANN ist eine Bibliothek von C++-Templates für die High-Level-Synthese. Aktuell werden folgende Layer-Typen in verschiedenen Ausprägungen unterstützt: Fully Connected Layer, Convolutional Layer, Pooling Layer und Aktivierungsschichten. Die Layer-Tamplates enthalten Parameter zur Konfiguration der Grundstruktur der Schicht, z.B. die Anzahl der Eingänge und Ausgänge, sowie Parameter, die die Hardware-Architektur beeinflussen, z.B. die Anzahl der Verarbeitungselemente. Zusätzlich umfasst STANN verschiedene andere Template-Funktionen für das Training und die Inferenz neuronaler Netze - zum Beispiel verschiedene Aktivierungs- und Loss-Funktionen, ihre jeweiligen Ableitungen und Optimierungsverfahren wie stochastischen Gradientenabstieg.

Da Fließkommaberechnungen für das Training neuronaler Netze oftmals notwendig sein können, quantisierte neuronale Netze für die Inferenz aber eine deutlich höhere Ressourceneffizienz ermöglichen, unterstützt STANN beide Datentypen. Im einfachsten Fall kann der Datentyp einfach mit einem Template-Parameter geändert werden. Hängt die Implementierung einer Funktion auch vom Datentyp ab, der für die Berechnungen verwendet wird, sind die verschiedenen Implementierungen dieser Funktionen in verschiedenen Namensräumen untergebracht. Das macht den Wechsel zwischen den Datentypen einfach und erlaubt es bei Bedarf auch, Datentypen zu mischen.

Weitere Details und Anwendungsbeispiele finden sich in den unten aufgeführten Veröffentlichungen.
Der Quellcode ist verfügbar unter: https://github.com/ce-uos/STANN

Ausgewählte Publikationen

  • Rothmann, M.; Porrmann, M.:
    FPGA-based Acceleration of Deep Q-Networks with STANN-RL.
    In: 9th IEEE International Conference on Fog and Mobile Edge Computing, FMEC 2024, Malmö, Sweden. September 2-5, 2024, pp. 99-106.
    DOI: doi.org/10.1109/FMEC62297.2024.10710277
  • Mao, Y.; Weiss, R.; Zhang, Y.; Li, Y; Rothmann, M.; Porrmann, M.:
    FPGA Acceleration of DL-Based Real-Time DC Series Arc Fault Detection.
    31st Reconfigurable Architectures Workshop, RAW 2024, San Francisco, CA, USA, May 27th-28th 2024, pp.92-98.
    DOI: doi.org/10.1109/IPDPSW63119.2024.00031
  • Rothmann, M.; Porrmann, M.:
    STANN – Synthesis Templates for Artificial Neural Network Inference and Training.
    In: 17th International Work-Conference on Artificial Neural Networks, IWANN 2023, Ponta Delgada, Azores, Portugal, June 19-21, 2023, pp. 394–405.
    DOI: doi.org/10.1007/978-3-031-43085-5_31
  • Rothmann, M.; Porrmann, M.:
    A Survey of Domain-Specific Architectures for Reinforcement Learning.
    In: IEEE Access, vol. 10, pp. 13753-13767, 2022,
    DOI: doi.org/10.1109/ACCESS.2022.3146518