Why doesn't FCPX use more processor power?

Discussion in 'Mac Pro' started by Ben1l, Jun 20, 2014.

  1. Ben1l macrumors regular

    Joined:
    Nov 30, 2006
    #1
    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?
     
  2. simsaladimbamba

    Joined:
    Nov 28, 2010
    Location:
    located
    #2
    What exact Mac Pro do you have, running what exact OS X and FCP X version?
    And what are your timeline and clip settings?
     
  3. joema2 macrumors 65816

    joema2

    Joined:
    Sep 3, 2013
    #3
    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.
     
  4. Ben1l thread starter macrumors regular

    Joined:
    Nov 30, 2006
    #4
    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...
     
  5. hugodrax macrumors 6502a

    Joined:
    Jul 15, 2007
    #5
    Probably means you overbought HW for your requirements.

    Not sure what kind material you are editing.
     
  6. 0x2102 macrumors member

    Joined:
    Feb 1, 2014
    #6
    That's when your dual GPU's kick in and take over since the CPU is way too slow for some of those filters.
     
  7. joema2 macrumors 65816

    joema2

    Joined:
    Sep 3, 2013
    #7
    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.
     
  8. pertusis1 macrumors 6502

    Joined:
    Jul 25, 2010
    Location:
    Texas
    #8
    Ditto. The d700s are handling the filters.
     
  9. Prince134 macrumors 6502

    Joined:
    Aug 17, 2010
    #9
    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
    http://forums.macrumors.com/showthread.php?t=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.
     
  10. pertusis1 macrumors 6502

    Joined:
    Jul 25, 2010
    Location:
    Texas
    #10
    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.
     
  11. chfilm macrumors 65816

    chfilm

    Joined:
    Nov 15, 2012
    Location:
    Germany
    #11
    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!
     
  12. joema2 macrumors 65816

    joema2

    Joined:
    Sep 3, 2013
    #12
    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.
     
  13. Prince134 macrumors 6502

    Joined:
    Aug 17, 2010
    #13
    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.
     
  14. chfilm macrumors 65816

    chfilm

    Joined:
    Nov 15, 2012
    Location:
    Germany
    #14
    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...
     
  15. joema2 macrumors 65816

    joema2

    Joined:
    Sep 3, 2013
    #15
    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.
     
  16. chfilm macrumors 65816

    chfilm

    Joined:
    Nov 15, 2012
    Location:
    Germany
    #16
    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 ."
     
  17. horacio adame macrumors newbie

    Joined:
    Apr 4, 2013
    #17
    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
     
  18. VirtualRain, Dec 7, 2014
    Last edited: Dec 7, 2014

    VirtualRain macrumors 603

    VirtualRain

    Joined:
    Aug 1, 2008
    Location:
    Vancouver, BC
    #18
    Why doesn't FCPX use more processor power?

    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?
     

Share This Page