How do I optimize frame loading inside Mocha Pro?

I have 6k footage that is sitting on a very fast PCI SSD that loads each frame almost instantly when clicking through it inside After Effects (with no effect applied). That same exact footage takes about 2 seconds per frame to load when inside Mocha Pro - this is not when any tracking is happening - this is just randomly clicking on a frame. I have a 16GB AMD Radeon Pro W5700X, 16-Core 2019 Mac Pro with 192 GB of RAM. I’m trying to figure out how to optimize Mocha Pro so this will load at least MUCH closer to what After Effects is natively able to do. Both AE and Mocha Pro are using the same fast PCI SSD drive for caching, so that’s not the issue. I’m running the latest version of Mocha Pro 8.0.3.

Throughput I’m seeing - After Effects is reading about 850 MB/sec, and Mocha Pro is about 60 Mb/sec. So, almost 15x slower. It’s easily the biggest bottleneck I’m facing. The frames I’m using are about 120 MB each.

Hi Craig,

I don’t see that card supported on our supported graphics cards and that might be the problem: Boris FX | Supported Graphics Cards

I will ask @martinb if this needs updating or not, but if not that’s probably the issue.

Thank you,
Mary

So, the GPU affects things like loading a frame? I thought the GPU was mainly used for tracking, stabilizing, removal, etc.

But also, speaking of supporting GPUs, is there a reason why Mocha Pro has not been updated to take advantage of the GPUs that come as options with the 2019 Mac Pro?

Hi Craig, what format is the 6K footage?
Is it direct access, like ProRes, or a random access codec like H.264?

They are DPX files.

Ok, so codec read time isn’t much of an issue there.

We can tweak a few things:

  1. If you’re in the plugin, in Mocha Preferences, set the Maximum memory under System to 50%.
  2. In GPU set the following:
    • Set “Amount of Texture RAM to reserve” under GPU preferences to 1024. No higher. This is related to viewport display rather than any specific processing so shouldn’t be too high, but since you’re using 6K shots a little higher is okay.
    • Set the OpenCL device to the Nvidia card rather than Automatic
    • Reboot Mocha

To be clear, is this specifically Mocha Pro Standalone?

I set all the preferences to your suggestion (minus the OpenCL device, which is the AMD Radeon Pro W5700X I mentioned earlier, not the Nvidia card you mentioned)

Unfortunately, it caused an even slower throughput, albeit, not by much. It’s now averaging about 56 Mb/sec.

I had set the texture RAM to reserve at double that, before, and the RAM maximum was set to 60%.

It’s the Mocha Pro After Effects plugin.

Are there plans to optimize for the GPUs in the 2019 Mac Pro?

If you are in the plugin, you will need to reboot After Effects as well to reset the preferences.

What memory allocation do you have set in After Effects?

The biggest issue with getting real-time speed on higher resolution footage is the throughput for the plugin architecture. Since the Mocha UI process is not inside the AE process the allocation of frames can be slower.

It’s not ideal and we’re always trying to improve it. I should say however that general playback will be slower for shots that are 6K+.
Currently, we’re fairly optimized for 4K or lower. That will of course change as 6K-12K becomes more common and we continue to tweak performance. This won’t be isolated to the Mac Pro.

Having said that, you shouldn’t be getting 15x times slower speed. In local tests, I see a general playback speed of about 7-8 frames per second for 6K shots inside the Mocha Pro Adobe Plugin so it surprises me the performance on your Mac Pro is so slow.

My suggestion for the time being is to work in the lower resolution setting (Third or Half) and then switch to Full resolution in AE when you need to render in the timeline.

I did restart After Effects after changing the preferences, but it didn’t make a difference.

My memory allocation for After Effects is 96 GB, and 96 GB for all other applications.

I tried the standalone, and was seeing about 390 MB/sec, which is about 7x faster than the plugin, but still half of what I’m seeing directly in the After Effects timeline. Obviously, the plug-in is far more convenient for working with After Effects, so it’s a matter of choosing between speed and convenience.

While loading the footage as half-res DID speed up the loading of frames (about to what the standalone does at full 6k res) I’m concerned about accuracy, as what I do needs to be as accurate as possible for tracking.

Are there plans to optimize for the GPUs in the 2019 Mac Pro?

You’ll be fine with accuracy at half res. 3K should be more than enough for the planar tracker to get good results, even if you wanted to work in proxies to speed up the throughput. Even quarter res would probably be enough in many instances unless your tracking areas have low detail.

There are plans to optimize across the board, not specifically the AMD cards. We expect there will be some performance improvements coming in the next release in regards to frame processing.

That’s good to hear that it will be accurate enough at half-res until things get more optimized.

I’m sorry that I’m unable to achieve the same throuphput that you are seeing - you would think with my setup, it would be optimal, but something is clearly off and I don’t know how to fix it. The footage is sitting on a PCIe SSD drive where I can see up to 6 GB/sec when things are most optimal, which is partially why this is a little frustrating.

Thank you for all the back and forth. I’m looking forward to when things are more optimized. I’ve worked on 6k footage for the last two shows I’ve worked on, so things seem to be heading in that direction.

Thank you, again.