simd

Einzelbefehl, mehrere Daten (SIMD) ist das Konzept, dass jeder Befehl an einem kleinen Block oder Vektor von Datenelementen arbeitet. Zu den CPU-Vektor-Befehlssätzen gehören: x86 SSE und AVX, ARM NEON und PowerPC AltiVec. Um SIMD-Anweisungen effizient zu verwenden, müssen Daten in Form von Arrays vorliegen und in längeren Datenströmen auftreten. Naively "SIMD optimized" -Code überrascht oft, indem er langsamer als das Original läuft.
2
Antworten

Profiling SIMD-Code

AKTUALISIERT - Überprüfen Sie unten Wird dies so kurz wie möglich halten. Gerne fügen Sie bei Bedarf weitere Details hinzu. Ich habe etwas Code zum Normalisieren eines Vektors. Ich benutze QueryPerformanceCounter () (eingepackt in eine H...
28.04.2011, 13:16
2
Antworten

Führt Haskell SIMD-Optimierungen automatisch durch?

Es ist möglich, eine SIMD-basierte Vektorbibliothek in Haskell unter Verwendung von Ссылка Aber wird es einen Sinn ergeben? Ich bin auf einige Artikel gestoßen, die der automatischen SIMD-Optimierung in Haskell gewidmet sind, aber was ist der...
03.06.2015, 15:25
2
Antworten

Optimaler SIMD-Algorithmus zum Rotieren oder Transponieren eines Arrays

Ich arbeite an einer Datenstruktur, wo ich ein Array von 16 Uint64 habe. Sie sind so im Speicher angeordnet (jede unten repräsentiert ein einzelnes int64): %Vor% Das gewünschte Ergebnis ist, das Array in dieses zu transponieren: %Vor% Di...
19.11.2014, 09:32
2
Antworten

SIMD-Latenzdurchsatz

Auf dem Intel Intrisics Guide finden Sie die meisten Anweisungen, aber auch Latenz und Durchsatz. Beispiel: __ m128i _mm_min_epi32 %Vor% Was genau bedeuten diese Zahlen? Ich denke, eine langsamere Latenz bedeutet, dass der Befehl länger...
15.02.2015, 23:02
1
Antwort

SSE Reduktion des Float-Vektors

Wie kann ich mithilfe von sse intrinsics Summenelemente (Reduktion) des Float-Vektors erhalten? Einfacher Seriencode: %Vor%     
20.07.2013, 10:16
3
Antworten

Sind ältere SIMD-Versionen verfügbar, wenn neuere verwendet werden?

Wenn ich SSE3 oder AVX verwenden kann, sind dann ältere SSE-Versionen als SSE2 oder MMX verfügbar - oder muss ich noch separat nach ihnen suchen?     
20.05.2015, 16:39
2
Antworten

Welche Assembler unterstützen derzeit den AVX-Befehlssatz?

Ich möchte mit einigen AVX-Anweisungen (erweiterte Vektorerweiterung) beginnen und spielen. Ich weiß, dass Intel einen Emulator zur Verfügung stellt, um Software zu testen, die diese Anweisungen enthält (siehe diese Frage ), Aber da ich Hex-Cod...
15.11.2009, 15:55
4
Antworten

Fast byteweise ersetzen if

Ich habe eine Funktion, die binäre Daten von einem Bereich in einen anderen kopiert, aber nur wenn die Bytes sich von einem bestimmten Wert unterscheiden. Hier ist ein Codebeispiel: %Vor% Das Problem ist, dass das für meinen momentanen Bedar...
23.02.2016, 13:11
2
Antworten

Logarithmus mit SSE, oder wechseln zu FPU?

Ich mache einige statistische Berechnungen. Ich brauche sie, um schnell zu sein, also schrieb ich das meiste davon um, um SSE zu verwenden. Ich bin ziemlich neu, also habe ich mich gefragt, was der richtige Ansatz ist: Soweit ich weiß, gibt e...
17.01.2012, 23:08
1
Antwort

Was ist der Nachteil der Mischung von EVEX und VEX-kodierten Schema?

Es ist ein bekanntes Problem , dass das Mischen von VEX-kodierten Anweisungen und Nicht-VEX-Anweisungen eine Strafe bedeutet und der Programmierer sich dessen bewusst sein muss. Es gibt einige Fragen und Antworten wie das . Die Lösungen hän...
06.09.2017, 16:35