-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Die vorliegende Anmeldung beansprucht die Priorität gemäß 35 U.S.C. § 119(a) der koreanischen Patentanmeldung Nr.
10-2019-0082000 , eingereicht am 8. Juli 2019 beim koreanischen Amt für geistiges Eigentum und in diese Anmeldung durch Verweis in ihrer Gesamtheit aufgenommen.
-
HINTERGRUND
-
Technisches Anwendungsgebiet
-
Verschiedene Ausführungsformen beziehen sich auf eine Datenspeichervorrichtung, ein Datenverarbeitungssystem und eine Beschleunigungsvorrichtung dafür.
-
Verwandter Stand der Technik
-
Ein Beschleuniger für künstliche Intelligenz (Kl) kann eine Anwendung sein, die in der Lage ist, die Leistung einer verwandten Operation zu maximieren und gleichzeitig die Belastung eines Hosts bei der Durchführung einer Operation und der Nutzung von Ressourcen zu reduzieren, indem Anwendungen wie Multi-Layer-Perception (MLP), Long Short Term Memory (LSTM) und ein Convolutional Neural Network (CNN), die in Software verarbeitet wurden, mit Hilfe von Hardware implementiert werden.
-
Der Kl-Beschleuniger kann einen hohen Stromverbrauch aufweisen. In diesem Fall kann die im Kl-Beschleuniger genutzte Leistung in Rechenleistung und Speicherleistung aufgeteilt werden. Im Allgemeinen kann die Speicherleistung mit zunehmender Speicherbandbreite zunehmen.
-
Bei Deep Learning können die wichtigsten Anwendungen je nach Netzwerkmodell bestimmt werden. So kann z.B. das CNN eine Anwendung sein, die relativ viele Rechner erfordert, und jede der MLP- und LSTM-Anwendungen kann eine Anwendung sein, die eine große Speicherbandbreite benötigt.
-
ZUSAMMENFASSUNG
-
Verschiedene Ausführungsformen sind auf eine Beschleunigungsvorrichtung zum flexiblen Anpassen von Speicher- und Rechenleistung in Abhängigkeit von einer Speicherbandbreite sowie ein Datenverarbeitungssystem, welches die Beschleunigungsvorrichtung einschließt, gerichtet.
-
In einer Ausführungsform enthält ein Datenverarbeitungssystem ein Host-Gerät, das konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells oder einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst wird; und eine Datenspeichervorrichtung, die den Beschleuniger umfasst, der konfiguriert ist, um eine Struktur von einem Processing Element (PE) - Array zu ändern durch Steuerung der Übertragungswege von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
-
In einer Ausführungsform enthält eine Beschleunigungsvorrichtung einen Beschleuniger, der konfiguriert ist, um eine Struktur einer Processing Element (PE) - Array zu ändern durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage eines Geschwindigkeitsmodus einer Speicherbandbreite.
-
Der Beschleuniger kann ein PE-Array mit einer ersten PE-Gruppe und einer zweiten PE-Gruppe umfassen, wobei jede der ersten und zweiten PE-Gruppen eine Mehrzahl von in ersten und zweiten Richtungen angeordneten PEs einschließt; einen adaptiven PE-Array-Block, der zwischen der ersten PE-Gruppe und der zweiten PE-Gruppe in dem PE-Array angeordnet ist und so konfiguriert ist, um selektiv erste Eingangsdaten einer ersten Datengruppe oder erste Eingangsdaten einer zweiten Datengruppe in die zweite PE-Gruppe in der ersten Richtung innerhalb des PE-Arrays einzugeben, und um selektiv zweite Eingangsdaten einer dritten Datengruppe oder zweite Eingangsdaten einer vierten Datengruppe in die zweite PE-Gruppe in der zweiten Richtung innerhalb des PE-Arrays einzugeben.
-
In einer Ausführungsform schließt eine Datenspeichervorrichtung eine Zentraleinheit (CPU) ein, die so konfiguriert ist, um einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage eines Netzwerkmodells, einer Stapelgröße oder beidem auszuwählen, wobei die Rechenleistung und die Speicherleistung eines Beschleunigers entsprechend der Auswahl des Geschwindigkeitsmodus angepasst werden; und einen Beschleuniger, der so konfiguriert ist, um eine Struktur eines Processing Element (PE) - Arrays zu ändern durch Steuerung von Übertragungswegen von ersten Eingangsdaten und zweiten Eingangsdaten, die in das PE-Array eingegeben werden, auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite, wobei die Speicherleistung in einem Gesamtleistungsbudget von einem Anfangswert der Speicherleistung erhöht wird, wenn ein erster Geschwindigkeitsmodus ausgewählt wird, und die Rechenleistung in dem Gesamtleistungsbudget von einem Anfangswert der Rechenleistung erhöht wird, wenn ein zweiter Geschwindigkeitsmodus ausgewählt wird.
-
Figurenliste
-
- 1 illustriert eine Verbindungsbeziehung zwischen einem Datenverarbeitungssystem und einem externen Server gemäß einer Ausführungsform.
- 2 illustriert ein Datenverarbeitungssystem gemäß einer Ausführungsform.
- 3 illustriert ein Verfahren zum Bestimmen eines Geschwindigkeitsmodus in einem Host-Gerät gemäß einer Ausführungsform.
- 4 illustriert ein Gesamtleistungsbudget gemäß einer Ausführungsform.
- 5 A und 5 B illustriert das Einstellen von Speicherleistung und Rechenleistung gemäß einer Ausführungsform.
- 6 illustriert eine Datenspeichervorrichtung gemäß einer Ausführungsform.
- 7 illustriert einen Beschleuniger gemäß einer Ausführungsform.
- 8 illustriert ein PE-Array gemäß einer Ausführungsform.
- 9 illustriert ein PE- Array gemäß einer anderen Ausführungsform.
- 10 illustriert eine PE-Array-Struktur gemäß einer Ausführungsform.
- 11 illustriert eine Verbindungsbeziehung zwischen einem Speicher-Controller und einem Speicher-Die gemäß einer Ausführungsform.
- 12 illustriert eine Leistungsveränderung in Abhängigkeit von einem Geschwindigkeitsmodus.
- 13 illustriert eine Beschleunigungsvorrichtung gemäß einer Ausführungsform.
- 14 illustriert einen Datenspeicher gemäß einer anderen Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
Nachfolgend werden eine Datenspeichervorrichtung, ein Datenverarbeitungssystem und eine Beschleunigungsvorrichtung dafür unter Bezugnahme auf die beiliegenden Figuren anhand verschiedener Beispiele von Ausführungsformen beschrieben.
-
1 veranschaulicht eine Verbindungsbeziehung zwischen einem Datenverarbeitungssystem 20 und einem externen Server 10 gemäß einer Ausführungsform. 2 veranschaulicht das in 1 dargestellte Datenverarbeitungssystem 20 gemäß einer Ausführungsform.
-
Nachfolgend werden Ausführungsformen unter Bezugnahme auf 3 beschrieben, die ein Verfahren zum Bestimmen oder Auswählen eines Geschwindigkeitsmodus in einem Host-Gerät gemäß einer Ausführungsform veranschaulicht, 4, die ein Gesamtleistungsbudget gemäß einer Ausführungsform veranschaulicht, und die 5A und 5B, die das Einstellen der Speicherleistung und Rechenleistung gemäß einer Ausführungsform veranschaulichen,.
-
Bezug nehmend auf 1 kann das Datenverarbeitungssystem 20 über ein Netzwerk 30 elektrisch mit dem externen Server 10 gekoppelt werden und kann Daten von dem externen Server 10 empfangen. In diesem Fall können die Daten eine Stapelgröße einschließen, was später beschrieben wird. Eine Deep Learning Anwendung kann Daten in einer Einheit eines Batchs (oder einer Stapel-Einheit) verarbeiten.
-
Die Größe eines Batchs (oder einer Stapelgröße) kann der Anzahl der Daten entsprechen, die das Datenverarbeitungssystem 20 gleichzeitig verarbeiten kann. Wenn es sich bei den ersten Eingangsdaten beispielsweise um Fotobilddaten handelt, kann die Anzahl der in den ersten Eingangsdaten enthaltenen Fotobilder als Stapelgröße bezeichnet werden. 10 Chargen bedeuten, dass 10 Fotobilder als die ersten Eingangsdaten verwendet werden. 10 erste Eingangsdaten führen eine Multiplikations- und Akkumulationsoperation (MAC) zusammen mit der gleichen Anzahl von zweiten Eingangsdaten durch, z. B. 10 zweite Eingangsdaten.
-
Das Datenverarbeitungssystem 20 kann ein Host-Gerät 100 und eine Datenspeichervorrichtung 200 einschließen.
-
Bezug nehmend auf 2 kann das Host-Gerät 100 eine Anwendung 110, Software-Firmware (SW F/W) 120 und eine Programmierschnittstelle (API) 130 einschließen. Die Datenspeichervorrichtung 200 kann ein PNM (Processing-Near-Memory) sein. Das PNM kann mindestens ein Speicher-Die 210 und ein Logik-Die 300 enthalten, die in einem erweiterten integrierten Schaltkreis (IC) untergebracht sind.
-
Die SW F/W 120 des Host-Gerätes 100 kann einen Geschwindigkeitsmodus einer Speicherbandbreite auf der Grundlage mindestens eines Netzwerkmodells und einer Stapelgröße bestimmen oder auswählen, so dass die Rechenleistung und die Speicherleistung eines in der Datenspeichervorrichtung 200 enthaltenen Beschleunigers 400 angepasst werden.
-
Unter Bezugnahme auf 3 kann das Host-Gerät 100 einen Datenaufbereitungsvorgang auf der Grundlage von Informationen über das Netzwerkmodell, einschließlich Informationen über die Hardware-Architektur, wie z. B. Netzwerkinformationen 510 und PNM-Architekturinformationen 520 (530), durchführen. In diesem Fall führt das Host-Gerät 100 einen Datenaufbereitungsvorgang für ein PNM aus, um Power Sharing durchzuführen. Genauer gesagt, führt das Host-Gerät 100 zusätzlich zur bestehenden Datenaufbereitung für nur einen Beschleuniger eine Datenaufbereitung zum Anpassen der Speicher- und Rechenleistung in einem später zu beschreibenden Gesamtleistungsbudget durch.
-
Das PNM kann eine relativ höhere Geschwindigkeit haben als eine Datenpin-Struktur eines Speichers mit hoher Bandbreite (HBM), weil eine Datensignalleitung des Speicher-Die 210 elektrisch mit dem Logik-Die 300 im PNM gekoppelt ist. Das liegt daran, dass eine Geschwindigkeitsbeschränkung für eine chipexterne Verbindung im PNM durch die Integration des Speicher-Dies 210 und des Logik-Dies 300 in das Gehäuse des erweiterten IC aufgehoben wurde.
-
Das Netzwerk 30 von 1 kann ein neuronales Netzwerk sein, ist aber nicht darauf beschränkt. Das neuronale Netzwerk kann ein Convolutional Neural Network (CNN), ein Multi-Layer-Perception (MLP), ein Long Short Term Memory (LSTM) oder ähnliches umfassen. Netzwerkinformationen können im Voraus vom Host-Gerät 100 erkannt werden.
-
Die PNM-Architekturinformation 520 kann Informationen über die Beschleunigerarchitektur, die Leistung pro Rechner, die Leistung pro Speicherbandbreite (BW), Informationen über eine maximale Struktur von Rechnern und Informationen über eine maximale Struktur der Speicher-BW enthalten.
-
In diesem Fall kann die maximale Struktur von Rechnern die maximale Anzahl von Rechnern darstellen. Die maximale Struktur der Speicher-BW kann eine maximale Größe der Speicher-BW darstellen. Die maximale Struktur von Rechnern und die maximale Struktur der Speicher-BW sind vorgegeben. In Ausführungsformen der vorliegenden Offenlegung kann die Anzahl von Rechnern und die Größe der Speicher-BW innerhalb der vorgegebenen Maximalstrukturen geändert werden.
-
Wenn es beispielsweise N Rechner gibt, darf die Anzahl der zugeordneten Rechner N nicht überschreiten, und wenn die maximale Größe der Speicher-BW M ist, darf die Größe einer zugeordneten Speicher-BW M nicht überschreiten, wobei N und M positive ganze Zahlen sind. Folglich werden die maximalen Strukturen der Rechner und der Speicher-BW im Voraus bereitgestellt, um einen Geschwindigkeitsmodus der Speicher-BW auf der Grundlage der maximalen Struktur der Rechner und der maximalen Struktur der Speicher-BW zu bestimmen oder auszuwählen.
-
Das Host-Gerät 100 kann Daten ausgeben, die in einer für das PNM optimierten Form kompiliert sind, einschließlich des Geschwindigkeitsmodus der Speicher-BW (540). In diesem Fall kann der Geschwindigkeitsmodus der Speicher-BW einen Niedriggeschwindigkeitsmodus und einen Hochgeschwindigkeitsmodus umfassen.
-
Unter Bezugnahme auf 4 kann das Gesamtleistungsbudget Speicher- und Rechenleistung einschließen. In diesem Fall können sowohl die Speicher- als auch die Rechenleistung jeweils einen einstellbaren dynamischen Leistungsteil und einen statischen Leistungsteil einschließen. 4 veranschaulicht einen Fall, in dem die Speicher- und Rechenleistung maximal genutzt wird.
-
Der Geschwindigkeitsmodus der Speicher-BW kann den Hochgeschwindigkeitsmodus und den Niedriggeschwindigkeitsmodus umfassen. Im Hochgeschwindigkeitsmodus, der in 5A dargestellt ist, wird die Speicherleistung von einem Referenzwert einer Anfangseinstellung aus erhöht. In dem in 5B dargestellten Niedriggeschwindigkeitsmodus wird die Rechenleistung von einem Referenzwert der Anfangseinstellung aus erhöht.
-
Erneut auf 3 Bezug nehmend, wenn ein Netzwerkmodell das CNN ist, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als den Niedriggeschwindigkeitsmodus (550) bestimmen. Wenn das Netzwerkmodell das CNN ist, werden die Daten relativ häufig in dem Logik-Die 300 wiederverwendet, und somit bestimmt das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als den Niedriggeschwindigkeitsmodus, da die Gesamtleistung des Datenverarbeitungssystems 20 durch die Leistungsfähigkeit der Rechenleistung bestimmt wird, obwohl der Speicher BW niedrig ist.
-
Wenn es sich bei dem Netzwerkmodell hingegen um MLP oder LSTM handelt, kann das Host-Gerät 100 die Stapelgröße untersuchen und die Stapelgröße mit einem Referenzwert K (560) vergleichen. Wenn die Stapelgröße den Referenzwert K überschreitet (d.h. die Stapelgröße > K), kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Niedriggeschwindigkeitsmodus bestimmen (550). Wenn die Stapelgröße gleich oder kleiner als der Referenzwert K ist, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Hochgeschwindigkeitsmodus (570) bestimmen.
-
Obwohl es sich bei dem Netzwerkmodell um das MLP Netzwerk oder das LSTM Netzwerk handelt, kann sich der Bedarf an größerer Rechenleistung erhöhen, wenn die Stapelgröße zunimmt. Dementsprechend vergleicht das Host-Gerät 100 die Stapelgröße mit dem Referenzwert K, obwohl das Netzwerkmodell das MLP Netzwerk oder das LSTM Netzwerk ist.
-
In diesem Fall kann die Stapelgröße vom externen Server 10 empfangen und in die PNM-Architekturinformationen aufgenommen werden. In einem Netzwerkmodell wie dem MLP, LSTM oder einem Recurrent Neural Network (RNN), in dem keine Daten im Logik-Die 300 wiederverwendet werden, kann das Host-Gerät 100 den Geschwindigkeitsmodus der Speicher-BW als Hochgeschwindigkeitsmodus bestimmen, da der Speicher-BW ein Hauptfaktor zum Bestimmen der Gesamtleistung des Datenverarbeitungssystems 20 sein kann.
-
Erneut Bezug nehmend auf 2, kann das Logik-Die 300 einen Speichercontroller (MC) 310 und den Beschleuniger 400 enthalten.
-
Unter Bezugnahme auf 11, die eine Verbindungsbeziehung zwischen dem MC 310 und dem Speicher-Die 210 gemäß einer Ausführungsform veranschaulicht, kann der MC 310 den Geschwindigkeitsmodus der Speicher-BW an das Speicher-Die 210 übertragen.
-
Das Speicher-Die 210 kann den Takt eines Speichers basierend auf dem Geschwindigkeitsmodus der vom MC 310 übertragenen Speicher-BW ändern. In diesem Fall kann die Anzahl der Speicher-Dies 210, die in der Datenspeichervorrichtung 200 enthalten sind, mindestens eins betragen.
-
In einer anderen Ausführungsform kann der MC 310 den Takt des Speichers auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW ändern.
-
6 illustriert einen Datenspeicher gemäß einer Ausführungsform.
-
Die in 6 gezeigte Datenspeichervorrichtung wird im Folgenden unter Bezugnahme auf die 7 bis 12 beschrieben. 7 illustriert einen Beschleuniger gemäß einer Ausführungsform. Die 8 und 9 zeigen jeweils ein PE-Array gemäß einer Ausführungsform. 10 zeigt die Struktur eines PE-Arrays gemäß einer Ausführungsform. 11 veranschaulicht eine Verbindungsbeziehung zwischen einem MC und einem Speicher-Die gemäß einer Ausführungsform. 12 veranschaulicht eine Leistungsänderung gemäß einem Geschwindigkeitsmodus.
-
Die in 6 dargestellte Datenspeichervorrichtung kann der in 2 dargestellten Datenspeichervorrichtung 200 entsprechen.
-
Unter Bezugnahme auf 6 kann die Datenspeichervorrichtung 200 einen Beschleuniger 400 enthalten, der so konfiguriert ist, um die Struktur eines PE (Verarbeitungselement) - Arrays 430 durch die Steuerung eines Übertragungspfads für erste Eingangsdaten und zweite Eingangsdaten des PE-Arrays 430 in Abhängigkeit von einem Geschwindigkeitsmodus einer Speicher-BW zu ändern.
-
Der Beschleuniger 400 kann die ersten Eingangsdaten und die zweiten Eingangsdaten empfangen, die ersten Eingangsdaten und die zweiten Eingangsdaten multiplizieren und die multiplizierten Daten zu den zuvor gespeicherten Daten addieren. In diesem Fall können die zweiten Eingangsdaten Gewichtsdaten sein.
-
Unter Bezugnahme auf 6 können die ersten Eingangsdaten in einer Zeilenrichtung und die zweiten Eingangsdaten in einer Spaltenrichtung übertragen werden. Die durch Addition der multiplizierten Daten zu den zuvor gespeicherten Daten erhaltenen Daten umfassen alle die zweiten und die ersten Eingangsdaten, die für einen Knoten erforderlich sind, und werden über einen IO-Puffer 450 übertragen. Nach der Durchführung der MAC an den resultierenden Daten führt eine Aktivierungsfunktionseinheit (AFU) 480 eine Aktivierungsfunktion an den durch den IO-Puffer 450 übertragenen Daten aus, um dadurch Ausgangsdaten zu liefern.
-
Unter Bezugnahme auf die 6 und 7 kann der Beschleuniger 400 einen PE-Controller (PE CTRL) 420, das PE-Array 430, einen adaptiven PE-Array-Block 440, den IO-Puffer 450, einen Gewichtspuffer 460, einen adaptiven Datenpfad-Controller 470, die Aktivierungsfunktionseinheit (AFU) 480, eine Spezialfunktionseinheit (SFU) 490 und einen Leistungsregler auf Zeilenebene 495 enthalten.
-
Der Beschleuniger 400 kann mit dem Host-Gerät 100 über einen Host-Interface (IF)-Block 410 kommunizieren. In diesem Fall kann der Host-IF-Block 410 eine Schnittstelle zwischen dem Host-Gerät 100 und der Datenspeichervorrichtung 200 unter Verwendung eines Protokolls des Host-Gerätes 100 bereitstellen. Beispielsweise kann der Host-IF-Block 410 mit dem Host-Gerät 100 über ein Serdes-Schnittstellenprotokoll kommunizieren, aber das Protokoll ist nicht darauf beschränkt. Der Host-IF-Block 410 kann mit dem Host-Gerät 100 unter Verwendung eines beliebigen Protokolls wie PCI-Express (PCI-E), eines universellen seriellen Busses (USB), eines universellen Flash-Speichers (UFS), einer Multimediakarte (MMC), eines Parallel Advanced Technology Attachment (PATA), eines seriellen Serial Advanced Technology Attachment (SATA), einer Small Computer System Interface (SCSI), eines seriell verbundenen SCSI (SAS), einer Peripheral Component Interconnection (PCI) und ähnlichem kommunizieren.
-
Der PE-Controller 420 kann einen Geschwindigkeitsmodus einer Speicher-BW, der vom Host-Gerät 100 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen. Wie in 6 dargestellt, kann der PE-Controller 420 den vom Host-Gerät 100 übertragenen Geschwindigkeitsmodus der Speicher-BW über den Host-IF-Block 410 empfangen, der Daten an das Host-Gerät 100 sendet und von diesem empfängt.
-
Unter Bezugnahme auf 7 kann das PE-Array 430 eine Mehrzahl von ersten PE-Gruppen einschließen, wobei jede erste PE-Gruppe eine Mehrzahl von in Reihenrichtung angeordneten PEs enthält. Der adaptive PE-Array-Block 440 kann eine Mehrzahl erster Multiplexer enthalten, die zwischen den PEs im PE-Array 430 angeordnet sind, und jeder erste Multiplexer kann selektiv beliebige von ersten Eingangsdaten einer entsprechenden Datengruppe und ersten Eingangsdaten einer anderen Datengruppe in PEs in der Zeilenrichtung innerhalb des PE-Arrays 430 eingeben.
-
Darüber hinaus kann das PE-Array 430 eine Mehrzahl von zweiten PE-Gruppen einschließen, wobei jede zweite PE-Gruppe eine Mehrzahl von in der Spaltenrichtung angeordneten PEs enthält. Der adaptive PE-Array-Block 440 kann eine Mehrzahl zweiter Multiplexer enthalten, die mit PEs im PE-Array 430 gekoppelt sind, und jeder zweite Multiplexer kann selektiv beliebige von zweiten Eingangsdaten einer entsprechenden Datengruppe und zweiten Eingangsdaten einer anderen Datengruppe in PEs in Spaltenrichtung innerhalb des PE-Arrays 430 eingeben.
-
In 6 kann das PE-Array 430 eine N X M Struktur aufweisen, d.h. das PE-Array 430 kann N X M PEs enthalten. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein. Das heißt, N kann eine Größe von Zeilen darstellen, in die die ersten Eingangsdaten eingegeben werden, und M kann eine Größe von Spalten darstellen, in die die zweiten Eingangsdaten eingegeben werden. Daher kann das PE-Array 430 in dieser Ausführungsform N erste PE-Gruppen und M zweite PE-Gruppen enthalten. Jede erste PE-Gruppe kann M PEs enthalten, die in Zeilenrichtung angeordnet sind, und jede zweite PE-Gruppe kann N PEs enthalten, die in Spaltenrichtung angeordnet sind.
-
Unter Bezugnahme auf die 7 und 10 kann der adaptive PE-Array-Block 440 in einer Speicher-BW-Einheit (z.B. einer 1x-Einheit) zwischen PEs im PE-Array 430 positioniert werden, wobei der erste Array-Einstellblock vor dem zweiten Speicher-BW positioniert wird.
-
Wenn beispielsweise ein Speicher-BW ein 2x-BW ist, kann der adaptive PE-Array-Block 440 am vorderen Ende eines PE positioniert werden, das dem 2x-BW entspricht. In diesem Fall kann der adaptive PE-Array-Block 440, wie in 10 dargestellt, eine Zeilengruppe A und eine Spaltengruppe B enthalten.
-
Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 eine Mehrzahl erster Multiplexer 441 in der Zeilengruppe A zur Eingabe erster Eingangsdaten in PEs und eine Mehrzahl zweiter Multiplexer 443 in der Spaltengruppe B zur Eingabe zweiter Eingangsdaten in die PEs einschließen.
-
Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
-
10 zeigt das PE-Array 430, das den adaptiven PE-Array-Block 440 enthält, wenn N gleich 6 und M gleich 64 ist. Bezug nehmend auf 10 ist zu sehen, dass der Multiplexer 441-1 aus der Mehrzahl der ersten Multiplexer 441 beliebige der ersten Eingangsdaten InQ_1 und InQ_7 in ein 1x33 PE unter der Steuerung des adaptiven Datenpfad-Controllers 470 in 7 eingeben kann.
-
Der Multiplexer 443-1 aus der Mehrzahl der zweiten Multiplexer 443 kann unter der Steuerung des adaptiven Datenpfad-Controllers 470 beliebige der zweiten Eingangsdaten WB_6_1 und WB_6_33 in das 1x33 PE eingeben.
-
Der IO-Puffer 450 kann innerhalb des PE-Arrays 430 in Zeilenrichtung erste Eingangsdaten an PEs übertragen.
-
Der Gewichtspuffer 460 kann zweite Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
-
Obwohl nicht in Figuren dargestellt, können der IO-Puffer 450 und der Gewichtspuffer 460 in einem Element implementiert oder durch einen Bus elektrisch miteinander gekoppelt werden.
-
Der adaptive Datenpfad-Controller 470 kann den adaptiven PE-Array-Block 440 auf der Grundlage eines Geschwindigkeitsmodus eines Speicher-BW steuern.
-
8 zeigt das PE-Array 430, das eine N x M-Struktur als eine Anfangsstruktur aufweist, und 9 zeigt das PE-Array 430, das eine 2N x M/2-Struktur als Anfangsstruktur aufweist.
-
Wenn also das PE-Array 430 die Anfangsstruktur der N x M-Struktur aufweist, wie in 8 dargestellt, eine Speicher-BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der N x M-Struktur auf die 2N x M/2-Struktur geändert wird. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein.
-
Insbesondere kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von einer zweiten N Datengruppe von zwei oder mehr N Datengruppen zu empfangen, wenn die PEs in einer linken N x M/2-Struktur von 8 die ersten Eingangsdaten von einer ersten N Datengruppe der 2N Datengruppen empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer M/2-Datengruppe zu empfangen, wenn die PEs in der linken N x M/2-Struktur von 8 die zweiten Eingangsdaten von der M/2-Datengruppe empfangen. Dabei kann jede der ersten und zweiten Datengruppen N erste Eingangsdaten enthalten, und die M/2-Datengruppe kann M/2 zweite Eingangsdaten enthalten.
-
Wenn beispielsweise, wie in 8 dargestellt, das PE-Array 430 die Anfangsstruktur der N x M-Struktur aufweist und die Speicher-BW 2x ist, kann die Anfangsstruktur des PE-Arrays 430 eine Speicherstruktur von 6 x 64 aufweisen, wie in 10 dargestellt. In diesem Fall kann der adaptive PE-Array-Block 440 zwischen einer ersten 1x-Stufe und einer zweiten 1x-Stufe (oder einer 2x-Stufe) positioniert werden. Die erste 1 x-Stufe entspricht der linken N x M/2-Struktur und die zweite 1x-Stufe entspricht einer rechten N x M/2-Struktur.
-
Wenn der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Struktur des PE-Arrays 430 von 6 x 64 (siehe 8) auf 12 x 32 (siehe 9) ändern.
-
Unter Bezugnahme auf 10 kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 so steuern, dass die in Spaltenrichtung angeordneten 1 x 33 PE bis 6 x 33 PE jeweils erste Eingangsdaten InQ_7 bis InQ_12 erhalten.
-
Darüber hinaus kann der adaptive Datenpfad-Controller 470 die Mehrzahl der zweiten Multiplexer 443 so steuern, dass die in Reihenrichtung angeordneten 1 x 33 PE bis 1 x 64 PE jeweils zweite Eingangsdaten WB_6_1 bis WB_6_31 erhalten.
-
Das heißt, die in Spaltenrichtung angeordneten 1 x 33 PE bis 6 x 33 PE erhalten jeweils die ersten Eingangsdaten InQ_7 bis InQ_12, nicht die ersten Eingangsdaten InQ_1 bis InQ_6. Die 1 x 33 PE bis 1 x 64 PE, die in Zeilenrichtung angeordnet sind, erhalten jeweils die zweiten Eingangsdaten WB_6_1 bis WB_6_32, nicht die zweiten Eingangsdaten WB_6_33 bis WB_6_64. Dementsprechend können die PEs im PE-Array 430 eine PE-Array-Struktur von 12 x 32 realisieren, indem die Eingangspfade der ersten und zweiten Eingangsdaten angepasst werden.
-
Im Gegensatz dazu kann, wie in 9 dargestellt, der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der 2N x M/2-Struktur auf die N x M-Struktur geändert wird, wenn die Anfangsstruktur des PE-Arrays 430 die 2N x M/2-Struktur ist, die Speicher BW 2x ist und ein Geschwindigkeitsmodus der Speicher-BW ein Hochgeschwindigkeitsmodus ist.
-
In 9 kann der adaptive PE-Array-Block 440 zwischen einer ersten 1x-Stufe und einer zweiten 1x-Stufe (oder einer 2x-Stufe) positioniert werden. Die erste 1x-Stufe entspricht einer unteren N x M/2-Struktur und die zweite 1x-Stufe entspricht einer oberen N x M/2-Struktur.
-
Der adaptive Datenpfad-Controller 470 kann die Mehrzahl der ersten Multiplexer 441 so steuern, dass sie die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen empfangen, wenn PEs in der unteren N x M/2-Struktur von 9 die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 so steuern, dass sie die zweiten Eingangsdaten von einer nächsten M/2-Datengruppe empfangen, die einer ersten M/2-Datengruppe von zweiten Eingangsdaten folgt, wenn die PEs in der unteren N x M/2-Struktur von 9 die zweiten Eingangsdaten von der ersten M/2-Datengruppe empfangen.
-
Beispielsweise Bezug nehmend auf 10, wenn die obere N x M/2-Struktur von 9 die 1 x 33 PE bis 6 x 33 PE, ..., und die 1 x 64 PE bis 6 x 64 PE einschließt, können die ersten Eingangsdaten InQ_1 bis InQ_6 in die 1 x 33 PE bis 6 x 33 PE, die in Spaltenrichtung angeordnet sind, und die zweiten Eingangsdaten WB_6_33 bis WB_6_64 in die 1 x 33 PE bis 1 x 64 PE, die in Zeilenrichtung angeordnet sind, eingegeben werden.
-
Unter Bezugnahme auf 7 kann die Aktivierungsfunktionseinheit (AFU) 480 in jeder Zeile des PE-Arrays 430 vorgesehen werden und eine Aktivierungsfunktion an den vom PE-Array verarbeiteten Daten ausführen.
-
In diesem Fall kann die Aktivierungsfunktion verschiedene Algorithmen wie ReLU, tanh, sigmoid und ähnliche verwenden. Außerdem kann die Aktivierungsfunktion in Form einer Zuordnungstabelle oder in Form eines Micro-Core konfiguriert werden.
-
Die Spezialfunktionseinheits (SFUs) 490 können mit den jeweiligen Aktivierungsfunktionseinheiten 480 abgestimmt werden und neben der Aktivierungsfunktion zusätzliche Operationen durchführen. Die Sonderfunktionseinheit 490 kann beispielsweise eine Verarbeitungsoperation durchführen, wie z.B. die elementweise Multiplikation der LSTM.
-
Der Leistungsregler auf Zeilenebene 495 kann die Steuerverarbeitung der Taktsteuerung am PE-Array 430 in einer Zeileneinheit durchführen.
-
Wie oben beschrieben, kann der Leistungsregler auf Zeilenebene 495 die Steuerverarbeitung der Taktsteuerung in einer Zeileneinheit durchführen, da die Aktivierungsfunktionseinheit 480 und die Sonderfunktionseinheit 490 für jede Zeile vorgesehen sind. Folglich ist es möglich, den Stromverbrauch bei der Durchführung einer Rechenoperation zu reduzieren.
-
12 veranschaulicht eine Leistungsveränderung in Abhängigkeit von einem Geschwindigkeitsmodus. Bezug nehmend auf 12 ist ersichtlich, dass bei gleichem Leistungsbudget die Leistung der MLP- und LSTM-Anwendungen von P1 auf P2 verbessert wird, indem ein Geschwindigkeitsmodus einer Speicher-BW in einen Niedriggeschwindigkeitsmodus oder einen Hochgeschwindigkeitsmodus geändert wird. 12 zeigt die MLP und das LSTM, auf die ein Hochgeschwindigkeitsmodus angewendet wurde, da eine Stapelgröße der Referenzwert K oder kleiner ist. Der Referenzwert K wurde vorstehend mit Bezug auf 3 beschrieben.
-
13 zeigt eine Beschleunigungsvorrichtung 600 gemäß einer Ausführungsform.
-
Unter Bezugnahme auf 13 kann die Beschleunigungsvorrichtung 600 einen Beschleuniger 400 zum Ändern einer Struktur eines PE (Verarbeitungselement) - Arrays 430 enthalten, indem die Übertragungswege der ersten Eingangsdaten und der zweiten Eingangsdaten des PE-Arrays 430 gesteuert werden.
-
Der Beschleuniger 400 kann eine Operation durchführen, bei der die ersten Eingangsdaten und die zweiten Eingangsdaten empfangen, die ersten Eingangsdaten und die zweiten Eingangsdaten multipliziert und die multiplizierten Daten zu den zuvor gespeicherten Daten addiert werden. In diesem Fall können die zweiten Eingangsdaten Gewichtsdaten sein.
-
Rückblickend auf 6, können die ersten Eingangsdaten in Zeilenrichtung und die zweiten Eingangsdaten in Spaltenrichtung übertragen werden. Die durch Addition der multiplizierten Daten zu den zuvor gespeicherten Daten erhaltenen Daten umfassen alle zweiten Eingangsdaten und die ersten Eingangsdaten, die für einen Knoten erforderlich sind, und werden über einen IO-Puffer 450 übertragen. Nach der Durchführung der MAC an den resultierenden Daten führt eine Aktivierungsfunktionseinheit (AFU) 480 eine Aktivierungsfunktion an den durch den IO-Puffer 450 übertragenen Daten aus, um dadurch Ausgangsdaten bereitzustellen.
-
Genauer gesagt kann der Beschleuniger 400 einen PE-Controller 420, das PE-Array 430, einen adaptiven PE-Array-Block 440, den IO-Puffer 450, einen Gewichtspuffer 460, einen adaptiven Datenpfad-Controller 470, die AFU 480, eine Spezialfunktionseinheit (SFU) 490 und einen Leistungsregler auf Zeilenebene 495 umfassen.
-
Der Beschleuniger 400 kann mit dem in den 1 und 2 dargestellten Host-Gerät 100 über einen Host-IF-Block 410 kommunizieren. In diesem Fall kann der Host-IF-Block 410 eine Schnittstelle zwischen dem Host-Gerät 100 und der in den 1 und 2 dargestellten Datenspeichervorrichtung 200 bilden, in dem der Beschleuniger 400 eingeschlossen ist durch die Nutzung eines Protokolls des Host-Gerätes 100. Zum Beispiel kann der Host-IF-Block 410 mit dem Host-Gerät 100 über ein Serdes-Schnittstellenprotokoll kommunizieren, aber das Protokoll ist nicht darauf beschränkt.
-
Der PE-Controller 420 kann einen Geschwindigkeitsmodus einer Speicher-BW, die vom Host-Gerät 100 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen.
-
Der adaptive PE-Array-Block 440 kann eine Mehrzahl erster Multiplexer enthalten, die zwischen den PE-Arrays 430 angeordnet sind, und jeder erste Multiplexer kann selektiv beliebige der ersten Eingangsdaten einer entsprechenden Datengruppe und der ersten Eingangsdaten einer anderen Datengruppe in PEs in Zeilenrichtung innerhalb des PE-Arrays 430 eingeben. In einer Ausführungsform enthält das PE-Array 430 eine Mehrzahl von ersten PE-Gruppen, wobei jede erste PE-Gruppe eine Mehrzahl von in Zeilenrichtung angeordneten PEs enthält.
-
Darüber hinaus kann der adaptive PE-Array-Block 440 eine Mehrzahl zweiter Multiplexer enthalten, die zwischen den PE-Arrays 430 angeordnet sind, und jeder zweite Multiplexer kann selektiv beliebige der zweiten Eingangsdaten einer entsprechenden Datengruppe und der zweiten Eingangsdaten einer anderen Datengruppe in PEs in Spaltenrichtung innerhalb des PE-Arrays 430 eingeben. In einer Ausführungsform enthält das PE-Array 430 eine Mehrzahl von zweiten PE-Gruppen, wobei jede zweite PE-Gruppe eine Mehrzahl von in Spaltenrichtung angeordneten PEs enthält.
-
Der adaptive PE-Array-Block 440 kann in einer Speicher-BW-Einheit zwischen den PE-Arrays 430 positioniert werden.
-
Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 die Mehrzahl der ersten Multiplexer 441 zum Eingeben der ersten Eingangsdaten in die PEs und die Mehrzahl der zweiten Multiplexer 443 zum Eingeben der zweiten Eingangsdaten in die PEs enthalten.
-
Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
-
Der IO-Puffer 450 kann die ersten Eingangsdaten an PEs in Zeilenrichtung innerhalb des PE-Arrays 430 übertragen.
-
Der Gewichtspuffer 460 kann die zweiten Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
-
Der adaptive Datenpfad-Controller 470 kann die Eingangsverarbeitung des adaptiven PE-Array-Blocks 440 auf der Grundlage eines Geschwindigkeitsmodus einer Speicher-BW steuern.
-
Der Geschwindigkeitsmodus der Speicher-BW kann einen Hochgeschwindigkeitsmodus und einen Niedriggeschwindigkeitsmodus umfassen. Im Hochgeschwindigkeitsmodus wird die Speicherleistung von einem Referenzwert der Anfangseinstellung aus erhöht. Im Niedriggeschwindigkeitsmodus wird die Rechenleistung von einem Referenzwert der Anfangseinstellung aus erhöht.
-
Wenn das PE-Array 430 eine Anfangsstruktur von einer N x M-Struktur aufweist, wie in 8 dargestellt, ein Speicher BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW der Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der N x M-Struktur in eine 2N x M/2-Struktur geändert wird, wie in 9 dargestellt. N kann eine Stapelgröße sein und M kann eine Gewichtsbreite darstellen.
-
Insbesondere kann der adaptive Datenpfad-Controller 470 die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von einer zweiten N Datengruppe von zwei oder mehr N Datengruppen zu empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer M/2-Datengruppe zu empfangen.
-
Ist dagegen eine Anfangsstruktur des PE-Arrays 430 eine 2N x M/2-Struktur, wie in 9 dargestellt, ein Speicher BW 2x und der Geschwindigkeitsmodus der Speicher-BW der Hochgeschwindigkeitsmodus, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 von der 2N x M/2-Struktur in die in 8 dargestellte N x M-Struktur geändert wird.
-
Der adaptive Datenpfad-Controller 470 kann die Mehrzahl der ersten Multiplexer 441 steuern, um die ersten Eingangsdaten von der ersten N Datengruppe der zwei oder mehr N Datengruppen zu empfangen, und kann die Mehrzahl der zweiten Multiplexer 443 steuern, um die zweiten Eingangsdaten von einer nächsten M/2-Datengruppe zu empfangen, die einer ersten M/2-Datengruppe folgt.
-
14 zeigt eine Datenspeichervorrichtung 200' gemäß einer anderen Ausführungsform.
-
Die Datenspeichervorrichtung 200' kann eine Zentraleinheit (CPU) 700, einen Beschleuniger 400, einen Speichercontroller (MC) 310 und eine Mehrzahl von Speicher-Dies 210 umfassen. In diesem Fall können die MC 310, der Beschleuniger 400 und die CPU 700 in einem Logik-Die 300' enthalten sein.
-
Die CPU 700 kann einen Geschwindigkeitsmodus einer Speicher-BW auf der Grundlage mindestens eines Netzwerkmodells und einer Stapelgröße bestimmen, so dass Rechenleistung und Speicherleistung des Beschleuniger 400 in einem Gesamtleistungsbudget angepasst werden. Der Geschwindigkeitsmodus der Speicher-BW kann einen Hochgeschwindigkeitsmodus umfassen, in dem die Speicherleistung von einem Referenzwert der Anfangseinstellung aus nach oben angepasst wird, und einen Niedriggeschwindigkeitsmodus umfassen, in dem die Rechenleistung im Gesamtleistungsbudget von einem Referenzwert der Anfangseinstellung aus nach oben angepasst wird. In diesem Fall implementiert die CPU 700 die in 2 offenbarte Funktion des Host-Gerätes 100 innerhalb des Datenspeichers 200. Alle Funktionen des Host-Gerätes 100 können auf die CPU 700 angewendet werden.
-
Die CPU 700 kann über ein Kommunikationsnetzwerk elektrisch mit einem externen Server (z.B. dem externen Server 10 in 1) gekoppelt werden und Daten vom externen Server 10 empfangen. In diesem Fall können die Daten eine Stapelgröße enthalten. Die Stapelgröße kann in den PNM-Architekturinformationen enthalten sein. Obwohl nicht abgebildet, kann die CPU 700 eine verdrahtete Schnittstelle oder eine Schnittstelle zum Senden und Empfangen von Daten an den und vom externen Server 10 enthalten.
-
Der Beschleuniger 400 kann eine Struktur eines PE (Verarbeitungselements) - Arrays (z.B. das PE-Array 430 in 6) verändern, durch die Steuerung von Übertragungswegen der ersten Eingangsdaten und der zweiten Eingangsdaten des PE-Arrays 430 auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW.
-
Bezug nehmend auf die 6 und 7 kann der Beschleuniger 400 den PE-Controller (PE CTRL) 420, das PE-Array 430, den adaptiven PE-Array-Block 440, den IO-Puffer 450, den Gewichtspuffer 460, den adaptiven Datenpfad-Controller 470, die AFU 480, die SFU 490 und den Leistungsregler auf Zeilenebene 495 umfassen.
-
Der PE-Controller 420 kann den Geschwindigkeitsmodus der Speicher-BW, die von der CPU 700 übertragen wird, an den adaptiven Datenpfad-Controller 470 übertragen.
-
Der adaptive PE-Array-Block 440 kann zwischen den PE-Arrays 430 positioniert werden und selektiv beliebige erster Eingangsdaten einer entsprechenden Datengruppe oder erster Eingangsdaten einer anderen Datengruppe in PEs in Zeilenrichtung innerhalb des PE-Arrays 430 eingeben.
-
Darüber hinaus kann der adaptive PE-Array-Block 440 zwischen den PE-Arrays 430 positioniert werden und selektiv beliebige zweite Eingangsdaten einer entsprechenden Datengruppe und zweite Eingangsdaten einer anderen Datengruppe in Spaltenrichtung innerhalb des PE-Arrays 430 in PEs eingeben.
-
6 zeigt das PE-Array 430, das eine N X M-Struktur aufweist. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein. Das heißt, N kann die Anzahl der PE-Zeilen darstellen, in die die ersten Eingangsdaten eingegeben werden. M kann die Anzahl der PE-Spalten darstellen, in die die zweiten Eingangsdaten eingegeben werden.
-
Unter Bezugnahme auf die 7 und 10 kann der adaptive PE-Array-Block 440 in einer Speicher-BW-Einheit (z.B. eine 1x-Einheit) zwischen PEs in den PE-Arrays 430 positioniert werden, wobei der erste PE-Array-Einstellblock vor dem zweiten Speicher-BW liegt.
-
Unter Bezugnahme auf 7 kann der adaptive PE-Array-Block 440 die Mehrzahl der ersten Multiplexer 441 zur Eingabe der ersten Eingangsdaten in die PEs und die Mehrzahl der zweiten Multiplexer 443 zur Eingabe der zweiten Eingangsdaten in die PEs enthalten.
-
Die Mehrzahl der ersten Multiplexer 441 kann in einer Zeileneinheit des PE-Arrays 430 und die Mehrzahl der zweiten Multiplexer 443 kann in einer Spalteneinheit des PE-Arrays 430 angepasst werden.
-
Der IO-Puffer 450 kann die ersten Eingangsdaten an PEs in Zeilenrichtung innerhalb des PE-Arrays 430 übertragen.
-
Der Gewichtspuffer 460 kann die zweiten Eingangsdaten an PEs in Spaltenrichtung innerhalb des PE-Arrays 430 übertragen.
-
Obwohl nicht abgebildet, können der IO-Puffer 450 und der Gewichtspuffer 460 in einem Element implementiert oder über einen Bus elektrisch miteinander gekoppelt werden.
-
Der adaptive Datenpfad-Controller 470 kann die Eingangsverarbeitung des adaptiven PE-Array-Blocks 440 auf der Grundlage des Geschwindigkeitsmodus der Speicher-BW steuern.
-
Wenn das PE-Array 430 eine Anfangsstruktur einer N x M-Struktur hat, wie in 8 dargestellt, der Speicher BW 2x ist und der Geschwindigkeitsmodus der Speicher-BW ein Niedriggeschwindigkeitsmodus ist, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 eine 2N x M/2-Struktur wird, wie in 9 dargestellt. In diesem Fall kann N eine Stapelgröße und M eine Gewichtsbreite sein.
-
Ist dagegen die Anfangsstruktur des PE-Arrays 430 eine 2N x M/2-Struktur, wie in 9 dargestellt, der Speicher BW 2x und der Geschwindigkeitsmodus der Speicher-BW ein Hochgeschwindigkeitsmodus, kann der adaptive Datenpfad-Controller 470 die Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten so steuern, dass die Struktur des PE-Arrays 430 eine N x M-Struktur wird, wie in 8 dargestellt.
-
Die Aktivierungsfunktionseinheit (AFU) 480 kann in jeder Zeile des PE-Arrays 430 vorgesehen werden und die Aktivierungsfunktionsverarbeitung an den von dem PE-Array verarbeiteten Daten durchführen.
-
Die Spezialfunktionseinheiten (SFUs) 490 können mit den jeweiligen Aktivierungsfunktionseinheiten 480 abgeglichen werden und zusätzlich zur Aktivierungsfunktionsverarbeitung weitere Operationen durchführen. So kann die Sonderfunktionseinheit 490 beispielsweise eine Verarbeitungsoperation, wie die elementweise Multiplikation der LSTM, durchführen.
-
Der Leistungsregler auf Zeilenebene 495 kann die Steuerverarbeitung der Taktsteuerung an dem PE-Array 430 in einer Zeileneinheit durchführen.
-
Unter Bezugnahme auf 11 kann der MC 310 den Geschwindigkeitsmodus der Speicher-BW an das Speicher-Die 210 übertragen.
-
Das Speicher-Die 210 kann den Takt eines Speichers basierend auf dem Geschwindigkeitsmodus der vom MC 310 übertragenen Speicher-BW ändern. In diesem Fall kann die Anzahl der Speicher-Dies 210 mindestens eins betragen.
-
Um den Takt des Speichers auf der Grundlage des Geschwindigkeitsmodus der Speicherbandbreite zu ändern, kann direkt durch das MC 310 verarbeitet werden. Die Datenspeichervorrichtung 200 kann ein Processing Near Memory (PNM) sein.
-
In den vorstehenden Ausführungsformen werden die Rechenleistung und die Speicherleistung durch die Steuerung der Eingangspfade der ersten Eingangsdaten und der zweiten Eingangsdaten unter Verwendung des adaptiven PE-Array-Blocks 440 einschließlich der Mehrzahl der ersten Multiplexer 441 und der Mehrzahl der zweiten Multiplexer 443 eingestellt, wenn die Speicher-BW 2x BW ist, die Ausführungsformen sind aber nicht darauf beschränkt.
-
In einer anderen Ausführungsform können, wenn die Speicher-BW 2x BW ist, M zweite Multiplexer, die in der Zeilenrichtung angeordnet sind, an einer N/2 Stelle in der Spaltenrichtung angeordnet werden, wobei das PE-Array 430 die N x M-Struktur aufweist, so dass das PE-Array 430 in eine N/2 x 2M-Struktur geändert wird. Wenn der Speicher BE 4x-BW ist, können in einer weiteren Ausführungsform M zweite Multiplexer, die in der Zeilenrichtung angeordnet sind, an jeder N/4-Stelle, d.h. an N/4-, 2N/4- und 3N/4-Stellen, in der Spaltenrichtung zwischen PEs in dem PE- Array 430, welche die N x M-Struktur aufweisen, angeordnet werden, so dass das PE- Array 430 in eine N/4 x 4M-Struktur umgewandelt wird.
-
Gemäß den vorliegenden Ausführungsformen kann eine Leistung der wichtigsten Anwendungen für jedes Netzwerkmodell verbessert werden, da die Rechen- und Speicherleistung je nach Geschwindigkeitsmodus einer Speicher-BW flexibel angepasst werden kann.
-
Obwohl verschiedene Ausführungsformen vorstehend beschrieben wurden, wird denjenigen, die im Fachgebiet erfahren sind, klar sein, dass die beschriebenen Ausführungsformen nur als Beispiel dienen. Folglich sollte das hier beschriebene System und die Vorrichtung nicht basierend auf die beschriebenen Ausführungsformen eingeschränkt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-