IC mit GPU gesucht

Gast #5646992
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!
Persönliche Seite #5647004
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.
#5647010
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.
Gast #5647038
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.
#5647105
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.
Gast #5647110
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.
#5647248
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.
Gast #5647330
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.
#5647455
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.
#5647480
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.
Gast #5648287
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren