Suchergebnisse für Anfrage "avx"

4 die antwort

Die Indizes von Nicht-Null-Bytes eines SSE / AVX-Registers

Wenn der Wert eines SSE / AVX-Registers so ist, dass alle seine Bytes entweder 0 oder 1 sind, gibt es eine Möglichkeit, die Indizes aller Nicht-Null-Elemente effizient abzurufen? Zum Beispiel, wenn der xmm-Wert | ist r0 = 0 | r1 = 1 | r2 = 0 | ...

2 die antwort

Was sind die besten Befehlssequenzen, um Vektorkonstanten im laufenden Betrieb zu generieren?

"Best" bedeutet die wenigsten Anweisungen (oder die wenigsten Uops, wenn Anweisungen zu mehr als einem Uop decodieren). Die Größe des Maschinencodes in Bytes ist ein Leistungsmerkmal für die gleiche Anzahl von Eingaben. Konstante Generierung ...

2 die antwort

Laden von 8 Zeichen aus dem Speicher in eine __m256-Variable als gepackte Gleitkommazahlen mit einfacher Genauigkeit

Ich optimiere einen Algorithmus für die Gaußsche Unschärfe in einem Bild und möchte die Verwendung eines Float-Puffers [8] im folgenden Code durch eine intrinsische Variable __m256 ersetzen. Welche Anweisungsreihe eignet sich am besten für diese ...

TOP-Veröffentlichungen

4 die antwort

Automatisches Generieren von FMA-Anweisungen in MSVC

MSVC unterstützt seit Jahren AVX / AVX2-Anweisungen und entsprichtdieser msdn-Blogbeitrag [http://blogs.msdn.com/b/vcblog/archive/2014/02/28/avx2-support-in-visual-studio-c-compiler.aspx] , es kann automatisch @ erzeug fused-multiply-add ...

4 die antwort

Wie schreibe ich C ++ - Code, den der Compiler effizient in SSE oder AVX kompilieren kann?

Nehmen wir an, ich habe eine in c ++ geschriebene Funktion, die Matrixvektormultiplikationen mit vielen Vektoren ausführt. Es wird ein Zeiger auf das zu transformierende Array von Vektoren benötigt. Kann ich zu Recht davon ausgehen, dass der ...

6 die antwort

Wie löse ich das 32-Byte-Alignment-Problem für AVX-Lade- / Speichervorgänge?

Ich habe ein Ausrichtungsproblem bei der Verwendung vonymm registriert, mit ein paar Codefragmenten, die mir in Ordnung erscheinen. Hier ist ein minimales Arbeitsbeispiel: #include <iostream> #include <immintrin.h> inline void ones(float *a) { ...

2 die antwort

Wie viele Taktzyklen kosten die AVX / SSE-Exponentiation auf einer modernen x86_64-CPU?

Wie viele Taktzyklen kosten die AVX / SSE-Exponentiation auf einer modernen x86_64-CPU? Ich bin über:pow(x, y) = exp(y*log(x)) [https://stackoverflow.com/questions/25936031/pow-for-sse-types] D. tue beidesexp() undlog() AVX x86_64-Anweisungen ...

4 die antwort

Sind verschiedene mmx-, sse- und avx-Versionen komplementär oder übergeordnet?

Ich denke, ich sollte mich mit x86-SIMD-Erweiterungen vertraut machen. Aber bevor ich überhaupt angefangen habe, bin ich in Schwierigkeiten geraten. Ich kann keine gute Übersicht darüber finden, welche davon noch relevant sind. Die ...

4 die antwort

Sortieren von 64-Bit-Strukturen mit AVX?

Ich habe eine 64-Bit-Struktur, die mehrere Datenelemente darstellt, von denen eines ein Gleitkommawert ist: struct MyStruct{ uint16_t a; uint16_t b; float f; }; und ich habe vier dieser Strukturen in, sagen wir einstd::array<MyStruct, 4> ist es ...

4 die antwort

Ausgerichteter und nicht ausgerichteter Speicherzugriff mit AVX / AVX2 intrinsics

Laut Intel Software Developer Manual (Abschnitt 14.9) hat AVX die Ausrichtungsanforderungen für Speicherzugriffe gelockert. Wenn Daten direkt in eine Verarbeitungsanweisung geladen werden, z. B. vaddps ymm0,ymm0,YMMWORD PTR [rax] Die ...