Announcement

Collapse
No announcement yet.

Intel's Latest CPU Microcode Update Isn't All That Scary

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by stormcrow View Post
    The comparison is more a false equivalence. Spectre isn't going to kill or cause nerve damage.
    I don’t know man, have you seen some of those benchmarks? Performance gets crippled. Could cause some damage

    Comment


    • #12
      I'm not too worried about it.

      Sent from my TI-99/4A.

      Comment


      • #13
        Originally posted by stormcrow View Post
        Some cases suggest perhaps otherwise: https://travisdowns.github.io/blog/2...-zero-opt.html

        It all depends on what you're doing.
        Wow, that's a little nuts. So, they basically just had a micro-optimization for filling memory with 0's that this disables, presumably because timing-based attacks can use that to determine (to a limited degree) the contents of what's being written.

        No, I wouldn't expect that to move the needle on the geomean. Maybe a handful of benchmarks could show a measurable difference, perhaps in high-core-count scenarios where there's a lot of L3 cache pressure.

        Comment


        • #14
          Originally posted by coder View Post
          Wow, that's a little nuts. So, they basically just had a micro-optimization for filling memory with 0's that this disables, presumably because timing-based attacks can use that to determine (to a limited degree) the contents of what's being written.

          No, I wouldn't expect that to move the needle on the geomean. Maybe a handful of benchmarks could show a measurable difference, perhaps in high-core-count scenarios where there's a lot of L3 cache pressure.
          Maybe using clang to compile chrome or the kernel could be a good test. You're right using the mean could be like boiling the frog.

          Comment


          • #15
            Originally posted by Jabberwocky View Post

            Maybe using clang to compile chrome or the kernel could be a good test. You're right using the mean could be like boiling the frog.
            Poor frog.

            More seriously, I doubt you'd want to compile Chromium as a benchmark, it seems to take hours even on a high end machine. I'm not sure what would be a good test in this case other than array calculations with many objects filled with zeros. But then you'd just condense it down to sparse operations on non-zero ops wouldn't you?
            Last edited by stormcrow; 23 June 2021, 11:05 AM. Reason: clarity on the objects, must have clear objects you know!

            Comment


            • #16
              Originally posted by stormcrow View Post
              I'm not sure what would be a good test in this case other than array calculations with many objects filled with zeros. But then you'd just condense it down to sparse operations on non-zero ops wouldn't you?
              Software rendering and imaging benchmarks, perhaps? Could involve lots of buffer-clears.

              My first thought was of calloc(), so maybe some fairly light-weight text processing that uses it. It'd have to be multithreaded or otherwise scale up enough to really hit L3, though.

              Comment


              • #17
                Originally posted by coder View Post
                Software rendering and imaging benchmarks, perhaps? Could involve lots of buffer-clears.

                My first thought was of calloc(), so maybe some fairly light-weight text processing that uses it. It'd have to be multithreaded or otherwise scale up enough to really hit L3, though.
                calloc should be exactly the thing that is not affected. The optimization only kicked in when overwriting zero with zero, which calloc can usually avoid.

                Comment


                • #18
                  Originally posted by stormcrow View Post

                  Poor frog.

                  More seriously, I doubt you'd want to compile Chromium as a benchmark, it seems to take hours even on a high end machine.
                  Chromium compiliation time takes ~60 minutes on a 5950x and ~90 minutes on a i9 10900k. High-end is subjective but I agree with you here. I suspect it would take 2.1-2.3 hours on my 2700x.

                  IIRC the last time I compiled a browser or a kernel, excluding SBC-kernels, was before chrome/chromium existed. I've been neglecting the passion I had (even called chrome by mistake lol).

                  I'm not sure what would be a good test in this case other than array calculations with many objects filled with zeros. But then you'd just condense it down to sparse operations on non-zero ops wouldn't you?
                  If I had two identical high performance Intel systems, one with old microcode (like perpetually high) and another identical one with latest microcode... only then would be motivated to test it myself. I sold my old i7 and the only Intel chips I have at the moment is a few low performance i3 chips. I wonder how many people still have chips with old microcode, it could be very valuable one day. There are no large companies that have properly documented performance differences so it's gong to be something for the history books.

                  I found the title very funny: "Intel's Latest CPU Microcode Update Isn't All That Scary". The lecturers I knew would have failed you if you said something like that. It's not because scary is not a technical word, but because basically impossible* to formulate that type of conclusion on a blackbox system.

                  * Breaking the x86 Instruction Set https://youtu.be/KrksBdWcZgQ (this was before spectre/meltdown) 🤣

                  The future generations of scientifically educated developers will probably laugh when they study this era of hardware and firmware. There's a lot of study material lying around: https://www.anandtech.com/show/15962...b-of-ip-leaked I wonder how many years or decades it will take before it becomes part of computer science. Hopefully part of it will make it into educational entities. It's important to learn from the mistakes of others.

                  Comment


                  • #19
                    Originally posted by archkde View Post
                    The optimization only kicked in when overwriting zero with zero,
                    Wait, so does it apply to overwriting anything with the same value? That shouldn't be too hard -- just don't set the dirty bit, if the cacheline contents didn't actually change.

                    Comment


                    • #20
                      Can we really say whether it is scary or not ? Is it not closed source or did I miss something ? In my books if no one can read the code it defaults to scary until proven otherwise.

                      Comment

                      Working...
                      X