Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Ben1l

macrumors regular
Original poster
Nov 30, 2006
248
0
I have the Mac Pro.

When I render a sequence in FCPX it only uses about 1/10th of the processor capacity. Is there any way to instruct FCP to use more of the processor capacity and thus speed up render times?
 

joema2

macrumors 68000
Sep 3, 2013
1,645
864
In my experience FCP X is heavily multi-threaded and often uses all available CPU cores. FCP is somewhat CPU render-oriented, vs Premiere Pro which executes many effects in the GPU. You can see this in FCP by applying almost any effect and seeing render bars on the timeline. However FCP is very good at background rendering -- you can generally proceed with further work while it runs.

You can't directly control the amount of CPU resources FCP uses. If you aren't seeing fairly high CPU utilization during render operations, it is blocked on another resource -- either waiting on disk, on GPU or a synchronization signal from another thread.

On higher end products like video editors, the software designer's goal is use multiple threads and parallelism wherever possible. However some code paths require serialization, meaning only one thread can run. The goal is minimize these regions, and in my experience FCP X does a good job of that.

You can observe your system with the built-in Activity Monitor, however I usually use iStat Menus, which is easy and very informative. It makes CPU, GPU, memory, network, and disk activity constantly available from the menu bar.

The additional CPU cores of a Mac Pro are generally very useful in FCP X. I would have a 12-core machine if I could afford it.
 

Ben1l

macrumors regular
Original poster
Nov 30, 2006
248
0
I have the new Mac Pro (trash can) 3.5ghz hex core, running the latest version of FCXP on OSX 10.9.3

I have istat pro installed which monitors the processor activity. When I do something like transcode a video in Quicktime the Processor activity goes of the chart. When I get to the end of a FCPX project and apply a filter, for example, then render the sequence, the processor activity hardly raises at all.

It just feels like there should be a way to enable FCPX to use max system resources in this kind of situation, so I don't have to wait for 45 mins for a sequence to gently render away...
 

hugodrax

macrumors 65816
Jul 15, 2007
1,219
610
Probably means you overbought HW for your requirements.

Not sure what kind material you are editing.
 

0x2102

macrumors member
Feb 1, 2014
77
23
...When I get to the end of a FCPX project and apply a filter, for example, then render the sequence, the processor activity hardly raises at all.
That's when your dual GPU's kick in and take over since the CPU is way too slow for some of those filters.
 

joema2

macrumors 68000
Sep 3, 2013
1,645
864
...When I get to the end of a FCPX project and apply a filter, for example, then render the sequence, the processor activity hardly raises at all...It just feels like there should be a way to enable FCPX to use max system resources in this kind of situation, so I don't have to wait for 45 mins for a sequence to gently render away...

As already said, it might be GPU bound. What does iStat say about GPU activity vs CPU vs disk during this phase? E.g, iStat will show the GPU frames per second and processor utilization.

Also iStat will show each core individually. If you just look at the top-level aggregate CPU, it's not that revealing. During the slow phase, is just one core active, or every other one, or all of them at 20% or what?

Just because the CPU activity is low doesn't mean some other subsystem isn't working hard, or potentially causing a bottleneck. E.g, a library file or external media file on a slow external drive.

If all needed media is on fast storage, and the main subsystems (CPU, GPU, disk) are fairly low, FCP X may be in a serializable code section where multiple threads cannot run concurrently. Even a small % of serializable code will cap multi-core scaling, as described by Amdahl's Law: http://en.wikipedia.org/wiki/Amdahl's_law

I rarely see that in FCP X; it seems generally well written from a multi-core standpoint. However this may vary based on the exact codec and filter you are using.
 

Prince134

macrumors 6502
Aug 17, 2010
338
153
Ditto. The d700s are handling the filters.

All 4.1 and 5.1 users can achieve what the nMP can for the FCPX.
It's cheaper and easier than what you thought.

Please read
https://forums.macrumors.com/threads/1732849/

(versus Nvidia cards) Dual HD7970 GPUs make huge difference since FCPX 10.1 updated with strong OpenCL support. In my experience, while using FCPX editing, dual CPU makes minor difference from single CPU if you have got the dual HD 7970s.
 

pertusis1

macrumors 6502
Jul 25, 2010
455
161
Texas
All 4.1 and 5.1 users can achieve what the nMP can for the FCPX.
It's cheaper and easier than what you thought.

Please read
https://forums.macrumors.com/threads/1732849/

(versus Nvidia cards) Dual HD7970 GPUs make huge difference since FCPX 10.1 updated with strong OpenCL support. In my experience, while using FCPX editing, dual CPU makes minor difference from single CPU if you have got the dual HD 7970s.

Indeed. I actually picked up a single 7970 and plunked it in my 5,1. It was a HUGE performance boost over the 5770, and my computer is now held back by a hard drive bottleneck. For FCPX users with a cMP, I would definitely recommend the 7970. I can't really directly compare it with other similar cards (e.g. 7950), but it's quiet and very fast. It's not bad with games (Civ 5, Starcraft 2), though that's not what I bought it for.

I'm still agonizing on what to do about my HD setup. Very tempted by the XP941, but can't quite justify the cost yet.
 

chfilm

macrumors 68040
Nov 15, 2012
3,305
1,987
Berlin
I hear you... Recently I had to edit some noisy smartphone cam footage in fcpx and purchased an extra neat video license for fcp even though I already had one for afx, but it wanted to avoid the extra render steps and thought (since it said something on the website) that neat video would run on the gpu in fcp x and would fly therefor. Disappointingly, once I applied be neat video filter on my timeline, I see the same results as you do, CPU utilization about 25%-50% (on all threads) and the export took twice as long as in after effects.
The neat video benchmark revealed that it's actually faster, without gpu support turned on-just great.

Neat video support said:
"Do you use Multiprocessing in AE? That feature can spawn
rendering processes and consume all available CPU (and GPU if it
is used by the render). That is actually the only difference
between AE and FCPX that may affect the way Neat Video itself
works (there may be other differences inside AE and FCPX that
affect how those applications themselves work (slow or fast)
during rendering).In case of enabled AE Multiprocessing, several instances of Neat
Video may be rendering in parallel. Compared with that, only one
instance is active in FCPX "

Very frustrating since indeed, after effects CPU utilization was at 100% and it just chopped through the video in no time.

I guess this leaves some insight to how fcp x works regarding multi processing!
 

joema2

macrumors 68000
Sep 3, 2013
1,645
864
...Neat video support said:....In case of enabled AE Multiprocessing, several instances of Neat Video may be rendering in parallel. Compared with that, only one instance is active in FCPX "...I guess this leaves some insight to how fcp x works regarding multi processing!

Multiprocessing means Neat spawns several executable processes (on AE), each visible as a line in Activity Monitor. Each process can have one or more threads. Each thread is like a lightweight process and has access to all resources within that process. Typically threads are scheduled and run asynchronously, just like processes.

It is generally more efficient to use a multithreaded single process than multiple processes which then must share data via shared memory or other mechanism.

However in Mac OS X there are several ways to spawn threads. Some methods cause them to run cooperatively, so one thread must explicitly yield control to other threads within that process. This method may not scale as well. Other ways spawn threads which are preemptively scheduled and generally scale better.

If Neat video is not running efficiently on Mac OS X, that is probably their fault. If they run a single multithreaded process and those threads are not effectively harnessing the CPU resources -- they wrote the code, and they decided how to run it. There is nothing which prevents them from running multiple processes on Mac OS X or making their threading more efficient.
 

Prince134

macrumors 6502
Aug 17, 2010
338
153
Indeed. I actually picked up a single 7970 and plunked it in my 5,1. It was a HUGE performance boost over the 5770, and my computer is now held back by a hard drive bottleneck. For FCPX users with a cMP, I would definitely recommend the 7970. I can't really directly compare it with other similar cards (e.g. 7950), but it's quiet and very fast. It's not bad with games (Civ 5, Starcraft 2), though that's not what I bought it for.

I'm still agonizing on what to do about my HD setup. Very tempted by the XP941, but can't quite justify the cost yet.

To maximize performance, put another HD 7970 at $150, down clock it you will be fine.

Save that pcie slot to put a kt4004 USB3 card for external 5Gb speed linkage.

Make two identical SSD as raid 0 on SATA ports, you will be satisfied with your mac pro as new born machine.
 

chfilm

macrumors 68040
Nov 15, 2012
3,305
1,987
Berlin
Multiprocessing means Neat spawns several executable processes (on AE), each visible as a line in Activity Monitor. Each process can have one or more threads. Each thread is like a lightweight process and has access to all resources within that process. Typically threads are scheduled and run asynchronously, just like processes.

It is generally more efficient to use a multithreaded single process than multiple processes which then must share data via shared memory or other mechanism.

However in Mac OS X there are several ways to spawn threads. Some methods cause them to run cooperatively, so one thread must explicitly yield control to other threads within that process. This method may not scale as well. Other ways spawn threads which are preemptively scheduled and generally scale better.

If Neat video is not running efficiently on Mac OS X, that is probably their fault. If they run a single multithreaded process and those threads are not effectively harnessing the CPU resources -- they wrote the code, and they decided how to run it. There is nothing which prevents them from running multiple processes on Mac OS X or making their threading more efficient.

wait you're mixing up osx and FCP X here imo.
It runs fine on after effects on osx, but slow on fcp x on osx...
 

joema2

macrumors 68000
Sep 3, 2013
1,645
864
wait you're mixing up osx and FCP X here imo.
It runs fine on after effects on osx, but slow on fcp x on osx...

Thanks for that correction.

Neat is responsible for their own software architecture and they are able to make an efficient multithreaded task if they wanted to. A multithreaded process (a plug-in in this case) can potentially utilize all available CPU resources. The OS dispatches one runnable thread per core.

However it appears Neat is not thread efficient. AE has a feature that compensates for this by spawning multiple AE processes, each of which works on its own frame, including the Neat plugin. The results are then consolidated by an AE background process. Thus no matter how inefficient the Neat plugin is, AE mitigates this by spawning multiple processes.

FCP X does not do that, rather expects each plugin to be well written. They could theoretically do what AE does but it's sort of a clunky method that's only useful for certain things.

Recent versions of Neat have added OpenCL acceleration, so if that is working right I'd expect it to be significantly faster on a Mac Pro with a powerful video card.
 

chfilm

macrumors 68040
Nov 15, 2012
3,305
1,987
Berlin
Recent versions of Neat have added OpenCL acceleration, so if that is working right I'd expect it to be significantly faster on a Mac Pro with a powerful video card.

That's what I thought!
Turns out it's actually even SLOWER with GPU support turned on.

Support says: "We did not implement it (openCL) specifically for nMP. It is implemented in general for all Macs. For example, older MacPros had slow
CPUs but users could install a very fast new GPU and then the
GPU did all the work for Neat Video.

Also, new MacPro is a relatively new product and we do
currently continue to optimize our GPU code for it.
Hopefully it will run faster on its two D700 in the newer versions."

and:

"The figures seems to support that, the CPU is currently faster
than any of the GPUs. Please note however that the GPU tend to
be more efficient when the frame size is larger. Try to run some
full HD clip or even something larger. It is quite likely that
the GPU will then win in Optimize ."
 

horacio adame

macrumors newbie
Apr 4, 2013
2
0
720p Vs 1080p

When I SHARE to 1080p I only get 25% Core use, but when I share the same proyect to 720p I get 80% Core use!

What that means? there is a problem with the FCPX? o what?

I have MAC PRO 2010 12-core 2.93MHz, 48 Gb Ram, SAPHIRE HD7950 with 3Gb Ram
 

VirtualRain

macrumors 603
Aug 1, 2008
6,304
118
Vancouver, BC
Why doesn't FCPX use more processor power?

I have the Mac Pro.

When I render a sequence in FCPX it only uses about 1/10th of the processor capacity. Is there any way to instruct FCP to use more of the processor capacity and thus speed up render times?

Sorry to butt in here (particularly since I don't work on much video these days), but I find it curious no one has asked (or seems to care) about what "render a sequence" in FCPX means.

Isn't there a huge difference between crossfading a basic 480p clip vs rendering a 4K multi-cam sequence with effect transitions, or filters, etc? In other words, is it possible that maybe what you're doing isn't very demanding? Or put another way, how much compute power you need or use depends specifically on what you're doing?
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.