Einzelnen Beitrag anzeigen

TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
154 Beiträge
 
Delphi 10.3 Rio
 
#21

AW: Problem mit Geschwindigkeit

  Alt 4. Dez 2020, 10:30
Hi,

Danke für alle Tipps. Das ganze macht immer mehr Spaß, obwohl es eigentlich relativ irrelevant ist, da die FFT durchaus schnell genug ist (und eigentlich sollte ich schon seit zwei Tagen Doku machen
Eine Änderung im Bereich der Indices (danke für den Tipp) bringt bei großen FFTs eine signifikante Beschleunigung ( bis zu 10%), bei kleinen Größe eher eine Tendenz zu einer etwas geringeren Rechendauer denn eine messbare Beschleunigung (aber keinenfalls eine Verlangsamung).
Es ist schon sehr interessant zu sehen, wie sich die Umgruppierung einer Inc Anweisung gleich mal deutliche Auswirkungen hat.
Aktuell schauen die Indices so aus
Code:
 
       //Schleife Anfang
       i5:= Succ(i + n4 -j); //+1;
       i1:= i + j - 1;
       Inc(i, id); //Hier gut für kurze FFT

       i2:= i1 + n4;
       i3:= i1 + n4 + n4; // i2 + n4;
       i4:= i1 + n4 + n4 + n4; // i3 + n4;

       i6:= i5 + n4;
       i7:= i5 + n4 + n4; // i6+n4;
       i8:= i5 + n4 + n4 + n4; // i7+n4;

       //Berechnung der Daten

       // Inc(i,id); Hier gut für lange FFT

       //Schleife Ende
Das Inc(i,id) an der aktuelle Stelle liefert für kurze FFTs eine etwas höhere Geschwindigkeit (1-2%), während bei langen FFTs eine Position direkt am Ende der Schleife einen bessere Performance liefert. Für spezielle Sachen (SSE oder Rechnen auf der Grafikkarte etc.. ) fehlt mir das Basiswissen. Dann würde ich auch eher auf fertig Lösungen (Intel, FFTm(?)) o.ä. gehen.
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat