|
SwissArmyDruid posted:Infinity Fabric != Interposer. Infinity Fabric is, in effect HyperTransport 4.0, and a technology that AMD acquired when they purchased Seamicro a few years back.
|
# ¿ May 24, 2017 14:51 |
|
|
# ¿ Apr 26, 2024 18:02 |
|
AMD has been cracking x86 instructions into RISC-like micro-ops since the K5. Dave Christie covers the design decisions behind this in his IEEE Micro paper about the design of the K5. If you're interested in some of the history that led them to these decisions, check out Mike Johnson's book on superscalar microarchitecture design. It's basically his Ph.D. dissertation, but it's a very good from-the-ground-up discussion of designing a superscalar (and subsequently out-of-order) microprocessor, and why you would make this decision. That book has an appendix that discusses how to make an out-of-order 386 without micro-ops -- work he did while working at AMD (where he was also an architect on the Am29000 line of RISC processors, which are brought up in Dave Christie's article). Mike went on to be the lead architect on K5, so one could consider the K5 article a logical conclusion to superscalar design book.
|
# ¿ May 29, 2017 07:25 |
|
I'm not sure what order the processors in Windows are enumerated, but you could also try booting Windows with fewer active cores. Having not tried this on a Bulldozer-class part, I'm not sure if it will disable the second core in the CUs first, or if it will start disabling entire CUs first. If you really care about reducing inconsistency and noise, you're probably better off setting affinity on the applications you care about and then maybe bumping their priority to prevent other things from being scheduled on those logical cores. A study from Lawrence Livermore National Lab showed that leaving SMT enabled on high-performance computing systems could be beneficial. You keep your application's threads assigned to the main logical cores. The secondary logical cores (the hyperthreads in SMT systems, but one of the two CMT cores in the case of a Bulldozer-class part) would then pick up the slack on system tasks and prevent them from disturbing your main computation. They show that this reduces noise from system tasks and increases consistency in time-to-completion across multiple runs and across multiple nodes in a large cluster.
|
# ¿ Jul 6, 2017 05:09 |
|
Harik posted:On linux you can use CPU isolation. Separate from affinity, isolation is per-cgroup and nothing in that cgroup will be scheduled on it. Maybe that will help? You can look into /proc/cpuinfo to see which core IDs are CMT siblings and then choose to disable one of them. You're likely better off just using taskset to set the affinity for the processes you care about, but if you want an easy way to do things, the CPU hotplug support above works. Setting up isolcpu is, IMO, the most heavyweight solution here.
|
# ¿ Jul 6, 2017 05:20 |
|
Not to nitpick, but I'm pretty sure that's roughly 80 GB/s of peak DRAM bandwidth assuming you're stuffing it with PC3-10600.
|
# ¿ Aug 16, 2017 05:55 |