Moin, ich bin gerade dabei mich auf dem Markt nach einem IC umzuschauen, der meine Anforderungen erfüllt. -Berechnung Inverse FFT mit 2^15 Werten nach Faltung -Echtzeitfähig mit mind. 10Hz Leide habe ich keine Erfahrungen, wie ich mit diesen Anforderungen auf eine Rechenleistung komme. Kann mir hier jemand helfen, wie ich aus den Anforderungen eine Rechenleistung berechnen kann um dann einen IC zu suchen (ich denke mal, dass ich einen GPU brauche) der meine Anforderungen erfüllt. Danke fürs Helfen!
AnfängerMitGroßenZielen schrieb: > Leide habe ich keine Erfahrungen, wie ich mit diesen Anforderungen auf > eine Rechenleistung komme. Programmier's doch einfach mal in der Programmiersprache Deiner Wahl und lass' es auf Deinem PC laufen. Bestimme die Zeit, die ein Durchlauf braucht.
Die meisten Cortex-A Anwendungsprozessoren haben eine GPU. Manche haben sogar noch DSP-Kerne, die genau für so etwas konzipiert sind, wie die TI Sitara Prozessoren. Die Interfaces der GPUs sind geheim, die kann man nur über binäre Linux-Treiber nutzen und hat dann Probleme mit der Echtzeitfähigkeit. Dann gibt es noch dedizierte DSP-ICs, die ebenfalls genau für so etwas gemacht sind, und natürlich FPGAs. Für die Auswahl sollte man natürlich erst einmal überschlagen wie viele Berechnungen (Addition, Multiplikation) mit welchem Datentyp pro Sekunde gemacht werden müssen.
So ein STM32 mit Coprozessor könnte reichen. Schau mal in die AN4841 von stm. link: https://www.st.com/content/ccc/resource/technical/document/application_note/group0/c1/ee/18/7a/f9/45/45/3b/DM00273990/files/DM00273990.pdf/jcr:content/translations/en.DM00273990.pdf Ein STM32F429 macht da eine 1024 pkt FFT in 547 Mikrosekunden in float. Das könnte reichen. Habe schon ziemlich schnelle Filter mit dem Zeug gebaut. Man muss sich ein wenig einfummeln, aber die DSP sourcen von ST laufen eigentlich.
AnfängerMitGroßenZielen schrieb: > Gibt es aber Wege, sowas auszulegen? Google. Anzahl der Punkte geht linear in die Runtime ein.
AnfängerMitGroßenZielen schrieb: > Kann mir hier jemand helfen, wie ich aus den Anforderungen eine > Rechenleistung berechnen kann um dann einen IC zu suchen (ich denke mal, > dass ich einen GPU brauche) der meine Anforderungen erfüllt. Nein, du brauchst einen DSP oder einen µC mit DSP-Beschleuniger. -Berechnung Inverse FFT mit 2^15 Werten nach Faltung -Echtzeitfähig mit mind. 10Hz Sprich Klartext, welche Anwendung soll das werden? Spracherkennung, Bildkomprimierung? Wenn man die Anwendung kennt, kann man sagen auf welchem system man schon was ähnliches gesehen hat. 10 Hz Echtzeit ist ein Witz.
Niklas G. schrieb: > War das nichtO(N⋅log(N))\mathcal{O}(N \cdot \log(N))? Ja hast recht. Für den Überschlag dass es bei 10Hz passt, hat es gereicht. ;)
AnfängerMitGroßenZielen schrieb: > Wir reden hier von Spracherkennung. Wurde hier schon mal diskutiert: Beitrag "Hardware-Mindestanforderungen bei Spracherkennung" Im Amazon Echo als Referenz für Spracherkennung steckt ein Texas Instruments DM3725 ARM Cortex-A8 Prozessor. Das ist für Spracherkennung mehr als ausreichend.
AnfängerMitGroßenZielen schrieb: > Wir reden hier von Spracherkennung. Hast Du schon eine Ahnung, was Du an RAM brauchst? Das könnte zu einem Problem werden.
Hans Hämmerle schrieb: > AnfängerMitGroßenZielen schrieb: >> Wir reden hier von Spracherkennung. > > Wurde hier schon mal diskutiert: > Beitrag "Hardware-Mindestanforderungen bei Spracherkennung" > > Im Amazon Echo als Referenz für Spracherkennung steckt ein Texas > Instruments DM3725 ARM Cortex-A8 Prozessor. Das ist für Spracherkennung > mehr als ausreichend. Naja. Der Echo macht aber nicht mehr als Wakeword-Detection, erkennt also nur das "Alexa!", der Rest wird aufgezeichnet, an Amazonserver geschickt, dort gehts durch Spracherkennung, durch Intensionserkennung, dann Sprachsynthese und als Audio zurück zum Echo, der die Antwort abspielt. Also die Schwerstarbeit passiert nicht auf dem Echo, sondern auf Amazon-Servern. Und die Wakeword-Erkennung braucht vermutlich nicht sooo viel Bums.
Hans Hämmerle schrieb: > Im Amazon Echo als Referenz für Spracherkennung steckt ein Texas > Instruments DM3725 ARM Cortex-A8 Prozessor. Das ist für Spracherkennung > mehr als ausreichend. Das wird auf dem Amazon Server ausgewertet. Es wir nur das Triggerwort ("Alexa") auf dem Gerät erkannt. Diese Erkennung ist sehr sehr rudimentär und auch schlecht. Alles andere wird auf dem Amazon Server ausgewertet. Die Audioaufnahmen kann man in der App anschauen und monatelang zurück vom Server anhören. Wer das mal macht wird feststellen wie oft das Triggerwort falscher Weise erkannt wird. Egal welche GPU -> zuerst schauen, dass du ein Datenblatt und Programming Manual bekommst. Bei vielen GPU Herstellern bekommt man das nur gegen NDA und leider auch erst ab bestimmten Stückzahlen (!!!). Klingt nicht sinnvoll, ist aber leider so. Als Privatperson meisten überhaupt nicht.
Rest schrieb: > Egal welche GPU -> zuerst schauen, dass du ein Datenblatt und > Programming Manual bekommst. Weil ich den Quatsch jetzt schon ein paar mal lesen mußte: für eine FFT braucht man keine GPU. Eine Floating Point Unit reicht (sofern es überhaupt um Gleitkommarechnung geht). Optional eine DSP-Erweiterung, wie sie bspw. die Cortex-M4 haben. 100ms sind eine sehr lange Zeit, auch für 32K Punkte. Ein z.B. STM32F4 sollte dafür schon reichen. Wo die Latte hängt, sieht man an den o.g. Zahlen für "richtige" DSP mit um die 20µs für 1K Punkte. Extrapoliert auf 32K Punkte (folgend O(n·ld n)) bräuchte so ein DSP um die 3ms.
Axel S. schrieb: > für "richtige" DSP Kannst du hier eine DSP empfehlen. Hab noch nie mit einer DSP gearbeitet.
Axel S. schrieb: > Rest schrieb: >> Egal welche GPU -> zuerst schauen, dass du ein Datenblatt und >> Programming Manual bekommst. > > Weil ich den Quatsch jetzt schon ein paar mal lesen mußte: für eine FFT > braucht man keine GPU. Eine Floating Point Unit reicht (sofern es > überhaupt um Gleitkommarechnung geht). Optional eine DSP-Erweiterung, > wie sie bspw. die Cortex-M4 haben. Volle Zustimmung, deshalb auch der Hinweis auf Spracherkennung mit einem embedded Prozessor. Ein Graphik-Beschleuniger ist völlig unangebracht für diese Anwendung.Und der DSP im echo macht mehr als nur ein einzelnes Word zu erkennen, der macht Echo-cancelling und eben die Spektrale aufbereitung wie angefragt. Für Spracherkennung brauchts keinen amazon-Cluster, Spracherkennung kann schon ein räudiger PC von 1997. bspw. ein Pentium mit 200 MHz und MMXtension.
AnfängerMitGroßenZielen schrieb: > Leide habe ich keine Erfahrungen, wie ich mit diesen Anforderungen auf > eine Rechenleistung komme. Testen und für Versuche mal 2-3 Nummern zu gross wählen. Bei Privaten Bastelprojekten spielt es auch keine Rolle mehr (paar Euros mehr oder weniger...), ob der Chip überdimensioniert ist. Ist ja sowieso nur ein Einzelstück. Spracherkennung simpel? PC/Notebook mit Mikrofon und Matlab/GNURadio und dann kannst du Algorithmen umsetzen ohne dich mit Fragen wie GPU, RAM, DSP... zu kümmern, da sowieso genügend Ressourcen vorhanden sind. Wenn du dein Konzept erfolgreich geprüft ist, kannst du dann an die Auswahl einer entsprechenden Hardware gehen. Du weisst ja dann wieviel Rechenleistung und Speicher nötig ist und somit kannst du dich auch gleich die passende Technologie nehmen. Alles andere ist sinnlos und mit viel Frust gespickt.
Erstens mal benoetigt man keine Floating point, und auch nicht soviel Punkte. Wieviele Frequenzen willst du denn aufgeloest haben ? 20Hz-20kHz ? Nein, denn fuer Sprache genuegen 100Hz-5kHz. Und das ist schon grosszuegig. Und welches sollen die Frequenzraster sein ? 1Hz ? Natuerlich auch nicht. Bedeutet die 2^15 Werte werden einiges weniger. Dafuer sind 10Hz auf der schwachen Seite. Ich wuerd mal mit einem PIC32 beginnen. Das sind DSP Maschinen mit 32Bit und 80MHz, oder so. Die koennen allerdings so eine FFT im Hintergrund per Hardware.
Hier ein paar Grundlagen am Beispiel der STM32F4 und STM32F7, der STM32H7 ist nochmals deutlich performanter: https://www.st.com/resource/en/application_note/dm00273990.pdf
Hans Hämmerle schrieb: > -Echtzeitfähig mit mind. 10Hz Sagt wer? Das kommt immer auf den Prozess an. Auch der Bahnregler eines 350m Containerschiffes läuft in Echtzeit. Was nützt 10Hz Datenverarbeitung bei Zeitskalen von etlichen Sekunden bis Minuten?
Wolfgang schrieb: > Auch der Bahnregler eines 350m Containerschiffes läuft in Echtzeit. Was > nützt 10Hz Datenverarbeitung bei Zeitskalen von etlichen Sekunden bis > Minuten? Ne Monsterwelle braucht keine sekunde das Dickschiff Kiel oben zu werfen. oder zumindest aus dem Kurs zu schnippen.
AnfängerMitGroßenZielen schrieb: > Moin, > ich bin gerade dabei mich auf dem Markt nach einem IC umzuschauen, der > meine Anforderungen erfüllt. Schau mal her: https://www.ebay.de/itm/Nvidia-Jetson-TX2-Development-Board-Mini-ITX-mit-Gehause-und-3-fach-USB-Hub/223269264729 https://elinux.org/Jetson_TX2 Das könnte was für Dich sein. fchk
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.