Suchergebnisse für Anfrage "simd"

2 die antwort

Wie erleichtern die Anweisungen zur Konflikterkennung das Vektorisieren von Schleifen?

Die AVX512CD-Befehlsfamilien sind: VPCONFLICT, VPLZCNT und VPBROADCASTM. Der Wikipedia-Abschnitt über diese Anleitung [https://en.wikipedia.org/wiki/AVX-512#New_instructions_in_AVX-512_conflict_detection] sagt: Die Anweisungen in der ...

2 die antwort

Wie kann dieses Histogramm der LUT-Lookups beschleunigt werden?

Zunächst habe ich ein Arrayint a[1000][1000]. Alle diese Ganzzahlen liegen zwischen 0 und 32767 und sind bekannte Konstanten: Sie ändern sich während der Ausführung des Programms nie. Zweitens habe ich ein Array b [32768], das Ganzzahlen ...

6 die antwort

Wie lade / speichere ich mit GNU C Vector Extensions von / zu einem Array von Doubles?

Ich benutze GNU C Vector Extensions [https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html], nicht Intels_mm_* intrinsics. Ich möchte das Gleiche tun wie Intels_m256_loadu_pd intrinsic. Das Zuweisen der Werte nacheinander ist langsam: gcc ...

TOP-Veröffentlichungen

2 die antwort

Alignment und SSE seltsames Verhalten

Ich versuche, mit SSE zu arbeiten, und habe mich mit einem merkwürdigen Verhalten konfrontiert. Ich schreibe einfachen Code zum Vergleichen zweier Zeichenfolgen mit SSE Intrinsics, führe ihn aus und es funktioniert. Aber später verstehe ich, ...

2 die antwort

Verschiebung von 4 ganzen Zahlen nach rechts um verschiedene Werte SIMD

SSE bietet keine Möglichkeit, gepackte ganze Zahlen um einen variablen Betrag zu verschieben (ich kann alle Anweisungen von AVX und älter verwenden). Du kannst nur gleichmäßige Schichten machen. Das Ergebnis, das ich für jede ganze Zahl im Vektor ...

2 die antwort

AVX2, Wie kann man effizient vier Ganzzahlen in gerade Indizes eines 256-Bit-Registers laden und in ungerade Indizes kopieren?

Ich habe ein ausgerichtetes Array von Ganzzahlen im Speicher, das die Indizes I0, I1, I2, I3 enthält. Mein Ziel ist es, sie in ein __m256i-Register zu bringen, das I0, I0 + 1, I1, I1 + 1, I2, I2 + 1, I3, I3 + 1 enthält. Der schwierige Teil ...

2 die antwort

Wie kann ich __attribute __ ((ausgerichtet (32))) auf ein int * anwenden?

In meinem Programm muss ich mich bewerben__attribute__(( aligned(32))) zu einemint * oderfloat * Ich habe es so versucht, aber ich bin mir nicht sicher, ob es funktionieren wird. int *rarray __attribute__(( aligned(32)));Ich sahDie ...

2 die antwort

Warum sind einige Haswell AVX-Latenzen von Intel dreimal langsamer als Sandy Bridge?

In der Intelintrinsics ...

2 die antwort

_mm_testc_ps und _mm_testc_pd vs _mm_testc_si128

Wie Sie wissen, handelt es sich bei den ersten beiden um AVX-spezifische Eigenschaften und bei der zweiten um SSE4.1-Eigenschaften. Beide Sätze von Intrinsics können verwendet werden, um die Gleichheit von 2 Gleitkommavektoren zu überprüfen. Mein ...

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