Sicheres Fenster = 5
Kapitel 5 - Hardware für die Simulation pulsverarbeitender neuronaler Netze
5.2. Neurocomputer und Simulationsbeschleuniger
Es gibt wenige Beispiele digitaler Hardware, die speziell für die Simulation pulsverar-beitender neuronaler Netze entwickelt wurden: Spike128K und ParSpike aus der Uni-versität Paderborn sowie NESPINN und MASPINN aus der Technischen UniUni-versität Berlin. Die theoretischen Ansätze für diese Architekturen gehen auf die Arbeiten von Eckhorn und Reitböck et.al. [EckBauJor1988], [EckReiArn1989] zurück.
Auf die vielen verschiedenen Hardware-Implementierungen, die der beschleunigten Be-rechnung ratencodierter neuronaler Netze dienen, wie zum Beispiel SYNAPSE1 [RamBeiBrü1991], wird hier nicht weiter eingegangen. Einen guten Überblick über sol-che Systeme bietet [Zell1994].
Neben den digitalen Hardwarebeschleunigern für neuronale Netze, den so genannten Neurocomputern, existieren digitale Simulationsbeschleuniger, welche allgemein auf
die Beschleunigung einer ereignisgetriebenen Simulation ausgelegt sind. Für eine Über-sicht über diese Systeme sei auf [Luksch1993] verwiesen.
5.2.1. Neurocomputer - digitale Hardwarebeschleunigung für PVNN Bei den Systemen49 Spike128K, ParSpike, NESPINN und MASPINN handelt es sich um Zeitscheibensimulationen, die durch den Einsatz von Ereignislisten optimiert wurden.
Aktive, feuernde Neuronen werden in einer Spikeliste gehalten, und nur für diese Neuronen und Neuronen, die ein inneres Potential über einer fest definierten Schwelle nahe Null besitzen, findet eine Berechnung statt. Da die Simulation nach dem Zeitschei-benverfahren arbeitet, reicht es, die von den Neuronen ausgehenden Pulse zu speichern.
Liegt kein Puls am Eingang eines Neurons an, so wird der Zerfall des inneren Potentials berechnet (Abklingphase), bis dieses unter die eingangs erwähnte Schwelle fällt. Allen Systemen gemeinsam ist die Festlegung auf eine Zeitscheibe von 1 ms und weitestge-hend eine Optimierung auf das Eckhorn-Neuronenmodell (siehe Abschnitt 2.2.5).
Außerdem ist die Modellierung von Verzögerungen in diesen Systemen, wenn über-haupt, nur in sehr rudimentärer Weise möglich, da Zwischenspeicher geringer Tiefe eine Verzögerung der Ausgangspulse um maximal 8 Zeitschritte ermöglichen.
Individuelle Verzögerungen für einzelne Verbindung zwischen einem Ausgang des einen Neurons und einem Eingang eines anderen Neurons sind grundsätzlich nicht möglich.
5.2.1.1. Spike128K
Abbildung 67: Blockschaltbild des Spike128k Systems aus [Wolff2001]
49 Die Darstellungen der Systeme Spike128K und ParSpike basieren auf [HarFraSch1997] und [Wolff2001]. Die Darstellungen der Systeme NESPINN und MASPINN auf [JahRotKla1996], [SchMehJah1998], [SchMehKla1998] und [SchAtaMeh2000].
SPIKE128K bildet den Simulationsalgorithmus in Hardware ab, indem die Berech-nungsschritte für ein Neuron bzw. eine Synapse in Form einer Verarbeitungspipeline aufgebaut werden. Die Abklingphase wird vom Neuronenmodul behandelt, die Erre-gungsphase übernimmt das Topologiemodul. Die Module sind über eine Spikeliste rep-räsentiert durch das Kommunikationsmodul miteinander gekoppelt, welches die ausge-henden Pulse der Neuronen speichert. Zur Adaption der Gewichte wurde zudem durch die Arbeiten [SchHar1999][Schäfer2000] ein Lernmodul beigestellt. Ein VME-Bus-System integriert die Module zum Spike128K-VME-Bus-System.
Die Simulationsgeschwindigkeit wird beim SPIKE128K durch den Einsatz von Pipeli-ning und Parallelität gesteigert. Sequentielle Anteile des Simulationsalgorithmus, die für ein Pipelining genutzt werden, sind zum Beispiel die Berechnung des Membranpotentials und der Vergleich mit der dynamischen Schwelle. Parallelität wird durch das gleichzeitige Abklingen aller Teilpotentiale eines Neurons erreicht, da für jedes dieser Teilpotentiale eine eigene Arithmetikeinheit vorhanden ist. SPIKE128K ist als Prototypsystem auf Basis programmierbarer Logik und kommerzieller Arithmetikeinheiten und DRAM bzw. SRAM-Speichern aufgebaut. Der Pipelinetakt des Systems beträgt 10 MHz. Die theoretische Simulationsgeschwindigkeit für einen Zeitschritt ist laut [Wolff2001] 4,52 ms. Theoretisch findet die Behandlung der Spikeliste durch das Kommunikationsmodul parallel zu den Berechnungen statt und kann als Vor- oder Nachfolgestufe der jeweiligen Berechnungspipeline angesehen werden. Da eine optimale Überlappung der Stufen in Spike128K nicht erreicht wird, bleibt die theoretische Geschwindigkeit unerreicht. Die gemessene Geschwindigkeit liegt bei 11 ms pro Zeitschritt (1ms).
Das SPIKE128K System kann 128.000 Neuronen mit insgesamt 16 Millionen Verbin-dungen verwalten und ist an ein Sun-Hostsystem über einen Transputerlink mit der the-oretischen Datenrate von 20 Mbit/s angebunden. Durch aufwendige in Software reali-sierte Protokolle und die geringe Rechenleistung der Transputer entsteht damit eine La-tenzzeit für jedes Datenpaket, welche sich insbesondere bei einer hohen Anzahl kleiner Datenpakete auf die Gesamtsimulationsdauer niederschlägt.
5.2.1.2. ParSpike
Bei ParSPIKE handelt es sich um ein Systemkonzept, welches nicht implementiert wurde. Es lehnt sich in seiner Architektur an das Spike128K System an, setzt jedoch di-gitale Signalprozessoren (DSPs) als Rechenknoten ein.
Auch in diesem System soll eine SUN Workstation als Host eingesetzt werden. Ein VME-Bus dient zur Kopplung so genannter nrc- bzw. rc-Module50. Die Module tragen neben den DSPs als Berechnungsknoten zusätzlich Kommunikationsmodule, welche die Verwaltung und Übermittlung der erzeugten Pulse bewerkstelligen.
Das nrc-Modul dient dazu, nicht reguläre Verbindungsstrukturen mit bis zu 256.000 Neuronen zu unterstützen, und hält dafür einen globalen Topologiespeicher bereit. Das rc-Modul kann hingegen 512.000 Neuronen simulieren, die jedoch nur über eine regu-läre Netzwerkstruktur verknüpft werden können, da anstelle des globalen Topologiespeichers Verknüpfungsmasken in den lokalen Speichern eines jeden Rechen-knotens zum Einsatz kommen.
50 nrc = non regular connections, rc = regular connections
Ein wesentlicher Vorteil dieses Konzepts ist, dass es sich leichter programmieren lässt, da es auf Standardsignalprozessoren basiert und lediglich für die kritische Kommunika-tion Spezialhardware vorhält. Eine Abschätzung der SimulaKommunika-tionsleistung findet sich am Ende des Abschnitts 5.2.1.
Abbildung 68: ParSPIKE Systemkonzept (übernommen aus [Wolff2001]).
5.2.1.3. NESPINN
Bei NESPINN handelt es sich um ein Konzept für einen Neuroprozessor, welcher zwar schaltungstechnisch entworfen, nicht jedoch gefertigt wurde.
Abbildung 69: System mit NESPINN Chip (übernommen aus [JahRotKla1996])
Vereinfacht kann NESPINN als SoC51-Variante des Spike128K Systems aufgefasst werden, wobei jedoch einerseits das Design weiterentwickelt wurde und andererseits verschiedene Aspekte des Systems anders umgesetzt werden mussten. Der NESPINN-Prozessor wurde mit einer Taktfrequenz von 50 MHz ausgelegt und verarbeitet
51 SoC = System on a Chip
dendritische Potentiale in vier Prozessorpipelines. Über eine Markierung (Tags) der Potentiale wird eine Beschränkung auf aktive Potentiale erreicht. Die Neuronendaten sind in externen SRAM-Speichern abgelegt. Für die Topologieverarbeitung und die Spikelistenverwaltung sind ebenfalls externe Einheiten vorgesehen.
5.2.1.4. MASPINN
Das MASPINN-System [SchMehJah1998][SchMehKla1998] ist eine Weiterentwick-lung des NESPINN-Konzepts. Es wurde dabei ein besonderes Augenmerk auf eine op-timierte Nutzung des externen SRAM-Speichers gelegt, um die zwei Pipelines des Neu-roPipe-Chips möglichst kontinuierlich mit Daten speisen zu können. Um dies zu errei-chen, werden die Abkling- und Erregungsphasen miteinander verschränkt, da die Akku-mulation der Potentialmodifikationen durch die Verbindungsgewichte mittels einer ex-ternen Topologiedateneinheit erfolgt. Zudem existiert zusätzlich ein TAG-RAM, mit Hilfe dessen die aktiven zu verarbeitenden Potentiale verwaltet werden.
Von dem gesamten System wurde der NeuroPipe-Chip realisiert und simuliert [SchAtaMeh2000]. Da die externe Topologieeinheit bisher nicht realisiert wurde, sind die weiter unten angegebenen Simulationsgeschwindigkeiten für die MASPINN-Be-rechnungen nur Schätzungen. Die Taktfrequenz des NeuroPipe-Chips beträgt 100 MHz.
Abbildung 70: Blockschaltbilder des MASPINN-Systems und des darin enthaltenen NeuroPipe-Chips (aus [GraSchWol2002])
5.2.1.5. Vergleich der Simulationsleistungen
Aus [Wolff2001] stammt die folgende Tabelle, welche die Simulationsleistungen der vorgestellten Systeme vergleicht. Für die Systeme, welche nicht implementiert wurden, sind die Werte aufgrund der architekturellen Eigenschaften abgeschätzt worden.
Weight
Cache0 Weight Cache1 Connection
Chip Neuron-Unit
Weight Memory
Spike Event List
acc.weights, acc.weight-tags
*source neuron
Connection-Unit
MASPINN-Board
SRAM SRAM
DRAM
DP-Memory
Net-Par-Memory DP-Tag-Memory DRAM
NeuroPipe-Chip PE_0
Neuroprocessor Chip
PE_1 Host-Computer
PCI- Inter-face
DP[n]-Tag
*source neuron
Filter
Prop-agate
NeuroPipe-Controller Init Go (TS, Layer) Stop
Neuron Parameter Neuron
Param.-Memory Host-Comp.
Adr2Tag Converter
DP[n+1]
Tag2Adr.
Converter
∆DP-Tag[n]
DP[n+1]
-Tag
NeuroPipe-Chip
PE0 PE1 Sorting HOF
DP[n]
Filter
Prop-agate HOF Tag2Adr.
Converter
∆DP
Anzahl der Neuronen 128.000 512.000 1.000.000
MASPINN (2 PE/100 MHz) 0,8 ms 3,2 ms 6,4 ms
NESPINN (4 PE/50 MHz) 3 ms 11 ms 23,4 ms
SPIKE128k (1-8 PE/10 MHz) 10 ms 11 ms (4PE) 12 ms (8PE) ParSPIKE (64 PE/AD21060/40 MHz) 2,5 ms 10 ms 20 ms ParSPIKE (64 PE/AD21160/100 MHz) 1 ms 4 ms 8 ms ParSPIKE (64 PE/TS001/150 MHz) 0,7 ms 2,7 ms 5,4 ms ParSPIKE (64 PE/TSxxx/250 MHz) 0,4 ms 1,6 ms 3,2 ms
Tabelle 9: Vergleich der Simulationsgeschwindigkeiten (übernommen aus [Wolff2001])52.
52ADSP21060, ADSP21160, TigerSHARC TS001, TigerSHARC TSxxx sind unterschiedliche DSPs die als Rechnerknoten fungieren (siehe [Wolff2001]).
Kapitel 6 - RACER - Hardware zur Beschleuni-gung der Simulation und Integration von puls-erzeugender Hardware
Die zuvor beschriebenen Beschleuniger und Spezialprozessoren wurden jeweils auf ein bestimmtes Neuronenmodell hin optimiert. Solche Einschränkungen versprechen einen spürbaren Leistungsgewinn durch den Einsatz von Spezialhardware. Eine solches Vorgehen erscheint im Falle pulsverarbeitender neuronaler Netze gewagt, da die zugrunde liegenden Modelle noch Gegenstand der Forschung sind. Neue Erkenntnisse darüber, wie Informationen in solchen Netzwerken verarbeitet werden, vor allem aber Erkenntnisse über die wesentlichen funktionalen Aspekte der Neuronmodelle, können entweder nur sehr eingeschränkt oder gar nicht durch diese Architekturen abgebildet werden.
Die RACER-Hardware setzt deshalb andere Schwerpunkte. Sie ermöglicht program-mierbare Verarbeitungseinheiten und stellt eine möglichst einfache und effiziente Kom-munikation zum Zugriff auf diese Einheiten bereit. Die gesteigerte Flexibilität wird durch geringere Leistungsfähigkeit erkauft, da programmierbare Schaltkreise nicht die Leistungsfähigkeit von Spezialprozessoren erreichen können. Ziel dieser Entwicklung ist eine hochflexible Entwicklungsplattform, die es erlaubt, verschiedenste Ansätze zur Beschleunigung von Teilaufgaben der Simulation in Hardware zu evaluieren und die Entwicklung von Vorverarbeitungsstufen zu unterstützen, die entweder analoge Signale verarbeiten oder dazu dienen, pulserzeugende analoge oder digitale Hardware in die Si-mulation zu integrieren.
Um diesen Anforderungen gerecht zu werden, wurde eine Datenflussarchitektur imple-mentiert, welche drei weitgehend unabhängige Datenströme über frei wählbare Verar-beitungsmodule verfügbar macht.