Forum: FPGA, VHDL & Co. Neuronale Netze in FPGAs


von Vroni M. (vronilog)


Lesenswert?

Hi,

zur Implementierung von (einfachen) NN in FPGAs... In meiner wenig 
fundierten Phantasien davon, wie sowas gemacht wird, sah das bisher so 
aus, dass Units als separate HDL-Module realisiert werden. Das NN wäre 
also tatsächlich in der Logik implementiert, eine neuronale Schaltung 
sozusagen in der stets alle Neuronen parallel vor sich hinfeuern und 
trainiert werden könne.n

Meine Frage an euch ist, macht das überhaupt Sinn damit anzufangen? Auf 
diese Weise gehen einem sehr schnell die Kapazitäten aus, schätze ich 
nun nach etwas Recherche. Oder gehen meine bisherigen Vorstellungen doch 
nicht ganz 100%ig an der Realität vorbei. Das würde mich freuen, weil 
mir diese Vorstellung, eines "tatsächlichen" Hardware-NNs eigentlich 
sehr sympathisch ist.

Ist der richtigere Ansatz, flax formuliert, Units und Netz im DRam 
unterzubringen und zu versuchen, die PL so parallel wie möglich 
drüberzuschicken?

Wie würdet ihr sagen, sieht eine Anfängerlösung aus?

Ein Zybo Z7-20 verwende ich.

Danke!




PS

(Offtopic)

Habe heute sehr interessante Beiträge zum Thema NN gelesen...

Lesenswert wirds aber erst nach den geschätzt ersten 20 Posts:

Beitrag "Re: Coole FPGA Projekte"

von Olf O. (Gast)


Lesenswert?

An der FH Friedberg hatten wir dazu im letzten Semester eine Vorlesung. 
Angerissen wurden aber nur die Implementierung von Strukturen in C++ 
Klassen und die halbautomatische Übersetzung in Verilog.

Ich bin kein Neuro-Experte, denke aber, dass die Flexibilität, die man 
in echten Anwendungen braucht, um Lernen und Erlernbarkeit von 
Funktionen zu trainieren, es erfordern, dass Algorithmen schnell 
geändert werden können.

Die Richtung geht eher so in Richtung NVIDIA und Konsorten.

von Stefan (Gast)


Lesenswert?

>Das NN wäre
>also tatsächlich in der Logik implementiert, eine neuronale Schaltung
>sozusagen in der stets alle Neuronen parallel vor sich hinfeuern und
>trainiert werden könne.

Willst Du tatsächlich Pulsneuronen implementieren oder klassische KNN?

Fall es dir wirklich um "spiking neurons" geht, empfehle ich dieses 
Buch:
https://www.epubli.de/preview/92362
Dort wird auch anhand eines Beispiels auf die Implementierung im FPGA 
eingegangen, was man auch auf dem heimischen Basteltisch ausprobieren 
kann.

von Markus K. (markus-)


Lesenswert?

Vroni M. schrieb:
> zur Implementierung von (einfachen) NN in FPGAs...

Wie einfach ist "einfach"?
Die meisten Netze für reale Anwendungen sind viel zu groß um als Ganzes 
in einen FPGA zu passen. Andererseits gibts wohl auch wenig Anwendungen, 
bei denen man 100 Mio Bilder/s verarbeiten will.

> Ist der richtigere Ansatz, flax formuliert, Units und Netz im DRam
> unterzubringen und zu versuchen, die PL so parallel wie möglich
> drüberzuschicken?

Ja, so wird das wohl typischerweise gemacht. Es gibt auch von Xilinx da 
fertige Sachen. Das könnte auch eine Lösung für Dich sein.

von J. S. (engineer) Benutzerseite


Lesenswert?

FPGAs machen nur Sinn, um eben die Netzstruktur selbst optimiert 
abzubilden und in einem begrenzten System die Zustände in BRAMs laufen 
zu lassen. Ansonsten ist das nicht effektiv. Sobald man raus muss, ins 
DDRRAM hat man ein Bandbreitenproblem.

von Markus K. (markus-)


Lesenswert?

Jürgen S. schrieb:
> FPGAs machen nur Sinn, um eben die Netzstruktur selbst optimiert
> abzubilden und in einem begrenzten System die Zustände in BRAMs laufen
> zu lassen.

FPGAs gibts auch in einem Outdoor-Temperaturbereich (-40..+105°C) und 
man bekommt sie in kleinen Stückzahlen (<50.000 Stück/Jahr), was bei den 
Alternativen (z.B. GPUs) oftmals nicht gegeben ist.

> Ansonsten ist das nicht effektiv. Sobald man raus muss, ins
> DDRRAM hat man ein Bandbreitenproblem.

Das sieht Xilinx wohl nicht so extrem. Sie haben zwar wohl aus dem Grund 
ein Pruning-Tool, um die Netze kleiner zu machen, aber es gibt genügend 
Netze, die nur ein paar GB/s brauchen.

Details finden sich hier:
https://www.xilinx.com/support/documentation/ip_documentation/dpu/v3_1/pg338-dpu.pdf
Auf den Seiten 30+31 sind Benchmarkergebnisse und Bandbreiten 
aufgelistet.

von J. S. (engineer) Benutzerseite


Lesenswert?

Markus K. schrieb:
> FPGAs gibts auch in einem Outdoor-Temperaturbereich (-40..+105°C)

Ja, aber FPGAs schlucken oft bei gleicher Leistung den 3-5fachen Strom, 
was in mehreren meiner Anwendungen meiner Kunden schon dazu geführt hat, 
daß Rechenleistung, die man im FPGA technisch sehr leicht und gut hätte 
umsetzen können, auf andere Komponenten verschoben wurde unter anderem 
auch wegen des z.T. engen Temperaturfensters nach oben. Die 105 Grad 
sind z.B. in einem 80 Grad Gehäuse (MIL SPEC) rasch erreicht. Da darf 
dann der FPGA nur mit wenig Taktfrequenz gefahren werden.

von FPGAfan (Gast)


Lesenswert?

Stefan schrieb:
> Fall es dir wirklich um "spiking neurons" geht, empfehle ich dieses
> Buch:
> https://www.epubli.de/preview/92362
> Dort wird auch anhand eines Beispiels auf die Implementierung im FPGA
> eingegangen, was man auch auf dem heimischen Basteltisch ausprobieren
> kann.

Danke. Habe ich mir geholt. Zwar etwas teuer für den Umfang des Buches 
aber finde ich bisher ziemlich interessant.

von Stefan (Gast)


Lesenswert?

>Danke. Habe ich mir geholt. Zwar etwas teuer für den Umfang des Buches
>aber finde ich bisher ziemlich interessant.

Ich finde das Thema auch extrem spannend. Was den Preis angeht sehe ich 
das so: Zum Thema "Spking Neurons" gibt es bis jetzt sonst noch kein für 
Ingenieure/Physiker/Informatiker gut verständliches Lehrbuch, das die 
Grundlagen der Pulssignalverarbeitung vermittelt. Es ist im Moment eines 
der heißesten Themen und normalerweise zahlt man für einen 
wissenschaftlichen Artikel bei Elsevier für ein paar Seiten ähnliche 
oder höhere Preise.

Es gibt viele neurowissenschaftliche Lehrbücher. Für die muss man aber 
erst mal das Mediziner- und Biologenvokabular lernen und sie behandeln 
die Signalverabeitungsprinzipien eher am Rande.
Das hier finde ich recht gut:
https://www.springer.com/de/book/9783662572627
Es verdeutlicht auch sehr schön, wie komplex die Vorgänge in den Zellen 
sind.

von FPGAfan (Gast)


Lesenswert?

Stefan schrieb:
> Ich finde das Thema auch extrem spannend. Was den Preis angeht sehe ich
> das so: Zum Thema "Spking Neurons" gibt es bis jetzt sonst noch kein für
> Ingenieure/Physiker/Informatiker gut verständliches Lehrbuch, das die
> Grundlagen der Pulssignalverarbeitung vermittelt. Es ist im Moment eines
> der heißesten Themen und normalerweise zahlt man für einen
> wissenschaftlichen Artikel bei Elsevier für ein paar Seiten ähnliche
> oder höhere Preise.

Ich habe inzwischen die ersten 100 Seiten gelesen. Es ist sein Geld 
Wert, wenn man bisher noch nichts mit Pulsneuronen gemacht hat. Eine 
gute Einführung. Es werden die wichtigsten Informationen ohne unnötiges 
Gerede vermittelt.
Das Buch hat noch Potenzial für mehr. Trotz des positiven Eindrucks, 
erweckt es den Eindruck etwas unfertig bzw. unvollständig zu sein. Das 
Buch reißt vielmehr spannende Themen mit den Grundlagen an und motiviert 
selbst weiter zu machen. Was auch nicht verkehrt ist.

Stefan schrieb:
> Es gibt viele neurowissenschaftliche Lehrbücher. Für die muss man aber
> erst mal das Mediziner- und Biologenvokabular lernen und sie behandeln
> die Signalverabeitungsprinzipien eher am Rande.
> Das hier finde ich recht gut:
> https://www.springer.com/de/book/9783662572627
> Es verdeutlicht auch sehr schön, wie komplex die Vorgänge in den Zellen
> sind.

Das Buch habe ich schon länger auf meiner Wunschliste ;)
Wegen dem Preis muss es etwas noch warten, aber auch weil ich schon so 
einige Details über biologische Neuronen weiß. Das Buch "Das Gehirn: Von 
der Nervenzelle zur Verhaltenssteuerung" vermittelt in der Hinsicht auch 
viele Details wie die elektrochemischen Signale entstehen.
https://www.springer.com/de/book/9783662533499

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.