What is NUMA? | Level One Techs

> First, run Powershell as Administrator. > > Threadripper 2950/1950 needs several values for affinity: > CCX1 (core 0-7) [die1] > CCX2 (core 8-15) [die1] > CCX3 (core 16-23) [die2] > CCX4 (core 24-32) [die2] > > Get-Process GTAV | % { $_.ProcessorAffinity=65280 } > > This command will switch process called "GTAV" to only CCX2 just replace GTAV with wahtever. > > Get-Process GTAV | % { $_.ProcessorAffinity=65535 } > > This command will switch a process back to normal affinity. > > The values for core affinity are binary. It is straightforward to calculate -- it's really just Core0 = 1; Core1 = 2; Core2 = 4 etc. > > You can also use task manager to set affinity through the gui and then > > Get-Process GTAV | Select-Object ProcessorAffinity > > which will return the affinity.

********************************** Thanks for watching our videos! If you want more, check us out online at the following places: + Website: http://level1techs.com/ + Forums: http://forum.level1techs.com/ + Store: http://store.level1techs.com/ + Patreon: https://www.patreon.com/level1 + L1 Twitter: https://twitter.com/level1techs + L1 Facebook: https://www.facebook.com/level1techs + L1/PGP Streaming: https://www.twitch.tv/teampgp + Wendell Twitter: https://twitter.com/tekwendell + Ryan Twitter: https://twitter.com/pgpryan + Krista Twitter: https://twitter.com/kreestuh + Business Inquiries/Brand Integrations: [email protected]


This is a companion discussion topic for the original entry at https://level1techs.com/video/what-numa
2 Likes
6 Likes

In my experience, NUMAā€™s that crap on multi-socket DB hosts that causes a memory leak when not configured properly. Stop adding memory and swap to the VM, the DB doesnā€™t really use 60GB of RAM, just configure NUMA.

1 Like

Only negative on these videos is you always mention you can do this or that, but never elaborate. So for the unwashed masses it doesnā€™t help them the much. Other then that its well laid out, maybe a few examples on windows and linux would help people who cant use google. I dont know on the ROI of longer videos like if engagement / watching usually ends early so not sure how well this would pay off in the end.

2 Likes

Really enjoyed this video @wendell
I already know the topic well, but I like seeing this kind of content that skims the surface of the technical abyss. Just giving everyone a taste of what can be done. Dropping bits of info and ideas that might push a few to investigate further for themselves.

I think itā€™s Itā€™s what separates L1 a from a good bit of the rest of the tech review scene. Every odd tech channel can do hardware reviews and news segments. The sort of ā€˜What, When, Whereā€™ content.

But only a few have the ability & wisdom to once in a while climb down from the tall mysterious mountain of technology beyond the clouds and explain how and why things work etc. :slight_smile:

1 Like

This is funny because Ive been attempting to research cpu affinity and game performance when In UMA mode. Iā€™m so happy that L1techs has done a video on it to shed some light here.

What I have noticed is that some games that use anti cheat software, such as Easy Anti-Cheat will prevent you from setting the affinity through the task manager.

I think this is a worthwhile to dig deeper on this topic. Could someone post a link to the powershell examples? I would like to know of permanent ways to set the cpu affinity/thread pin certain applications, hopefully without using 3rd party software.

First, run Powershell as Administrator.

Threadripper 2950/1950 needs several values for affinity:

  • CCX1 (core 0-7) [die1]
  • CCX2 (core 8-15) [die1]
  • CCX3 (core 16-23) [die2]
  • CCX4 (core 24-32) [die2]

Get-Process GTAV | % { $_.ProcessorAffinity=65280 }

This command will switch process called ā€œGTAVā€ to only CCX2 just replace GTAV with wahtever.

Get-Process GTAV | % { $_.ProcessorAffinity=65535 }

This command will switch a process back to normal affinity.

The values for core affinity are binary. It is straightforward to calculate ā€“ itā€™s really just Core0 = 1; Core1 = 2; Core2 = 4 etc.

You can also use task manager to set affinity through the gui and then

Get-Process GTAV | Select-Object ProcessorAffinity

which will return the affinity.

4 Likes

now put this as a demo in the video next time :stuck_out_tongue:

2 Likes

waiting for a good Wendell dance gif to slap together with numa numa

2 Likes

And btw there are taskset and schedtool for setting cpu affinity in linux.

Geez, that L1TF (Foreshadow) thing really affects things with the flushes. This makes waiting a hardware hardened Z399 CPU with Meltdown and Foreshadow fixed that much more important, in case people canā€™t get over the early adopter pains of Threadripper which are still present, and still want a single die for all the cores to lessen the headache of these Nodes.

But full isolation of a NUMA node where a game is limited to a single die while not affecting the hypervisor and host is what Iā€™m genuinely interested in. My single node Xeon is now running into memory/CPU load issues with Crash Bandicoot NST on PC affecting audio capture on the host, and I want to test if isolating it to die 2 on a 2950x with itā€™s local memory and PCI-E access might mitigate that issue, along with running HDMI capture on the host die with a Blackmagic card. (cause that bypasses Looking Glass over infinity fabric)