- SP1: Modelling and simulating in-memory computing on chip and node level (MOSIC)
- Chair of Computer Science 3 (Computer Architecture), FAU Erlangen-Nürnberg
- PI: Prof. Dr. Dietmar Fey
- SP2: Analytic chip-level performance, power, and energy modeling
- Erlangen National High Performance Computing Center (NHR@FAU), FAU Erlangen-Nürnberg
- PI: Dr. Georg Hager
- SP3: Simulator framework for runtime and energy prediction of massively parallel message-passing programs
- Department of Computer Science, Professorship of High Performance Computing, FAU Erlangen-Nürnberg
- PI: Prof. Gerhard Wellein / Dr. Ayesha Afzal
- SP4: Performance and energy modeling for spiking network simulations on conventional and accelerator architectures
- Institute for Advanced Simulation (IAS-6), Forschungszentrum Jülich (FZJ)
- PI: Prof. Dr. Markus Diesmann / Dr. Susanne Kunkel
- SP5: Experimental node-level energy efficiency analysis
- Center for Information Services and High Performance Computing (ZIH), TU Dresden
- PI: Prof. Dr. Wolfgang Nagel / Dr. Robert Schöne
- SP6: Energy and performance modeling of the neuromorphic supercomputer SpiNNcloud
- Chair of Highly-Parallel VLSI Systems and Neuro-Microelectronics, TU Dresden
- PI: Prof. Dr. Christian Mayr / Dr. Johannes Partzsch
- SP7: Modeling of near-memory computing architectures for computer vision applications targeting performance and energy
- Chair of Adaptive Dynamic Systems, TU Dresden
- PI: Prof. Dr. Diana Göhringer
Das Projekt MOSIC befasst sich mit der Modellierung auf Chip- und Knotenebene innerhalb der Forschungsgruppe MOD4COMP, die an einem neuen ganzheitlichen Ansatz zur Vorhersage von Energie und Leistung in Rechensystemen mittels Modellierung arbeitet, die von der Chip- über die Knoten- bis zur Netzwerkebene reicht. Ziel von MOSIC ist es, den Einsatz neuer nichtflüchtiger Speichertechnologien (NVM), z.B. ReRAMs und ferroelektrische Bauelemente, die eine spürbare Verringerung des Energiebedarfs auf Chip- und Knotenebene ermöglichen, durch Modelle abzubilden. Die Energiereduzierung soll durch zwei Architekturmaßnahmen erreicht werden: (i) Neue Speicher-nah ausgeführte In-Memory Computing (IMC)-Befehle, um energieintensiven Datentransport vom Speicher zum Prozessor durch energiesparende Befehle abzulösen. (ii) Die Verwendung sogenannter hybrider Speicher, die konventionelle Speicher (DRAM oder SRAM) mit NVM als Backup koppeln. Dies erlaubt temporäres, energiesparendes Abschalten des Prozessors und energetisch günstiges Auslesen der Daten. Diese qualitativen Vorteile müssen entlang der gesamten Speicherhierarchie, von den Registern über die Cache-Ebenen bis zum Hauptspeicher, quantitativ bewertet werden. Außerdem muss geprüft werden, welche Operationen an welcher Stelle der Speicherhierarchie für einen IMC-Befehl geeignet sind. Hierfür werden passende Modelle für NVMs benötigt, die IMC und hybride Speicher geeignet erfassen. Solche Modelle gibt es noch nicht, da aktuelle Modelle für NVMs zu physikalisch orientiert und für Untersuchungen auf Systemebene aufgrund zu hoher Simulationszeiten ungeeignet sind, oder sie abstrahieren zu sehr und modellieren nur funktionale, aber keine nicht-funktionalen Eigenschaften, wie Rechenzeit, Zugriffszeit und Energiebedarf. In MOSIC werden neue Architekturmodelle, die Laufzeit- und Energieanforderungen für IMC-Operationen und Zugriffe auf hybride Speicher beinhalten, durch Simulation aus erweiterten physikalischen Modellen extrahiert. Diese Architekturmodelle werden in Prozessorsimulatoren integriert, um den Einsatz von NVMs auf Chip- und Knotenebene im Sinne eines energiesparenden nachhaltigen Rechnens beim Entwurf von Algorithmen und Architekturen nachzuweisen und zu unterstützen. Damit der Nachweis gelingt, wird in MOSIC ein neuer Zyklen-approximierender Prozessorsimulator auf Knotenebene entworfen, der analytische Modelle aus SP2 und SP3 und in MOSIC zu entwickelnde maschinelle Lernverfahren zur Energie- und Laufzeitvorhersage nutzt. Mit Hilfe der Messmethoden aus SP5 und SP6 werden die Modelle und der neue Simulator auf realer Hardware verifiziert. Unter Verwendung der Architekturmodelle und Simulatoren auf höheren Ebenen aus anderen SPs können ganzheitliche Bewertungen mit anderen Teilprojekten in Bezug auf nachhaltiges Rechnen für Gehrinsimulationen (SP4), eingebettetes HPC für die Videoverarbeitung (SP7), z.B. im autonomen Fahren, und neuromorphen Hardware-Architekturen (SP6).
Das Projekt innerhalb der Mod4Comp-Forschergruppe zielt auf die Entwicklung umfassender analytischer First-Principles-, Grey- oder White-Box Performance- und Energiemodelle für die betrachteten Knotenarchitekturen. Dazu gehören Standard-Multicore-Server-CPUs, modernste Hochleistungs-GPUs, stromsparende eingebettete CPUs und In-Memory-Computing-Geräte. Analytische First-Principles-Modelle für Rechenleistung und Energieverbrauch sind vereinfachte mathematische Beschreibungen der Wechselwirkungen zwischen Hardware und Software, ähnlich dem bekannten Roofline-Modell. Sie erfordern ein Maschinenmodell für relevante Merkmale der Hardware und ein Anwendungsmodell, das beschreibt, wie die Anwendung die Ressourcen der Maschine nutzt, um das numerische Problem zu lösen. Beide werden vereint, um Vorhersagen über die Ressourcennutzung, z.B. die Laufzeit oder Energieverbrauch, zu erhalten. Der große Vorteil von First-Principles-Modellen ist, dass sie auf Annahmen über die Eigenschaften der Interaktion zwischen Hardware und Software beruhen: Wenn das Modell auf bestehender Hardware validiert werden kann, kann man sicher sein, dass es auch für die Beschreibung neuer, noch nicht existierender Hardware geeignet ist. Falls das Modell nicht validiert werden kann, d.h. wenn seine Vorhersagen zu weit von Messungen abweichen, kann es ggf. verfeinert werden. In jedem Fall werden wertvolle Erkenntnisse über die vorherrschenden Flaschenhälse gewonnen. Im Rahmen dieses Projekts werden existierende Execution-Cache-Memory (ECM), Kommunikations- und Verlustleistungsmodelle erweitert und validiert. Dies erfordert umfangreiches Mikrobenchmarking und Messungen zur Festlegung von Parametern und zur Validierung, wofür eine intensive Zusammenarbeit mit anderen SPs erforderlich ist, weil diese Teilprojekte eng mit unkonventioneller Hardware bzw. mit detaillierten Messungen befasst sind. Für die Performancemodellierung wird die bisher abgedeckte Gruppe von Architekturen stark erweitert und die Rolle von Überlapp- und Latenzeffekten in der Speicherhierarchie auf einem Spektrum von Hardware-Plattformen quantifiziert. Das zuvor von der Gruppe entwickelte phänomenologische Energiemodell wird erweitert: Das bestehende Modell wird in Richtung neuer Hardware verfeinert und es wird ein mikroskopisches Modell entwickelt, das quantitative Vorhersagen auf der Grundlage des Energieumsatzes elementarer Operationen erlaubt. Sowohl Performance- als auch Energiemodelle werden eingebettet in eine klar definierte Methodik, die leicht an zukünftige Hardware angepasst werden kann. Die verfeinerten Modelle werden direkt und kontinuierlich in das entwickelte Simulator-Framework Eingang finden. Als weiterer Beitrag zum Tooling-Ökosystem wird das Teilprojekt die populären LIKWID-Tools um die Unterstützung externer Datenquellen erweitern, um sie mit Hardware kompatibel zu machen, die keinen einfachen Zugang zu relevanten Performance- und Energiedaten erlaubt.
Der stark steigende Rechenbedarf in der Künstlichen Intelligenz (KI) ist ungebrochen, besonders im Bereich Deep Learning. Dies führt zu einem stetig steigenden Energiebedarf. Fortschritte in der Technologieentwicklung allein können diesen Anstieg nicht kompensieren. Neuartige Computer-Architekturen und Verarbeitungsalgorithmen, wie sie im Bereich neuromorpher Hardware entwickelt werden, versprechen hier deutlich energieeffizientere KI-Lösungen. Diese Systeme waren bislang meist in ihrer Größe beschränkt, und für die wenigen großskaligen Systeme gibt es keine systematische Charakterisierung ihrer Leistungsfähigkeit und Energieeffizienz. Dieses Teilprojekt der Forschungsgruppe Mod4Comp widmet sich der ganzheitlichen Energie- und Performance-Modellierung des neuromorphen Großrechners SpiNNcloud, einem System aus 5 Millionen ARM-Prozessoren, die mit einem dem menschlichen Gehirn angelehnten schlanken und niedriglatenten Kommunikationsnetzwerk verbunden sind. Aufbauend auf detaillierten Leistungsmessungen werden Energie- und Performance-Modelle für das SpiNNcloud-System auf Chip-, Board- und Gesamtsystem-Ebene entwickelt. Diese werden in die in Mod4Comp entwickelte ganzheitliche Modellierungs-Umgebung eingebettet. In engem Austausch mit den Projektpartnern der Forschungsgruppe werden Proxy-Apps entwickelt, die wesentliche Eigenschaften von Applikationen nachbilden und als skalierbare Benchmarks der Charakterisierung der SpiNNcloud hinsichtlich Energie und Performance dienen. Modelle für die Kommunikation werden mit zugeschnittenen Simulationen weiterentwickelt. Das Teilprojekt widmet sich pulsenden neuronalen Netzen als Hauptanwendung und validiert in der Folge die entwickelten Modelle mittels großskaliger Gehirnsimulation. Im zweiten Teil des Teilprojektes werden die Energie- und Performance-Modelle für die Entwicklung und Umsetzung energieoptimierter Verteilungs- und Abbildungsstrategien für großskalige Simulationsmodelle auf der SpiNNcloud verwendet. Dadurch kann die Verlustleistung zum Betrieb der SpiNNcloud auf Systemebene gesenkt werden. Die Modelle werden darüberhinaus für die Untersuchung neuartiger Systemarchitekturen, u.a. unter Einbeziehung von Near-Memory-Rechenverfahren, herangezogen. Mit den Arbeiten in diesem Teilprojekt wird zum ersten Mal ein großskaliges, neuro-inspiriertes Rechensystem einer systematischen Energie- und Performance-Analyse unterzogen. Die Integration in die Modellierungs-Umgebung der Forschungsgruppe Mod4Comp ermöglicht einen direkten und aussagekräftigen Vergleich der SpiNNcloud-Architektur mit etablierten HPC-Rechenarchitekturen. Daraus werden wichtige Erkenntnisse bei der Entwicklung neuartiger Rechenarchitekturen entstehen.
Dieses Projekt in der Forschungsgruppe Mod4Comp entwickelt Performance-Modelle der Simulationstechnologie für spikende (gepulste) neuronale Netzwerke auf konventionellen Rechnerarchitekturen mit den Schwerpunkten Many-Core Systeme und Energieeffizienz. In den letzten Jahren hat das Gebiet eine Trennung zwischen generischen Simulations-Codes und konkreten Modellen neuronaler Netzwerke erreicht: Viele Modelle können mit der gleichen Simulations-Maschine simuliert werden. Dies ermöglicht Betrieb und Wartung eines solchen generischen Codes als Infrastruktur. NEST ist das führende Werkzeug für spikende Netze mit der Auflösung von Neuronen und Synapsen. Es ist für die Untersuchung von Netzen in ihrer natürlichen Größe bis hin zu Milliarden von Neuronen ausgelegt, wobei die größten verfügbaren Supercomputer verwendet werden können. Zudem ist NEST die Referenz für neuromorphe Systeme geworden, und Modelle, die zuerst in NEST implementiert wurden, sind nun de-facto Standards für das Benchmarking. Die Dynamik von spikenden Netzen ist durch unregelmäßige spärliche Aktivität auf einem spärlichen Graphen gekennzeichnet. Dies stellt eine Herausforderung für die Speicherbandbreite und die Cache-Effizienz von Prozessoren dar, insbesondere aufgrund des Speicherverbrauchs Tausender eingehender Synapsen pro Neuron. NEST wurde im Laufe der Jahre schrittweise optimiert und vorläufige Daten zeigen, dass noch erhebliches Potenzial für eine Verringerung der Speicherlatenz und eine feinkörnige Parallelisierung vorhanden ist. Die jüngsten Optimierungsanstrengungen zielen auch auf GPUs ab und untersuchen das Potenzial massiv verteilten Speichers auf Graphcore’s IPUs. Generell hängt weiterer Fortschritt jedoch von der Verfügbarkeit detaillierter Performance-Modelle ab. Diese werden in der nachfolgenden zweiten Phase des Projekts die Optimierung hinsichtlich time-to-solution und energy-to-solution leiten. Darüber hinaus werden sie Vorhersagen für künftige Systeme einschließlich neuromorpher Beschleuniger ermöglichen. Ein erstes Ziel ist es, den Simulationszyklus in Phasen zu unterteilen und den Fluss von Spikes in modernem Code durch ein Modell zu erfassen. Parallel dazu wird eine Sammlung von tatsächlich in der Neurowissenschaft eingesetzten Netzwerk-Modellen erstellt, die den Anwendungsbereich des Codes abdeckt. Das Projekt wird zusammen mit anderen Projekten zu einer Bibliothek von Proxy-Apps beitragen, die kritische Abschnitte des Codes herausstellen, während die Performance- und Energie-Modellierung in Zusammenarbeit mit anderen Projekten durchgeführt wird. Die Ergebnisse liefern Rückmeldungen für alle Ebenen der Mehrschichtmodellierung. Daten zur Performance fließen in Überlegungen zu Speicherarchitekturen von SP1 ein. Schließlich werden wir mit anderen Projekten zusammenarbeiten, um die Simulationsgeschwindigkeit und den Energieverbrauch eines Netzes, das die vollständige SpiNNaker2-Installation nutzt, mit früheren Ergebnissen und heutigen Supercomputern in Beziehung zu setzen.
Im Projekt werden wir die Genauigkeit und Qualität von Performance- und Energieeffizienzmessungen für fortgeschrittene Rechnerarchitekturen erhöhen. Rechnerarchitekturen werden immer komplexer, da das steigende Transistorbudget z.B. in nebenläufige Rechenkapazitäten und Spezialhardware wie Beschleuniger investiert wird. Während die Nutzung heterogener Rechenressourcen die Ausführungszeiten spezifischer Software verbessert, werden zusätzliche Synchronisierungen eingeführt, was die Effizienz senken kann. Es ist daher nötig, verschiedene Hardwareparameter zu betrachten, um zu entscheiden, auf welcher Hardware Teile der Software ausgeführt werden sollen. Mit der steigenden Komplexität der Rechenressourcen setzen Prozessoren und Beschleuniger komplexe Maßnahmen zur Kontrolle der Leistungsaufnahme um. Die Konfigurierung der Hardware zur Senkung der Leistungsaufnahme hat einen direkten Einfluss auf die Energieeffizienz mit der Programme ausgeführt werden. Zudem beeinflusst sie die Laufzeit, da ggf. eine niedrigere Leistungsaufnahme nur mit einer niedrigeren Prozessorfrequenz erreicht wird. Die Komplexität der Mechanismen zur dynamischen Senkung der Leistungsaufnahme wird weiter dadurch erhöht, dass die Kontrollmechanismen auf verschiedenen Ebenen umgesetzt werden, wie z.B. in Hardware, Betriebssystem und Nutzersoftware. Ziel dieses Projekts ist, die Interaktion von Energieeffizienz-Features und deren Auswirkungen auf die Performance von Rechensystemen zu verstehen und dieses Verständnis verfügbar zu machen. Dieses Wissen ist ist eine Grundlage dafür komplexe Rechensysteme zu modellieren und hinsichtlich ihrer Energieeffizienz und Laufzeit zu optimieren. Die Forschungsgruppe nutzt dies im Multi-layer-Modeling-Modul. Als Basis für eine Energieeffizienzanalyse werden sowohl deskriptive Quellen wie Handbücher als auch das Wissen über typische Stromsparmechanismen genutzt. Für eine Performance- und Energiemodellierung, muss dieses Wissen auch quantitativ unterlegt werden. Um dies zu tun, haben wir sowohl Werkzeuge gebaut, die spezifische Komponenten von Rechensystemen nutzen und auslasten, als auch Werkzeuge, die in der Lage sind, Auswirkungen auf die genutzte Hardware zu beobachten. In diesem Projekt werden wir diese Werkzeuge erweitern und an neue Bedingungen anpassen. Typische Forschungsfragen sind: 1) Kann ein Rechensystem Kernfrequenzen für bestimmte Arbeitslasten halten? 2) Wie wird eine Begrenzung der Leistungsaufnahme umgesetzt? Welchen Einfluss haben eingestellte maximale Leistungsaufnahme, ausgeführte Software und Auslastung der Hardware? 3) Wie lange kann eine Rechenkomponente die Thermal Design Power überschreiten? Welche zeitlichen Zusammenhänge gibt es zwischen Leistungsaufnahme und Prozessorfrequenzen? 4) Welche Speicherbandbreite kann praktisch erreicht werden und welchen quantitativ messbaren Einfluss haben Orte in denen Daten gespeichert werden können? Welchen Einfluss haben Prozessorfrequenzen und unterschiedliche NUMA Konfigurationen?
Der stark steigende Rechenbedarf in der Künstlichen Intelligenz (KI) ist ungebrochen, besonders im Bereich Deep Learning. Dies führt zu einem stetig steigenden Energiebedarf. Fortschritte in der Technologieentwicklung allein können diesen Anstieg nicht kompensieren. Neuartige Computer-Architekturen und Verarbeitungsalgorithmen, wie sie im Bereich neuromorpher Hardware entwickelt werden, versprechen hier deutlich energieeffizientere KI-Lösungen. Diese Systeme waren bislang meist in ihrer Größe beschränkt, und für die wenigen großskaligen Systeme gibt es keine systematische Charakterisierung ihrer Leistungsfähigkeit und Energieeffizienz. Dieses Teilprojekt der Forschungsgruppe Mod4Comp widmet sich der ganzheitlichen Energie- und Performance-Modellierung des neuromorphen Großrechners SpiNNcloud, einem System aus 5 Millionen ARM-Prozessoren, die mit einem dem menschlichen Gehirn angelehnten schlanken und niedriglatenten Kommunikationsnetzwerk verbunden sind. Aufbauend auf detaillierten Leistungsmessungen werden Energie- und Performance-Modelle für das SpiNNcloud-System auf Chip-, Board- und Gesamtsystem-Ebene entwickelt. Diese werden in die in Mod4Comp entwickelte ganzheitliche Modellierungs-Umgebung eingebettet. In engem Austausch mit den Projektpartnern der Forschungsgruppe werden Proxy-Apps entwickelt, die wesentliche Eigenschaften von Applikationen nachbilden und als skalierbare Benchmarks der Charakterisierung der SpiNNcloud hinsichtlich Energie und Performance dienen. Modelle für die Kommunikation werden mit zugeschnittenen Simulationen weiterentwickelt. Das Teilprojekt widmet sich pulsenden neuronalen Netzen als Hauptanwendung und validiert in der Folge die entwickelten Modelle mittels großskaliger Gehirnsimulation. Im zweiten Teil des Teilprojektes werden die Energie- und Performance-Modelle für die Entwicklung und Umsetzung energieoptimierter Verteilungs- und Abbildungsstrategien für großskalige Simulationsmodelle auf der SpiNNcloud verwendet. Dadurch kann die Verlustleistung zum Betrieb der SpiNNcloud auf Systemebene gesenkt werden. Die Modelle werden darüberhinaus für die Untersuchung neuartiger Systemarchitekturen, u.a. unter Einbeziehung von Near-Memory-Rechenverfahren, herangezogen. Mit den Arbeiten in diesem Teilprojekt wird zum ersten Mal ein großskaliges, neuro-inspiriertes Rechensystem einer systematischen Energie- und Performance-Analyse unterzogen. Die Integration in die Modellierungs-Umgebung der Forschungsgruppe Mod4Comp ermöglicht einen direkten und aussagekräftigen Vergleich der SpiNNcloud-Architektur mit etablierten HPC-Rechenarchitekturen. Daraus werden wichtige Erkenntnisse bei der Entwicklung neuartiger Rechenarchitekturen entstehen.
Ein großer Teil der Ausführungszeit und der Energiekosten moderner datenintensiver Algorithmen entfällt auf den Datentransport zwischen Speichereinheiten und Rechenkernen. Neue Rechenparadigmen wie Near- und In-Memory-Computing verringern den Energiebedarf für den Datentransport, indem die Verarbeitungseinheiten neben oder sogar in den Speichereinheiten untergebracht werden. Dies ist ein wichtiger Schritt auf dem Weg zu einer nachhaltigen Computerlösung, wie sie von der Forschungsgruppe Mod4Comp angestrebt wird. Das Projekt innerhalb von Mod4Comp konzentriert sich auf einen neuartigen Ansatz für die Modellierung, Simulation und Hardware-Generierung von speichernahen Rechnerarchitekturen (NMAs). Es werden Algorithmen des maschinellen Lernens (ML) untersucht und umgesetzt, um Rechenkerne für NMAs und deren beste Position innerhalb der Speicherhierarchie des Prozessors (L1-, L2, L3-Cache, Hauptspeicher) zu identifizieren, so dass die Energieeffizienz und die Rechenleistung der Gesamtanwendungen optimiert wird. Für die Evaluierung wird eine Bibliothek von Proxy Apps für Anwendungen aus den Bereichen Computer-Vision (CV) und Embedded Artificial Intelligence (AI) erstellt. Leistungs- und Energiemodelle für NMAs werden entworfen und mit Hilfe von Simulationen sowie eines FPGA-Prototyps validiert. Die Ergebnisse von einem anderen Projekt, d.h. die CV- und Embedded AI Proxy Apps, die ML-gestützten Algorithmen zur Identifizierung und Lokalisierung von NMAs innerhalb der Speicherhierarchie des Prozessors, das Hardware-Generierungs-Framework für NMAs und die Leistungs- und Energiemodelle werden in enger Zusammenarbeit mit den anderen Projekten der Forschungsgruppe in den ganzheitlichen Mod4Comp-Modellierungsworkflow integriert.
