Tag: sse

SSE (Streaming SIMD Extensions) war der erste von vielen ähnlich benannten Vektor-Erweiterungen der x86-Befehlssatz. An diesem Punkt, SSE öfter ein catch-all für x86-Vektor-Anweisungen im Allgemeinen, und nicht einen Verweis auf SSE ohne SSE2, SSE3, etc.

Wie dreht man eine SSE - /AVX-Vektor

Anzahl der Antworten 2 Antworten
Ich ausführen muss, um ein drehen der Betrieb mit möglichst wenig Taktzyklen wie möglich. Im ersten Fall nehmen wir an __m128i als source-und dest-Typ: Quelle: || A0 || A1 || A2 || A3 || dest: || A1

SSE: konvertieren short integer zu float

Anzahl der Antworten 2 Antworten
Ich konvertieren möchten, die ein array von unsigned short zahlen zu schweben SSE verwenden. Lassen Sie uns sagen, __m128i xVal; //Has 8 16-bit unsigned integers __m128 y1, y2; //2 xmm registers for 8 float values Ich soll

SIMD-Präfix Summe auf Intel-cpu

Anzahl der Antworten 3 Antworten
Muss ich implementieren Sie eine prefix-sum-Algorithmus und würde es brauchen, um so schnell wie möglich sein. Ex: [3, 1, 7, 0, 4, 1, 6, 3] should give [3, 4, 11, 11, 15, 16, 22, 25] Gibt es

SIMD math-Bibliotheken für die SSE-und AVX

Anzahl der Antworten 2 Antworten
Ich bin auf der Suche nach SIMD math-Bibliotheken (vorzugsweise open source) für die SSE-und AVX. Ich meine zum Beispiel wenn ich eine AVX-register v mit 8 float-Werte will ich sin(v), um die Sünde aller acht Werte auf

SSE (SIMD): Multiplikation Vektor mit skalaren

Anzahl der Antworten 3 Antworten
Einen gemeinsamen Betrieb, die ich tun in meinem Programm ist die Skalierung der Vektoren durch Skalare (V*s, z.B. [1,2,3,4]*2 == [2,4,6,8]). Gibt es eine SSE (oder AVX) die Anweisung, etwas zu tun, als der erste laden der

beste cross-Plattform-Methode, um Speicher ausgerichtet

Anzahl der Antworten 5 Antworten
Hier ist der code, den ich normalerweise benutze, um ausgerichtet Speicher mit Visual Studio und GCC inline void* aligned_malloc(size_t size, size_t align) { void *result; #ifdef _MSC_VER result = _aligned_malloc(size, align); #else if(posix_memalign(&result, align, size)) result =

Erste Schritte mit Intel x86-SSE SIMD-Befehle

Anzahl der Antworten 4 Antworten
Ich will lernen, mehr über die Verwendung der SSE. Welche Möglichkeiten gibt es, um zu lernen, neben den offensichtlichen Lesen der Die Intel® 64 und IA-32 Architectures Software Developer ' s Manuals? Hauptsächlich bin ich interessiert an

Wie Berechne Vektor-Skalarprodukt SSE Verwenden Intrinsische Funktionen in C

Anzahl der Antworten 4 Antworten
Ich versuche multiplizieren von zwei Vektoren zusammen, wo jedes element des einen Vektors multipliziert mit dem element in der gleichen index auf den anderen Vektor. Dann möchte ich die Summe aller Elemente des resultierenden Vektors zu erhalten,

AVX2, was ist der effizienteste Weg, um pack-Links basiert auf einer Maske?

Anzahl der Antworten 4 Antworten
Wenn Sie ein Eingabe-array und ein output-array ist, aber Sie wollen nur schreiben diejenigen Elemente, welche durch eine bestimmte Bedingung, was wäre der effizienteste Weg, dies zu tun in AVX2? Ich habe gesehen, in der SSE, wo

Mit SSE in C#

Anzahl der Antworten 2 Antworten
Ich bin derzeit auf der Codierung eine Anwendung in C#, die profitieren könnten viel aus der Verwendung von SSE, als ein relativ kleines Stück code bewirkt, dass 90-95% der Ausführungszeit. Der code selbst ist auch perfekt für

Wie ist ein Vektor-Daten ausgerichtet?

Anzahl der Antworten 8 Antworten
Wenn ich will, um Daten zu verarbeiten, die in einer std::vector mit SSE, ich brauche 16-byte-Ausrichtung. Wie kann ich das erreichen? Muss ich schreiben, dass meine eigenen allocator? Oder ist die default-Zuweisung schon richten-bis 16-byte-Grenzen? In C++11

initialisieren eine union-array bei der Deklaration

Anzahl der Antworten 3 Antworten
Ich versuche zu initialisieren ist die folgende union-array bei der Deklaration: typedef union { __m128d m; float f[4]; } mat; mat m[2] = { {{30467.14153,5910.1427,15846.23837,7271.22705}, {30467.14153,5910.1427,15846.23837,7271.22705}}}; Aber ich'getting die folgende Fehlermeldung: matrix.c: In function ‘main’: matrix.c:21: error:

Zuordnung von 16byte-memory-Daten ausgerichtet

Anzahl der Antworten 5 Antworten
Bin ich versucht zu implementieren SSE Vektorisierung auf ein Stück code, für die ich meine 1D-array von 16 byte Speicher ausgerichtet. Jedoch, ich habe versucht, mehrere Möglichkeiten zu reservieren 16byte Speicher ausgerichtet Daten, aber es endet als

Mit SSE in c# ist es möglich?

Anzahl der Antworten 9 Antworten
Las ich eine Frage zu c# - code-Optimierung und eine Lösung war der Einsatz von c++ mit SSE. Ist es möglich zu tun, SSE direkt aus einem c# - Programm? InformationsquelleAutor der Frage Rex Logan | 2009-01-06

Am schnellsten horizontale Vektor-Summe mit AVX-Instruktionen

Anzahl der Antworten 3 Antworten
Habe ich eine gepackte Vektor von vier 64-bit-floating-point-Werte. Ich möchte die Summe der Vektor-Elemente. Mit SSE (und mit 32-bit floats) konnte ich nur Folgendes tun: v_sum = _mm_hadd_ps(v_sum, v_sum); v_sum = _mm_hadd_ps(v_sum, v_sum); Leider, obwohl AVX verfügt

Sollte ich die SIMD-oder vector extensions oder etwas anderes?

Anzahl der Antworten 3 Antworten
Ich bin derzeit auf der Entwicklung eines open-source-3D-Anwendung framework im c++ (mit c++11). Meine eigene Mathematik-Bibliothek ist konzipiert wie die XNA math-Bibliothekauch mit SIMD in den Sinn. Aber derzeit ist es nicht wirklich schnell, und es hat

c++ SSE SIMD framework

Anzahl der Antworten 8 Antworten
Kennt jemand ein open-source-C++ x86-SIMD-Interna-Bibliothek? Intel liefert genau das, was ich in den integrated performance primitives-Bibliothek, aber kann ich nicht benutzen, weil die Urheber-und alle über dem Platz. BEARBEITEN Ich weiß schon, die systeminterne Funktionen, sofern vom

Effiziente 4x4-matrix-Multiplikation (C vs Assembler)

Anzahl der Antworten 5 Antworten
Ich bin auf der Suche nach schneller und schwieriger Weg multiplizieren von zwei 4x4 Matrizen in C. Meine aktuelle Forschung konzentriert sich auf die x86-64 Montage mit SIMD-Erweiterungen. So weit, ich habe eine Funktion Hexe ist etwa

GCC-SSE-code-Optimierung

Anzahl der Antworten 2 Antworten
Dieser Beitrag ist eng verwandt mit anderen, die ich gepostet vor einigen Tagen. Dieses mal habe ich einen einfachen code, fügt nur ein paar von arrays von Elementen, multipliziert das Ergebnis durch die Werte in ein anderes

SSE Multiplikation von 4 32-bit-Ganzzahlen

Anzahl der Antworten 2 Antworten
Wie vermehre vier 32-bit-Ganzzahlen, die durch weitere 4 Ganzzahlen? Ich fand keine Anweisung, die es tun können. InformationsquelleAutor der Frage Yury | 2012-05-08

Was ist der differrence unter cflgs sse-Optionen -msse, -msse2, -mssse3, -msse4 rtc..? und wie zu bestimmen?

Anzahl der Antworten 1 Antworten
Für die GCC CFLAGS Optionen: -msse-msse2-mssse3-msse4-msse4.1-msse4.2. Sind Sie exklusiv in Ihrer verwenden oder können die auch zusammen verwendet werden? Mein Verständnis ist, dass die Auswahl, die festlegen, hängt davon ab, ob der Ziel-Bogen, dem das Programm ausgeführt

drucken __m128i variable

Anzahl der Antworten 4 Antworten
Ich versuche zu lernen, um code mit Interna und unten ist ein code der nicht neben compiler used: icc #include<stdio.h> #include<emmintrin.h> int main() { __m128i a = _mm_set_epi32(1,2,3,4); __m128i b = _mm_set_epi32(1,2,3,4); __m128i c; c = _mm_add_epi32(a,b);

Jede JVM - JIT-Compiler generiert code, der verwendet Vektorgrafik-floating-point-Anweisungen?

Anzahl der Antworten 8 Antworten
Sagen wir, den Engpass von meinem Java-Programm ist wirklich einige enge Schleifen zu berechnen, eine Reihe von Vektor-dot-Produkte. Ja, ich habe profilierten, ja es ist der Engpass, ja, es ist wichtig, ja das ist halt, wie der

Verwenden von SSE-Anweisungen

Anzahl der Antworten 15 Antworten
Ich habe eine Schleife geschrieben in C++ ausgeführt wird, wird für jedes element ein großes integer-array. Innerhalb der Schleife habe ich die Maske einige bits der integer-und dann finden Sie die min-und max-Werte. Ich habe gehört, dass

Wie ermittelt man, ob Speicher ausgerichtet ist?

Anzahl der Antworten 7 Antworten
Ich bin neu in der Optimierung von code mit SSE/SSE2 Anweisungen und bis jetzt habe ich nicht bekommen, sehr weit. Meines Wissens eine gemeinsame SSE-optimierte Funktion würde wie folgt Aussehen: void sse_func(const float* const ptr, int len){

Wie erkennt man die Verfügbarkeit von SSE / SSE2 / AVX / AVX2 / AVX-512 / AVX-128-FMA / KCVI zur Kompilierzeit?

Anzahl der Antworten 1 Antworten
Ich versuche zu optimieren, einige matrix-Berechnungen und ich Frage mich, ob es möglich war, zu erkennen, die zur compile-Zeit, wenn die SSE/SSE2/AVX/AVX2/AVX-512/AVX-128-FMA/KCVI[1] wird aktiviert, indem der compiler ? Ideal für GCC und Clang, aber ich kann zu

SSE, intrinsics und Ausrichtung

Anzahl der Antworten 3 Antworten
Ich geschrieben habe, einen 3D-Vektor-Klasse mit einer Menge von SSE compiler-Interna. Alles funktionierte gut, bis ich anfing zu instatiate Klassen mit den 3D-Vektor als Mitglied mit neuen. Erlebte ich seltsame Abstürze im release-Modus aber nicht im debug-Modus

Verwendung von Fused Multiply-Add (FMA) -Anweisungen mit SSE / AVX

Anzahl der Antworten 2 Antworten
Habe ich gelernt, dass einige Intel/AMD CPUs tun können simultanen multiplizieren und addieren mit SSE/AVX: FLOPS pro Zyklus für sandy-bridge und haswell SSE2/AVX/AVX2. Ich gerne wissen, wie man dies am besten im code und ich will auch

Verwenden der AVX-CPU-Anweisungen: Schlechte Leistung ohne "/ arch: AVX"

Anzahl der Antworten 2 Antworten
Mein C++ code verwendet SSE und jetzt will ich es zu verbessern, zu unterstützen AVX, wenn es verfügbar ist. Damit ich erkennen, wenn AVX verfügbar ist, und rufen Sie eine Funktion, die verwendet AVX-Befehle. Ich benutze Win7

Was bedeutet "nicht temporale" Speicherzugriffe in x86?

Anzahl der Antworten 2 Antworten
Dies ist ein etwas low-level-Frage. In x86-assembly gibt es zwei SSE-Anweisungen: MOVDQA xmmi, m128 und MOVNTDQA xmmi, m128 IA-32 Software Developer ' s Manual sagt, dass die NT in MOVNTDQA steht für Nicht-Zeitlichenansonsten ist es das gleiche

Intel SSE und AVX Beispiele und Tutorials

Anzahl der Antworten 4 Antworten
Gibt es eine gute C/C++ - tutorials oder Beispiele für das lernen der Intel SSE-und AVX-Anweisungen? Fand ich wenige auf der Microsoft MSDN-und Intel-sites, aber es wäre toll, es zu verstehen von den Grundlagen.. InformationsquelleAutor der Frage

Wie prüfe ich, ob eine CPU den SSE3-Befehlssatz unterstützt?

Anzahl der Antworten 5 Antworten
Ist der folgende code gültig, zu prüfen, ob eine CPU unterstützt den SSE3-Befehlssatz? Mithilfe der IsProcessorFeaturePresent() - Funktion scheinbar nicht funktioniert, auf Windows XP (siehe http://msdn.microsoft.com/en-us/library/ms724482(v=vs. 85).aspx). bool CheckSSE3() { int CPUInfo[4] = { -1}; //-- Get

Header-Dateien für x86-SIMD-Intrinsics

Anzahl der Antworten 5 Antworten
Welche header-Dateien bieten die systeminterne Funktionen für die verschiedenen x86-SIMD-Befehlssatz-Erweiterungen (MMX, SSE, AVX, ...)? Es scheint unmöglich zu finden, so eine Liste online. Korrigieren Sie mich, wenn ich falsch bin. InformationsquelleAutor der Frage fredoverflow | 2012-06-27

Unterschied zwischen MOVDQA- und MOVAPS x86-Anweisungen?

Anzahl der Antworten 1 Antworten
Ich bin auf der Suche Intel-Datenblatt: Intel® 64 und IA-32-Architektur Software Developer ' s Manual und ich kann nicht herausfinden, den Unterschied zwischen MOVDQA: Bewege Ausgerichtet Double Quadword MOVAPS: Verschieben Ausgerichtet Packed Single-Precision - Im Intel-Datenblatt kann

SSE intrinsische Funktionen Referenz

Anzahl der Antworten 5 Antworten
Kennt jemand einen Verweis auf die Auflistung der Betrieb der SSE intrinsische Funktionen für den gcc, also den Funktionen, die in den <*mmintrin.h> header-Dateien? Dank. InformationsquelleAutor der Frage NGaffney | 2011-08-23

Schnellste Möglichkeit, die horizontale Float-Vektorsumme auf x86 zu setzen

Anzahl der Antworten 4 Antworten
Haben Sie einen Vektor, der die drei (oder vier) schwimmt. Was ist der Schnellste Weg, die Summe? Ist SSE (movaps, mischen, hinzufügen, movd) immer schneller als x87? Sind die horizontal-hinzufügen von Anweisungen, die in SSE4.2 lohnt sich

Warum ist SSE skalar sqrt (x) langsamer als rsqrt (x) * x?

Anzahl der Antworten 5 Antworten
Ich habe Profilerstellung einige unserer Kern-Mathematik auf einem Intel Core Duo, und während der Blick auf verschiedene Ansätze der Wurzel habe ich bemerkt etwas merkwürdiges: mit dem SSE-Skalar-Operationen, ist es schneller zu nehmen, die reziproke Wurzel und

Erste Schritte mit SSE

Anzahl der Antworten 3 Antworten
Ich will lernen, mehr über die Verwendung der SSE. Welche Möglichkeiten gibt es, um zu lernen, neben den offensichtlichen Lesen der Die Intel® 64 und IA-32 Architectures Software Developer ' s Manuals? Hauptsächlich bin ich interessiert an

So verschieben Sie 128-Bit-Immediate in XMM-Register

Anzahl der Antworten 5 Antworten
Gibt es schon eine Frage auf diese, aber es war geschlossen als "mehrdeutig" also, ich bin eine neue zu öffnen - ich habe die Antwort gefunden, vielleicht hilft es anderen auch. Die Frage ist: wie schreibt man

Mitglieder von __m128 per Index erhalten?

Anzahl der Antworten 4 Antworten
Habe ich einige code, ursprünglich hat mir jemand die Arbeit mit MSVC, und ich bin versucht, es zu erhalten zu arbeiten auf Clang. Hier ist die Funktion, dass ich Probleme habe mit: float vectorGetByIndex( __m128 V, unsigned

Die Verwendung von AVX-Intrinsics anstelle von SSE verbessert die Geschwindigkeit nicht - warum?

Anzahl der Antworten 4 Antworten
Habe ich mit der Intel SSE-Interna seit geraumer Zeit mit einer guten Leistung gewinnt. Daher habe ich erwartet, dass die AVX-Interna zu weiteren speed-up-meine Programme. Dies war leider nicht der Fall bis jetzt. Wahrscheinlich mache ich einen