Hello all my Unreal Wizards, I am in need of some serious help, please and thank you,
For 2 months I have had a Threadripper 7980x 64 core 128 thread workstation, with dual A6000 and 256 Ram. this workstation should be able to handle anything Unreal and beyond.
But when dealing with anything in the engine requiring multiple threads, it defaults to 4 cores and compiling agents.
I have already gone into the BaseEngine.ini and adjusted the;
-WorkerProcessPriority=1
-NumUnusedShaderCompilingThreads=4
-NumUnusedShaderCompilingThreadsDuringGame=4
-ShaderCompilingThreadsDuringGame=4
-ShaderCompilerCoreCountThreshold=12
-PercentageUnusedShaderCopilingThreads=0
The program needs to be written specifically to use all cores. Not all parts of the engine can be on separate threads. It’s not like a bucket renderer that uses all system cores.
You can use FRunnable to create your own thread functions for your game.
It’s probably:
1 for game logic
1 core can be for physics
1 for audio
1 rendering preparations
More cores can be used during lightmap calculations (swarm) or shader compilation.
Most other process rely on the main game thread so there is a limit to decoupling that can be done (that’s why you can’t for instance spawn actors in a FRunnable thread directly).
The new mass entity system can use more cores but you need to specifically program for it to leverage it’s strong points.
I am not even at the point of packaging or running a game. this issue is purely for the editor compiling shaders
It has taken me 20 minutes to open a fresh project on this threadripper as it tries to compile 4500 shaders
my laptop which is significantly less powerful, uses all its cores and compiled 20,000 shaders in that same time with a project I was working on and swapped over to it
It uses all of my cores on a 5975WX, so if you only see four cores used, something’s the matter.
It may be the Windows scheduler not being happy with 128 threads – which version of Windows are you using?
Also, tried turning off hyper-threading in the UEFI/BIOS?