02-16-2020, 05:09 PM
(This post was last modified: 02-16-2020, 05:18 PM by super gnu.)
i am in the lovely position of testing tyflow on the new 3990x.
however i note that i get only between 46 and 48% cpu utilisation.. is there a 64 thread limit or something?
edit: hmm.. unextpected (for me) behaviour.. testing the sand castle demo scene.
the scene as it opens uses around 48% cpu.
i thought "maybe if i load it up some more"
so i reduced voxel size.. creating many more particles.
cpu usage during sim now varies wildly, but hovers around 18% most of the time, with the odd peak up to 30% so its using much LESS cpu.
ive got 128gb decent ram and a pcie4 ssd.. so those shouldnt be a bottleneck?
The sand scenes, and all bind scenes in general, rely on OpenCL by default (GPU). Disable OpenCL everywhere and you'll see your CPU usage go up. Beyond that, tyFlow relies on Windows thread scheduling, which I believe has issues past 64 cores.
I have this "issue" too, its is a shame not beeing able to use all the 64threads... while rendering Vray and other stuff I can get fully usage of the 100% is that fixable in some way?
02-28-2020, 04:01 PM
(This post was last modified: 02-28-2020, 04:03 PM by tyFlow.)
"100% CPU usage" is not a good metric for performance. tyFlow uses a dynamic thread scheduler that assigns the optimal number of threads to a task, so you'll see overall usage go up or down depending on what it's calculating. You won't see all 64 used until you start working with many millions of particles.
If you can make a flow with 10 million particles and usage does not go up to 100% during long calculations, let me know.
02-29-2020, 06:09 AM
(This post was last modified: 02-29-2020, 06:10 AM by tyFlow.)
Ah yea it seems like a NUMA issue.
If you go to the Debugging rollout of a tyFlow object, there is a "Print NUMA Info" button you can press, that will print all detected CPU info to the MAXScript listener. See if that reports 64 detected CPUs or not...
If it prints out 64 CPUs detected, then it looks like it's a windows thread scheduling issue. I create threads for each CPU on a machine, and assign (up to) that many simultaneous tasks, however windows does the actual scheduling itself.
It's possible that if windows is throttling CPUs like that, that you'll get worse performance in tyFlow because of it (ie, because tyFlow may create 64 threads, but they're spread across only 32 cores). Try loading up a really slow simulation that uses all 32 cores, and in the tyFlow main settings set max threads to 32 and see if it runs any faster....
Also check the CPU affinity of 3dsmax.exe in the windows task manager and make sure it's assigned to all 64 cores.
same issue here. Actualy when i primt numa info it will print just numa1 all 64 threads but not numa2 at all. Also it seems that v-ray using all 128 threads just fine and 3dsmax bifrost is also using for simulatipn all 128 threads. Thank you
03-07-2020, 03:09 PM
(This post was last modified: 03-07-2020, 03:15 PM by houou.)
Ok I tested what Tyson suggested:
Assign only 32 cores instead of leaving that in auto, is actually faster.
instead of running in 64threads it runs only in 32 but the time got big improovement.
Its the " google drive benchmark for tyflow" and the simulation ( OpenCL off) took
in Auto mode 118 sec.
asigned to 32cores only. 97 sec
Interesting!
Btw is impossible to assign in the Task manager 64cores / 128threads to 3dsmax, they are separated in two groups, and If I activate one group the other goes off. :S
so the best you can do is 32c 32threads in one group.