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"
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.
>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.
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.
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.
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.
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.
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.
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.