Suchergebnisse für Anfrage "memory-alignment"
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) { ...
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 ...
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) { ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 -> ...