• Keine Ergebnisse gefunden

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.