Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Hardware-Architektur# Verteiltes, paralleles und Cluster-Computing

Optimierung von Deep Neural Networks mit CMDS

Eine neue Methode verbessert den Energieverbrauch und die Leistung bei der Ausführung von DNNs.

― 5 min Lesedauer


CMDS steigert dieCMDS steigert dieDNN-Performance.beschleunigt die Ausführung.Neue Methode senkt Energiekosten und
Inhaltsverzeichnis

Tiefe neuronale Netzwerke (DNNs) sind mega wichtig für viele smarte Anwendungen, besonders in der Bild- und Audioverarbeitung. Die können echt gut performen, aber diese hohe Leistung bringt auch komplexe Berechnungen und verschiedene Netzwerkstrukturen mit sich. Netzwerke wie ResNet und MobileNetv2 sind populär für Aufgaben wie das Klassifizieren von Bildern und Geräuschen. Jede Schicht in diesen Netzwerken kann ziemlich unterschiedlich in Form und Typ sein, was es schwer macht, einen einheitlichen Weg zu finden, um alle Schichten effizient auf Computerhardware laufen zu lassen.

Es wurden viele Forschungsschritte unternommen, um den besten Weg zu finden, jede Schicht eines DNN auszuführen. Einige Tools können den besten Weg finden, eine bestimmte Schicht auf spezifischer Hardware auszuführen. Aber diese Tools betrachten normalerweise jede Schicht separat. Sie berücksichtigen nicht, wie die Daten zwischen verschiedenen Schichten im Speicher angeordnet sind, was zu Ineffizienzen führt, wenn man von einer Schicht zur nächsten wechselt.

Dieser Artikel stellt einen neuen Ansatz vor, der Cross-layer Memory-aware Dataflow Scheduler (CMDS) heisst. Diese Methode zielt darauf ab, wie DNNs Hardware nutzen, zu verbessern, indem sie bedenkt, wie Daten im Speicher über verschiedene Schichten organisiert sind. Das Ziel ist es, die Ausführung von DNNs effizienter zu gestalten, indem der Energieverbrauch und die Ausführungszeit reduziert werden.

Probleme mit aktuellen Tools

Die bestehenden Tools, die die Ausführung von DNN-Schichten optimieren, behandeln jede Schicht als separates Problem. Das bedeutet, sie berücksichtigen nicht, wie der Output einer Schicht der Input einer anderen Schicht werden kann. Wenn Schichten unabhängig behandelt werden, kann es zu Diskrepanzen kommen, wie Daten im Speicher gespeichert sind. Diese Diskrepanzen können Ressourcen verschwenden und die Gesamtleistung des DNNs verlangsamen.

Zum Beispiel, wenn Schicht A Daten in einem bestimmten Format produziert und Schicht B diese Daten in einem anderen Format erwartet, muss die Hardware extra Zeit aufwenden, um die Daten ins richtige Format zu bringen. Das bremst nicht nur die Sache aus, sondern kann auch zu einem höheren Energieverbrauch führen, was in der modernen Computertechnik ein Anliegen ist.

CMDS: Ein neuer Ansatz

Der Cross-layer Memory-aware Dataflow Scheduler (CMDS) nimmt einen neuen Ansatz, um diese Probleme zu lösen. Anstatt jede Schicht isoliert zu betrachten, berücksichtigt CMDS, wie Daten von einer Schicht zur nächsten fliessen. Es bezieht die interne Organisation des Speichers mit ein, was eine bessere Koordination zwischen den Schichten ermöglicht.

Durch die Einführung von Konzepten wie Bankbreite (BD), Portbreite (PD) und Speicherbreite (MD) kann CMDS beschreiben, wie der Speicher strukturiert ist. Das hilft, die Ausführung von DNNs effektiver zu optimieren. Der CMDS funktioniert, indem er die Daten im Speicher nach Bedarf umschichtet, was ihm ermöglicht, sich an die Anforderungen unterschiedlicher Schichten anzupassen, während die Kosten und der Aufwand minimiert werden.

Speicherstruktur und ihre Bedeutung

In modernen DNN-Beschleunigern ist der Speicher oft in mehrere Bänke organisiert. Jeder Bank kann unabhängig arbeiten, was hilft, Daten gleichzeitig zuzugreifen und zu verarbeiten. Allerdings kann die Struktur dieses Speichers einen riesigen Einfluss auf die Leistung haben.

Indem CMDS die Organisation der Speicherbänke versteht und nutzt, kann es verwalten, wie Daten gelesen und geschrieben werden. Zum Beispiel kann es die besten Wege herausfinden, um die Datenformate für verschiedene Schichten in einem neuronalen Netzwerk auszurichten. Das stellt sicher, dass wenn die Daten einer Schicht bereit sind, in die nächste Schicht eingespeist zu werden, sie bereits im richtigen Format vorliegen, was Zeit und Energie spart.

Arbeitslasten planen

Der CMDS optimiert nicht nur, wie Daten organisiert sind, sondern managt auch die Planung der Arbeitslasten. Der Datenfluss für jede Schicht kann basierend auf der Anordnung der Daten im Speicher angepasst werden. Das bedeutet, CMDS kann den Schichten helfen, nahtlos zusammenzuarbeiten und die Wahrscheinlichkeit von Ineffizienzen zu reduzieren, die aus nicht passenden Datenlayouts entstehen.

Während des Planungsprozesses bestimmt CMDS zuerst den besten Weg, um die Daten jeder Schicht basierend auf der vorhandenen Speicherstruktur zu handhaben. Dann schaut es sich an, wie diese Entscheidungen die nachfolgenden Schichten beeinflussen, um sicherzustellen, dass das gesamte Netzwerk reibungslos funktioniert.

Leistungsbenefits

Mit CMDS haben Forscher signifikante Verbesserungen in Bezug auf Energieeffizienz und Ausführungszeit beim Ausführen von DNNs im Vergleich zu traditionellen Methoden festgestellt. Die Fähigkeit, die Speicherorganisation und Datenabhängigkeiten zwischen den Schichten zu berücksichtigen, hat es CMDS ermöglicht, eine bessere Leistung zu erreichen und dabei die Hardwarekosten niedrig zu halten.

Zum Beispiel kann der Energieverbrauch reduziert werden, weil das System unnötige Datenumwandlungen vermeiden kann. Wenn die Daten bereits im richtigen Format sind, muss die Hardware nicht so viel arbeiten, was zu weniger Energieverbrauch führt.

Experimentelle Ergebnisse

Um die Effizienz von CMDS zu bewerten, wurden verschiedene Experimente mit mehreren unterschiedlichen DNN-Modellen durchgeführt. Die Ergebnisse zeigten, dass Netzwerke, die mit CMDS optimiert wurden, weniger Energie verbrauchten und niedrigere Ausführungszeiten im Vergleich zu denen erreichten, die mit älteren Methoden optimiert wurden, die keine Datenlayouts berücksichtigten.

Insbesondere wurde der Energieaufwand beim Ausführen von DNNs mit nicht passenden Datenlayouts erheblich reduziert. Das bedeutet, dass die gesamten Energiekosten während der Operationen niedriger waren, was es zu einer nachhaltigeren Option für die Ausführung komplexer DNN-Anwendungen macht.

Fazit

Tiefe neuronale Netzwerke werden ein entscheidender Teil vieler Technologien, die wir heute nutzen. Aber diese Netzwerke effizient auf Hardware zum Laufen zu bringen, ist eine komplexe Herausforderung. Aktuelle Optimierungstools übersehen oft die Beziehung zwischen verschiedenen Schichten, was zu Ineffizienzen führt.

Der Cross-layer Memory-aware Dataflow Scheduler (CMDS) bietet eine vielversprechende Lösung für diese Probleme. Indem er die Art und Weise berücksichtigt, wie Daten zwischen den Schichten fliessen und wie der Speicher strukturiert ist, kann CMDS die Ausführung von DNNs optimieren, um eine bessere Leistung und einen reduzierten Energieverbrauch zu erzielen. Dieser neue Ansatz ist entscheidend für die Verbesserung der Nachhaltigkeit und Effizienz zukünftiger smarter Anwendungen.

Originalquelle

Titel: CMDS: Cross-layer Dataflow Optimization for DNN Accelerators Exploiting Multi-bank Memories

Zusammenfassung: Deep neural networks (DNN) use a wide range of network topologies to achieve high accuracy within diverse applications. This model diversity makes it impossible to identify a single "dataflow" (execution schedule) to perform optimally across all possible layers and network topologies. Several frameworks support the exploration of the best dataflow for a given DNN layer and hardware. However, switching the dataflow from one layer to the next layer within one DNN model can result in hardware inefficiencies stemming from memory data layout mismatch among the layers. Unfortunately, all existing frameworks treat each layer independently and typically model memories as black boxes (one large monolithic wide memory), which ignores the data layout and can not deal with the data layout dependencies of sequential layers. These frameworks are not capable of doing dataflow cross-layer optimization. This work, hence, aims at cross-layer dataflow optimization, taking the data dependency and data layout reshuffling overheads among layers into account. Additionally, we propose to exploit the multibank memories typically present in modern DNN accelerators towards efficiently reshuffling data to support more dataflow at low overhead. These innovations are supported through the Cross-layer Memory-aware Dataflow Scheduler (CMDS). CMDS can model DNN execution energy/latency while considering the different data layout requirements due to the varied optimal dataflow of layers. Compared with the state-of-the-art (SOTA), which performs layer-optimized memory-unaware scheduling, CMDS achieves up to 5.5X energy reduction and 1.35X latency reduction with negligible hardware cost.

Autoren: Man Shi, Steven Colleman, Charlotte VanDeMieroop, Antony Joseph, Maurice Meijer, Wim Dehaene, Marian Verhelst

Letzte Aktualisierung: 2024-06-14 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2406.14574

Quell-PDF: https://arxiv.org/pdf/2406.14574

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr von den Autoren

Ähnliche Artikel