Forum: Mikrocontroller und Digitale Elektronik IC mit GPU gesucht


von AnfängerMitGroßenZielen (Gast)


Lesenswert?

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!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von AnfängerMitGroßenZielen (Gast)


Lesenswert?

Gibt es aber Wege, sowas auszulegen?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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.

von Chris (Gast)


Lesenswert?

EV lea CPU, gibt es mit arm oder 420 CPU.

von Martin B. (ratazong)


Lesenswert?

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.

von Erik (Gast)



Lesenswert?

AnfängerMitGroßenZielen schrieb:
> Gibt es aber Wege, sowas auszulegen?

Google.

Anzahl der Punkte geht linear in die Runtime ein.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Erik schrieb:
> Anzahl der Punkte geht linear in die Runtime ein.

War das nicht
?

von Hans Hämmerle (Gast)


Lesenswert?

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.

von Erik (Gast)


Lesenswert?

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. ;)

von AnfängerMitGroßenZielen (Gast)


Lesenswert?

Wir reden hier von Spracherkennung.

von Hans Hämmerle (Gast)


Lesenswert?

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.

von Martin B. (ratazong)


Lesenswert?

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.

von Sebastian R. (sebastian_r569)


Lesenswert?

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.

von Rest (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von FrageÜberFrage (Gast)


Lesenswert?

Axel S. schrieb:
> für "richtige" DSP

Kannst du hier eine DSP empfehlen. Hab noch nie mit einer DSP 
gearbeitet.

von Hans Hämmerle (Gast)


Lesenswert?

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.

von Patrick B. (p51d)


Lesenswert?

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.

von Purzel H. (hacky)


Lesenswert?

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.

von 8051er (Gast)


Lesenswert?

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

von Karl (Gast)


Lesenswert?

https://www.jjj.de/fft/fftpage.html

Da bekommst du gefühlt 2000 Möglichkeiten. ;)

von Wolfgang (Gast)


Lesenswert?

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?

von Axel Zucker (Gast)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

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
Noch kein Account? Hier anmelden.