configuring "unganged memory" in sandybridge

configuring "unganged memory" in sandybridge

Ritratto di balu.r.0212

How does one configure or enable "unganged memory" in sandybridge. By "unganged memory", it implies that each core gets a dedicated memory controller. Assuminig there are dual memory controllers on sandybridge, how do i assign them for two different cores (one-is-to-one fashion).

AMD supports "unganged memory" which can be enabled in BIOS. How to do this for intel family of processors.

5 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di joe-griffin

I have used "numactl" to assign specific memory and processors.

Ritratto di balu.r.0212

Hi Joe.

Thanks for your response.

I am looking for information as to how we can configure the Intel processor chipset/registers so that we can setup "unganged memory".I need to know which processor/chipset registersthat i can play around with in order to ensure that each core gets a dedicated memory controller.

Thanks
Balu

Ritratto di Tim Prince

According to the references I see, "unganged" access is analogous to "NUMA" mode which was not the default on past Intel servers, but typically is default on recent models. It's not normally described in the terms you present; it's true that you want all memory references from a given core to proceed through a single memory controller, as in NUMA mode. Other cores on the same CPU will share that memory controller.
You would need to check which options on data interleaving, if any, are present in your BIOS setup. If there is no such option, you can expect that NUMA mode is in effect.
If you are writing a BIOS, there are BIOS writer's guides for each CPU model which require extraordinary access not granted to the general public.
As other answers hinted, you use thread affinity features to keep a thread attached to a single memory controller in NUMA mode.

Ritratto di joe-griffin

If I turn on NUMA in the BIOS ( which is now often the default ) I use the following to attach memory:

numactl --cpunodebind=1 --membind=1 BINARY_EXECUTABLE_NAME

For certain types of runs, I get about a 15% speedup with that. Your milage may vary.

Accedere per lasciare un commento.