You are using temporal effects/ features (Rotobrush) that force AE to revert to single threaded processing and you are outputting to a clip format that requires strictly linear progression. You may see better performance by using image sequences, but the part about the effects sticks. Beyond that there's not much to say - never ever will you see full 100% usage on everything. AE takes what it needs and what fits its logic, but nor less and no more. And your RAM preview proibably simply renders faster, because it's at reduced resolution or uses the GPU, which will also not be used for final rendering. Everything perfectly normal. Just get used to it and plan your projects accordingly.
Thanks for the reply Mylenium,
You are using temporal effects/ features (Rotobrush) that force AE to revert to single threaded processing
I didn't realize Rotobrush was a single threaded process. If that's the case, would this suggest that my bottleneck is that I am only using one core for the Rotobrush and the rest of the cores are waiting for that one to finish? If that's the case that might explain why my GPU keeps bouncing around so much.
... you are outputting to a clip format that requires strictly linear progression.
Does that mean AE will only render one frame at a time regardless of whether the "render multiple frames simultaneously" box is checked?
This makes me want to go run some more render tests without using the Rotobrush and using image sequences for an output to see if that changes how the resources are used. I'll try that tonight when I get home. Any other advice in the mean time is certainly welcome though.
Okay, so I ran some tests. First. I tried rendering a 6 second scene that has 6 layers of 1080i footage, keylight, and some corner pinning on 5 of the layers.... as well as a wire removal (all pretty simple stuff). I then tried exporting it as a JPEG sequence, h.264, and h.264 blu-ray. This produced significantly different results than my Rotobrush test. In each of these exports the processor was used at 95 to 100% of its potential, the SSD's were used to about 25%, and the RAM had to keep dumping every few frames. So in this case it looks like RAM was one of the bigger bottlenecks because it kept running out and having to swap out to the SSD. Do you agree?
I also ran another test with an Element 3D template that used dozens of Element 3D layers, multiple cameras, motion blur, depth of field, and a few other minor effects. I output to both h.264 and h.264 blu-ray for this test. The results here were 50% CPU usage, 40% RAM usage, and GPU usage that was bouncing between 80% and 0% which tells me that the GPU was likely swapping out data from VRAM to the SSD during those drops. Thus, the GPU was the bottleneck for this render. Does this also sound correct to you?
So those two cases were pretty easy to find the bottleneck in which was nice.
I'm still a bit confused with the Rotobrush project though only because my resource monitor shows all 12 cores staying between 50 and 70%. If 11 of the cores are waiting for 1 core to finish its thing with the Rotobrush what is making them work so hard? Is there another resource monitor I can use other than the stock one that comes with Windows that can show me how much each core is being used?
Thanks again for all the help!
1 person found this helpful
Since you don't know the internal thread/ handles allocation, you have no way of verifying whether something works as it should or not. Digging so deep would require a debug build with traceable memory hooks. Simply accept that there will always be such situations in AE - more often than you may think at first. Any temporal operation from time-remapping to time effects to exprerssions with valueAtTime() will delay rendering performance or cause MP rendering to be turned off. As for Rotobrush - the actual build of the underlying vector fields is threaded, but the analysis still needs to progress linearly, hence you may see the performnce spiking arbitrarily.
Thanks for all the really helpful and informative responses Mylenium! Even though I can't "see" the bottleneck when using temporal effects I can at least now assume that it is likely the fact that only a single processor is being used that is slowing things down. Looks like it's time to get back into overclocking .
That's about it for me. I've learned a ton in just a day. Thanks again for all the help!