Jump to: Board index » General » Fusion

CPU utilization never goes above 30%

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

Zeke Faust

  • Posts: 32
  • Joined: Mon Sep 25, 2017 7:46 pm

CPU utilization never goes above 30%

PostFri Jun 04, 2021 7:05 am

I recently upgraded my computer to a 3960x. When I begin previewing a heavy comp, none of the 48 threads go above 20%-30%. I have tried with and without simultaneous branching, which doesn't seem to make a difference.
What am I missing here?
Thanks for any help
Threadripper 3960x
128GB memory
NVIDIA GeForce RTX 3090
Offline

UserNoah

  • Posts: 461
  • Joined: Fri Oct 04, 2019 3:32 pm
  • Location: Germany
  • Real Name: Noah Hähnel

Re: CPU utilization never goes above 30%

PostFri Jun 04, 2021 9:01 am

Yeah, Fusions performance is interesting. I played around a lot with the settings to find what works best. Simultaneous branching on/off. The amount of RAM available. The amount of frames at the same time. Using the GPU or not.
Nothing made huge impacts.
Most tools seem to be multi-threaded. They run on the GPU after all, but are too quick to process to really spike the performance in the task manager. If you set the update interval higher you might see more spikes.

Take everything I say with a grain of salt. I'm not a dev, I'm just speculating based on my experience of using Fusion the last few years and playing around with the settings.

If you use a tool like the vector motion blur and really increase the amount, you will see that Fusion can in theory max out both your GPU and CPU (depending on which is being used).

The thing I find weird is that even rendering several frames at the same time does not seem to improve utilization. And I think this is the main area the devs should look at.

Using the command line mode of the render node through Deadline, I am able to start several render tasks at the same time and this doesn't seem to be an issue, as long as you don't have too many GPU intensive tools like the previously mentioned Vector Motion blur. But that needs to be set to CPU anyway because it will produce artifacts in GPU mode.
Besides VRAM issues, I get more utilization and actually render several frames at the same time.

Using the native render manager, you'll see that it assigns the frames as packages of the specified amount you want to render at the same time, but it doesn't seem to make a difference compared to rendering one at a time. The same with simultaneous branching. Doesn't seem to make an actual impact on my system.

This might be connected to how Fusion schedules the actual rendering of frames. If you render something using the Fusion UI, you can't view any other nodes in a different composition at all. If you're using the render manager, you can theoretically keep working on something else, but you'll have to wait until the render manager is done with the currently assigned frames until Fusion will be able to start rendering on the frames requested by you. If you make changes, again you have to wait on the render manager to finish the currently assigned frames.
Deadline won't be able to start the render node at all when Fusion is running.
Maybe this is a remnant from the time when Fusion needed additional render licenses, so they stop you from opening several processes on the same computer.
But I always found it weird that Fusion is apparently rendering both the interactive requested frames and the final render frames using the same scheduler/process. Just splitting this up could maybe increase utilization.
And that may also be the reason why it doesn't actually render several frames at the same time, because they are still limited by the queue.

One other limiting factor is definitely I/O. Reading and writing to an SSD will dramatically improve performance. But that isn't always a viable option. Especially now with increasing memory costs.
It would probably be better if Fusion would load more initial frames into RAM in sequence so it doesn't have to read and write at the same time.

This is also why I'm not completely convinced about offloading everything to the GPU. Sure it can be faster. But the gain is insignificant if the VRAM management can't keep up. And rendering more frames at the same time is pretty limited with my 8GBs of VRAM on a modern GPU (RTX 3070). In some cases, disabling the GPU completely will render faster.
Offline

Zeke Faust

  • Posts: 32
  • Joined: Mon Sep 25, 2017 7:46 pm

Re: CPU utilization never goes above 30%

PostFri Jun 04, 2021 7:28 pm

Fascinating. I did what you suggested and disabled the GPU. The CPU immediately jumped to over 50%.
I then re-enabled GPU, and the CPU went to 100% (on the graph it looked like it was jumping between 30 and 100).
But throughout all this, the GPU wasn't touched at all, even when it was enabled, never going above 3%.
Threadripper 3960x
128GB memory
NVIDIA GeForce RTX 3090
Offline

UserNoah

  • Posts: 461
  • Joined: Fri Oct 04, 2019 3:32 pm
  • Location: Germany
  • Real Name: Noah Hähnel

Re: CPU utilization never goes above 30%

PostFri Jun 04, 2021 8:09 pm

The task manager is not the best place to see how much your GPU is actually doing. For a time there was an extra graph for cuda operations (probably called OpenCL for AMD?) which showed a little more utilization using Fusion. That makes sense because most often Fusion isn't doing anything 3D but cuda operations. Similar to how resolve will be more visible in the video encode Graph.
But at least on my system the cuda graph vanished.

I once worked at a company where the IT guy wrote a programm that showed overall GPU usage much more detailed than the task manager and almost in realtime. That also showed Fusion using the GPU, compared to the task manager which showed almost nothing.
Most of these operations are so fast though and the time until the next operation starts is too long to really show.

If you have an Nvidia card you should also specify to use cuda instead of using the Auto setting in the GPU preferences. Sometimes Fusion fails to load the correct GPU kernel if it's set to auto and then it takes a few seconds until it falls back to either the CPU or OpenCL, not sure what it does.

Return to Fusion

Who is online

Users browsing this forum: Google [Bot] and 44 guests