CPU and GPU usage

Hello, I would like to look into the CPU and GPU utilization metrics.

Right now I am working with flex solver and as the number of particles increases my FPS decreases (expectedly), but neither the CPU nor the graphics card are 100% loaded

To be exact, the processor is loaded at 6-10% and the video card at 30-50%. And the situation with the processor worries me most of all, as flex solver should use the processor precisely

Is this a normal behavior for TD or is there something I need to fix?

My TD version is 2022.32120
CPU i7-12700KF
GPU RTX 4090

1 Like

TouchDesigner’s main thread is single threaded so it will not use all your CPU cores. You have 10 real cores, so you can expect a fully utilized CPU to show up as about ~10% CPU usage in the Windows task manager.

Thanks for the reply Ben, it clears things up for me. But would like to understand if there is anything I can do to increase the particle count? For example, can I somehow use two TDs in parallel each of which will calculate its flex solver on a different core than the other? Or some other techniques…

If its your GPU usage that is the limit, then try simplifying the rendering, for example turn down Anti-Aliasing on the Render TOP, or turn off shadows on lights if you are using them. If you do not need transparency, turn that off. It is specific to your project file, I can’t tell what is taking GPU resources with the project file.

Ben, thanks, I clearly understand that about using the GPU.
Now I’m wondering if I can use two copies of TD with flex solver on different CPU cores to merge them?
I’ve seen a similar question somewhere here on the forum and the answer was something like this: you don’t need to set the core affinity for the different copies of TD, as it will do it itself
But when I run two copies of TD with flex solver in each, I see that the same cores are used as when I run one copy of TD (one copy uses threads 8 and 10, and two copies use threads 8 and 10)

1 Like

Please let me know if I’m trying something extraordinary and it’s impossible to answer my question

Now I’m wondering if I can use two copies of TD with flex solver on different CPU cores to merge them?

Are the simulations intended to be completely independent or interact with one another? If they’re supposed to be dependent then unfortunately I don’t think this is possible, or at least not in a way that would give you any real benefit.

Okay, I get it. But what about the case if I don’t need two flex solvers to interact and I want them to be computed on different CPU cores? My goal with flex solver for now is to maximise the number of particles on the screen, even if they don’t all interact with each other

You can then parallelize things with Engine COMP. Each instance can run on a different core afaik.