9950X3D and gaming with CachyOS

Hey all,

Just made the switch from Win11 to CachyOS. So far so good. Davinci Resolve Studio 20 and Steam Games run OK.

One thought I had in mind is, on Win11, I was using an app called Process Lasso to force the games to use cores with X3D cache for the best performance. Is there a way in CachyOS to set this up?

I don’t want my games to use random CPU cores, only the ones with X3D for highest FPS. Similarly I want apps like Handbrake to use non-X3D cores.

There is Ferals Gamemode that allows to park cores but it seems to be discouraged so I came here with the same question.

Maybe someone else can answer it: What is the proper way to only use the X3D cores of a dual die CPU like the new AMD Ryzen X3D CPUs?

❯ for cpu in /sys/devices/system/cpu/cpu[0-9]; do
die=$(cat $cpu/topology/die_id)
echo "${cpu##
/} → die_id: $die"
done | sort -V
cpu0 → die_id: 0
cpu1 → die_id: 0
cpu2 → die_id: 0
cpu3 → die_id: 0
cpu4 → die_id: 0
cpu5 → die_id: 0
cpu6 → die_id: 0
cpu7 → die_id: 0
cpu8 → die_id: 1
cpu9 → die_id: 1
cpu10 → die_id: 1
cpu11 → die_id: 1
cpu12 → die_id: 1
cpu13 → die_id: 1
cpu14 → die_id: 1
cpu15 → die_id: 1
cpu16 → die_id: 0
cpu17 → die_id: 0
cpu18 → die_id: 0
cpu19 → die_id: 0
cpu20 → die_id: 0
cpu21 → die_id: 0
cpu22 → die_id: 0
cpu23 → die_id: 0
cpu24 → die_id: 1
cpu25 → die_id: 1
cpu26 → die_id: 1
cpu27 → die_id: 1
cpu28 → die_id: 1
cpu29 → die_id: 1
cpu30 → die_id: 1
cpu31 → die_id: 1

you can use:
taskset -c 0-7,16-23 app

(this will make app use only CCD0 cores with SMT cores too)
for some games it will be even faster to use only taskset -c 0-7 app (only real cores)

of course, if X3D is on CCD0.

Is there any other option than using taskset? I’ve noticed some games won’t run with taskset.

never tried. 0 ideas, but here is what AI tells:

Alternatives to the Linux taskset command for managing CPU affinity and process CPU/core assignment include:

  • numactl: It controls NUMA (Non-Uniform Memory Access) policies, including process binding to CPU sockets and memory nodes. Unlike taskset, it does not change affinity of a running process but is useful for setting affinity at launch considering NUMA topology.
  • cpulimit: While it doesn’t bind processes to specific CPUs, it limits the CPU usage percentage of a process, indirectly controlling CPU load.
  • chrt and nice: These can adjust process scheduling priority rather than affinity and are mentioned as complementary to taskset in tuning CPU resource allocation.
  • Process Governor (Windows-focused but conceptually similar): A Python utility for managing process priorities and CPU/core affinity based on rules.
  • psutil: A Python module that provides interfaces for process and system monitoring including CPU affinity capabilities across platforms including Linux.

buy the way.. in BIOS there should be “gaming mode” option.. or something like this. it will do it’s thing.