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)