• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers

Premiere Pro and Multicore Support

Adobe Employee ,
Jun 11, 2019 Jun 11, 2019

Copy link to clipboard


People who say that Premiere Pro does not support multi-cores don't understand how multi-core support works. What you're asking about is optimization for high core counts, which is different.


Premiere uses multiple cores. Cores are independent CPU processors that can be assigned tasks. Premiere breaks this down with tasks for decoding codecs, applying CPU-driven effects, encoding to specific codecs, etc. Some of these threads may use a core more than other cores, and right now, an "optimal" number of cores is somewhere around the 8-12 mark.


The best analogy I can provide is to picture the checkout counters at a supermarket. Each checker is a "core". If there are a lot of customers, all the checkers are busy and lines form for each checker. However, if one customer has a full cart, still only one checker is used, and that lane slows down while other checkers sit empty.


To do optimization for high core counts, a task has to be split in an intelligent way so that multiple cores can tackle it. In my above analogy, it's like splitting up that big cart of groceries into 2 or more carts, so that more checkers can tackle ringing up the groceries.


How that split happens, and recombining the data afterwards, is something that coders need to tackle on a task-by-task basis. It's not simple nor easy.


Imagine my above example - it complicates how to manage the groceries - more carts means managing that. (ever tried to push two carts through a supermarket?) How are the groceries recombined into one cart after the checker is done? How to manage paying for the groceries when 4 checkers are ringing them up simultaneously?


It may sound silly, but these are real problems when you split up a task like video rendering. Do you send different frames to different cores? How do you ensure they're recombined in the correct order? How much time is wasted splitting the frames up to different cores? There are some tools that devs can use to automate some of this, but then there's a danger of making high core counts mandatory for optimal performance.


Some workflows started with high-core-count optimization in Premiere Pro, and moved to the GPU for better performance. RED workflows are a great example of this. The RED decoder would spin up multiple parallel processes and would use 16, 18, 24 cores as needed to decode/debayer RED r3d media. You can still see this by setting a RED project to "Software Only" in Project settings. But the GPU effectively has hundreds of cores, and does this task better.


So far, the Premiere Pro team has focused on high-core-count optimization for the GPU, and you'll see this in 13.1, particularly in how it renders to formats like H.264, HEVC, and more. Multiple GPUs are used more efficiently, including eGPUs, and there are speed gains in 13.1 because of it.


Now that high core counts are coming to the Mac platform, plus dedicated hardware for decoding ProRes files, we will have to wait and see what optimizations are in store for Premiere Pro on the Mac.


By Karl Soulé

Reprinted by permission







Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines