Penalty bei Abfolge write byte -> read int64?
-
Kann es sein dass es bei aktuellen amd64 CPUs (speziell i7) ne Penalty gibt wenn man ein Byte in den Speicher schreibt und dann unmittelbar darauf nen int64 Lesezugriff macht (der das gerade geschriebene Byte "beinhaltet")?
Bzw. falls jemand ne Seite kennt mit nem Überblick über allgemein diverse Penalties/Performance-Fallen, bitte verlinken! Also ich denke da auch an so Sachen wie false-sharing...
-
hustbaer schrieb:
Kann es sein dass es bei aktuellen amd64 CPUs (speziell i7) ne Penalty gibt wenn man ein Byte in den Speicher schreibt und dann unmittelbar darauf nen int64 Lesezugriff macht (der das gerade geschriebene Byte "beinhaltet")?
Bzw. falls jemand ne Seite kennt mit nem Überblick über allgemein diverse Penalties/Performance-Fallen, bitte verlinken! Also ich denke da auch an so Sachen wie false-sharing...
http://www.agner.org/optimize/ ist i.d.R. nützlich und aktuell - zu deiner Frage ist ein Blick ins microarchitecture.pdf hilfreich (Abschnitt x.12 Store forwarding stalls)
Penalties (typisch):
Sandy Bridge/Ivy Bridge: 12 Takte
Haswell/Broadwell: 10 Takte
Skylake: 11 Takte
Silvermont: 5 Takte
Bulldozer: 25-26 Takte
Ryzen: 6-7 Takte
Bobcat/Jaguar: 4-11 Takte
-
Wow. Danke!