Da immer mehr Komponenten innerhalb von KI-Chips Daten gemeinsam nutzen, ist die Verwaltung dieser Daten nicht mehr ausschließlich eine Softwareaufgabe. Wenn eine Datenbeschleunigungseinheit Daten in den Speicher schreibt und anschließend eine CPU darauf zugreift oder wenn Komponenten gemeinsame Steuerungsinformationen austauschen, muss die Software wissen, welche Datenkopie die aktuellste ist. Der Artikel erläutert, dass die Verlagerung eines größeren Teils dieser Aufgabe in die Hardware mithilfe von Speicherkohärenz die Komplexität der Software, Koordinationsfehler und die Schwierigkeit bei der Systementwicklung verringern kann.
Der Artikel wurde als gesponserter Blogbeitrag in Semiconductor Engineering veröffentlicht und von Ashley Stevens, dem Leiter des Produktmanagements und Marketings bei Arteris sowie Verantwortlichen für kohärente Interconnects und Verbindungen zwischen Dies, verfasst. Daher bietet er eine nützliche technische Erklärung, enthält jedoch auch eine Darstellung der Fähigkeiten von Arteris-Produkten. Dies sollte bei der Bewertung der Argumentation berücksichtigt werden.
Von getrennten Kopien zum gemeinsam genutzten Speicher
In älteren Systemen konnten Prozessor und Beschleuniger relativ unabhängig voneinander betrieben werden. Der Prozessor kommunizierte über PCIe mit dem Beschleuniger, kopierte die Daten in den Speicher des Beschleunigers, sendete eine Nachricht und wartete auf die Ergebnisse. Dieses Modell war praktikabel, als die Einheiten stärker unabhängig arbeiteten. Mit zunehmender Menge gemeinsam genutzter Daten und der steigenden Zahl von Verarbeitungsschritten wird es jedoch komplexer.
Besonders deutlich zeigt sich das Problem in Edge-KI-Systemen, in denen ein System einen Allzweckprozessor und einen KI-Beschleuniger in einem einzigen SoC integrieren oder sie in einem Design auf Basis mehrerer Dies verbinden kann. In diesem Fall durchlaufen die Daten mehrere Stufen, bevor das Ergebnis die Anwendung erreicht, während Koordinations- und Steuerungsinformationen den zuständigen Komponenten in der richtigen Version zur Verfügung stehen müssen.
Speicherkohärenz ist eine Technik auf Chipebene, die eine einheitliche Sicht auf gemeinsam genutzte Daten aufrechterhält, unabhängig davon, ob sich diese im Hauptspeicher oder im Cache befinden. Statt dass die Software Änderungen verfolgt und sicherstellt, dass die Kopien aktualisiert werden, übernehmen das kohärente Interconnect-System und das Speichersystem einen Teil dieser Aufgabe.
Was ändert sich in der Praxis?
Das wesentliche Ergebnis besteht nicht darin, sämtliche Kopiervorgänge zu beseitigen oder alle Verbindungen identisch zu machen, sondern die Menge der erforderlichen Softwarelogik für die Koordination heterogener Einheiten zu reduzieren. Wenn die Hardware den Zustand gemeinsam genutzter Daten verwaltet, kann sich die Software stärker auf die Anwendungslogik und die Arbeitsplanung konzentrieren, anstatt zu verfolgen, ob jede Komponente eine veraltete oder aktualisierte Kopie liest.
Dieser Wandel kann die Software einfacher und leichter entwickelbar machen und möglicherweise Fehler reduzieren, die während des Betriebs schwer zu erkennen sind. Der Artikel stellt diesen Ansatz in Zusammenhang mit der Geschwindigkeit der Softwareentwicklung und ihrer Zuverlässigkeit, nennt jedoch keine Zahlen, mit denen sich die Verbesserung der Leistung oder der Entwicklungszeit messen lässt. Daher können quantitative Vorteile allein auf Grundlage des Textes nicht als bestätigt gelten.
Kohärenz dort, wo sie benötigt wird
Der Artikel vertritt nicht die Ansicht, dass die Anwendung von Kohärenz auf jede Datenbewegung das beste Design sei. Datenströme mit hoher Bandbreite benötigen nicht immer Speicherkohärenz, während Informationen, die den Systembetrieb zwischen Verarbeitungseinheiten koordinieren, diese Funktion benötigen. Daher verwenden die meisten KI-Chips gemäß der Darstellung eine Kombination aus kohärenten und nicht kohärenten Interconnects.
Kohärente Interconnects werden eingesetzt, wenn mehrere Verarbeitungseinheiten dieselben Daten oder denselben Zustand gemeinsam nutzen. Nicht kohärente Interconnects können dagegen Daten übertragen, die keine gemeinsame Sicht erfordern. Diese Aufteilung gibt Designern die Möglichkeit, die übrigen Verbindungen entsprechend den Anforderungen an Bandbreite, Latenz und Energieverbrauch zu optimieren, anstatt dem System auf jedem Pfad die Kosten der Kohärenz aufzuerlegen.
Die Bedeutung des Multi-Die-Designs
Die Idee erstreckt sich auf Multi-Die-Systeme, bei denen der größere Chip in mehrere Dies aufgeteilt wird, die Informationen austauschen. Der Artikel erklärt, dass die Aufrechterhaltung der Kohärenz zwischen diesen Dies dazu beitragen kann, heterogene Systeme zu skalieren, ohne die Verantwortung für die Koordination gemeinsam genutzter Daten vollständig wieder auf die Software zu verlagern.
Arteris nennt in diesem Zusammenhang drei Komponenten aus seinem Portfolio: FlexNoC für nicht kohärente Verbindungen, FlexGen zur Automatisierung des Designs leistungsfähiger NoC-Netzwerke in fortschrittlichen Chips und Multi-Die-Systemen sowie Ncore zur Bereitstellung eines kohärenten Interconnect-Gewebes. Diese Hinweise erläutern die Stellung der Technik innerhalb der Produkte des Unternehmens, stellen jedoch weder die Ankündigung einer neuen Markteinführung noch einen unabhängigen Vergleich der Lösungen auf dem Markt dar.
Warum ist diese Nachricht wichtig?
Der herausragende architektonische Wert der Argumentation besteht darin, dass zusätzliche Transistoren zur Vereinfachung der Software nicht zwangsläufig als Verschwendung gelten. Da sich KI-Systeme hin zu Designs entwickeln, die Allzweckprozessoren, Beschleuniger und Multi-Die-Chips kombinieren, wird die Verteilung der Verantwortlichkeiten zwischen Hardware und Software zu einer Entscheidung, die sich auf Skalierbarkeit und Entwicklungskomfort auswirkt.
Die praktische Frage bleibt jedoch, wie viel zusätzliche Hardware für Kohärenz gerechtfertigt ist und wo sie begrenzt werden sollte, um unnötige Kosten bei Fläche, Energieverbrauch, Design und Verifikation zu vermeiden. Der Artikel stellt das Prinzip vor, zwischen gemeinsam genutzten und nicht gemeinsam genutzten Daten zu unterscheiden, legt jedoch keine quantitativen Kriterien für diese Entscheidung fest und präsentiert weder Testergebnisse noch einen dokumentierten Anwendungsfall, der einen kohärenten Ansatz mit einem Ansatz vergleicht, der stärker auf softwarebasierter Verwaltung beruht.