Suchergebnisse für Anfrage "memory-alignment"

10 die antwort

Zugriff auf Strukturelemente mit dem Array-Indexoperator

Lassen Sie uns einen Typ T und eine Struktur mit NUR einheitlichen Elementen vom Typ T haben. struct Foo { T one, T two, T three }; Ich möchte auf folgende Weise darauf zugreifen: struct Foo { T one, T two, T three T &operator [] (int i) { ...

2 die antwort

CUDA-Strukturausrichtung verlangsamt meinen Code (kompilierbares Beispiel)

Ich habe eine Simulation, die die 3D-Vektoren geladener Teilchen berechnet, die sich in einem elektrischen und magnetischen Feld bewegen. Ich habe versucht, dies in CUDA mit dem @ zu beschleunige__align__ specifier, in der Annahme, 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) { ...

TOP-Veröffentlichungen

2 die antwort

edächtniseffiziente KI-Objekte für das Physikspi

Ich erstelle ein Physikspiel in Java mit box2d. Ich schreibe eine AI-Klasse und möchte sicherstellen, dass meine Daten unter Berücksichtigung der Speicherausrichtung so effizient wie möglich gespeichert werden. Die kleinste Zunahme wird ...

6 die antwort

Warum ergibt eine Struktur aus char, short und char (in dieser Reihenfolge) bei der Kompilierung in C ++ mit aktiviertem 4-Byte-Packing eine 6-Byte-Struktur?

Ich dachte, ich hätte verstanden, wie C / C ++ die Ausrichtung von Strukturelementen handhabt. Ich erhalte jedoch merkwürdige Ergebnisse für ein bestimmtes Arrangement in Visual Studio 2008 und 2010. Insbesondere stelle ich fest, dass eine ...

6 die antwort

Auffüllung der Strukturausrichtung, größte Auffüllgröße und Reihenfolge der Strukturelemente

Ich habe etwas über das Auffüllen von Strukturdaten gelernt, da ich herausgefunden habe, dass mein sizeof () -Operator nicht das zurückgibt, was ich erwartet hatte. Entsprechend dem von mir beobachteten Muster werden Strukturelemente mit dem ...

2 die antwort

SSE: nicht ausgerichtetes Laden und Speichern, das die Seitengrenze überschreitet

Ich habe irgendwo gelesen, dass vor dem Ausführen eines nicht ausgerichteten Ladens oder Speicherns neben der Seitengrenze (z. B. mit _mm_loadu_si128 / _mm_storeu_si128 intrinsics) sollte der Code zuerst prüfen, ob der gesamte Vektor (in diesem ...

8 die antwort

Warum die Klassengröße zunimmt, wenn int64_t in int32_t @ geändert wi

n meinem ersten Beispiel habe ich zwei Bitfelder mitint64_t. Wenn ich kompiliere und die Größe der Klasse erhalte, erhalte ich 8. class Test { int64_t first : 40; int64_t second : 24; }; int main() { std::cout << sizeof(Test); // 8 }Aber wenn ...

6 die antwort

Aus einem nicht ausgerichteten uint8_t-Recast als uint32_t-Array lesen - nicht alle Werte abrufen

Ich versuche, ein uint8_t-Array in ein uint32_t-Array umzuwandeln. Wenn ich dies versuche, kann ich jedoch nicht auf alle aufeinander folgenden 4 Bytes zugreifen. Sagen wir, ich habe ein uint8_t-Array mit 8 Bytes. Ich möchte auf Byte 2 -> ...