pot 🦑 ∩ owlripperBSD
Відкрити в Telegram
200
Підписники
Немає даних24 години
+37 днів
+1130 днів
Архів дописів
Repost from N/a
L'alignment è molto importante per la vector unit, infatti per eseguire istruzioni SIMD tramite intrinsics di AVX è conveniente che i dati siano allineati, ovvero che l'indirizzo di memoria del primo sia multiplo di 32 (per AVX2), che è proprio la size in byte dei suoi registri.
Avere i dati allineati permette di fare operazioni di load e store in maniera più efficiente, sfruttando le cache line al massimo (che sarebbero i blocchetti da 32 byte allineati in memoria, delimitati dalle linee orizzontali nere nell'immagine).
Nell'esempio vediamo il vettore degli sbuneckoni felici che è aligned, visto che parte dall'indirizzo 0x00FFA000 (divisibile per 32).
Se si prova invece ad applicare aligned store e load per il vettore Sburreck, che non è aligned (l'indirizzo di partenza non è divisibile per 32), si andrà incontro a undefined behavior.
E niente, ho fatto tutto il post solo perché volevo fare il meme con Sburreck
Spectral_Theory_and_Quantum_Mechanics_With_an_Introduction_by_Valter.pdf4.39 MB
