Was ist der schnellste Weg, um gleichmäßige und seltsame Indizes mit AVX2 zu spalten?C++

Programme in C++. Entwicklerforum
Anonymous
 Was ist der schnellste Weg, um gleichmäßige und seltsame Indizes mit AVX2 zu spalten?

Post by Anonymous »

Zum Beispiel mit welchen Intel AVX/SSE -Intrinsik kann ich eine Reihe komplexer Zahlen in zwei Arrays von realen und imaginären Teilen aufzeigen? 8.0, ...] < /p>
Welche Anweisungen maximieren den Durchsatz für die Durchführung dieser Spaltung? (Duplikat von echten und imaginären Teilen komplexer Zahlen in separate YMM -Register , es sei denn, es gibt etwas Besseres als das, was diese Q & A entwickelt haben.) /> Ich schreibe eine kleine FFT -Bibliothek. Deinterleaving taucht zweimal auf. Bei der Implementierung von Radix-2 und Radix-4 taucht die Deeinterleaving auf, wenn die Bühnenlänge geringer ist als die SIMD-Operandenlänge. Die Deinterleaving ist auch nützlich, um die komplexe Zahl in reale und imaginäre Komponenten zu trennen, sodass der Eingang mit separaten Arrays von realen /imaginären Teilen effizienter verarbeitet werden kann. Ich bin ziemlich verwirrt, warum es für AVX keine äquivalente Anweisung gibt, da diese Anweisung nützlich ist. Und packen Sie 3-mal pro Spur mit 256-Bit-Breitenvektor von 32-Bit-Schwimmer für einen Durchsatz von 3 Zyklen pro Vektor aus. Kann ich es besser machen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post