Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Menacer
Nov 25, 2000
Failed Sega Accessory Ahoy!

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.
Seamicro's technology, which they branded "Freedom Fabric", has nothing to do with Infinity Fabric. The former was essentially a rack-level interconnect that allowed users to virtualize ethernet and storage at the edge of a torus network of individual systems (see e.g. slide 8 and 14).

Adbot
ADBOT LOVES YOU

Menacer
Nov 25, 2000
Failed Sega Accessory Ahoy!
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.

Menacer
Nov 25, 2000
Failed Sega Accessory Ahoy!
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.

Menacer
Nov 25, 2000
Failed Sega Accessory Ahoy!

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?

I'm not sure if there's something like that in windows.
Along the lines of the first paragraph in my previous post, full-on disabling cores (for everyone) in Linux is very easy. Long story short, write 0 into /sys/devices/system/cpu/cpu{#}/online to prevent the kernel from scheduling anything to that core (except for the bootstrap processor, which can't be disabled).

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.

Menacer
Nov 25, 2000
Failed Sega Accessory Ahoy!
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.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply