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! 🙂 👍


Log in to reply