Adobe After Effects CC 2014 Multi Core PerformanceWritten on October 6, 2015 by Matt Bach
Only about week before this article, we published our findings of how well After Effects 2015 was able to utilize multiple CPU cores. However, one of our readers pointed out that in AE 2015 (13.5) Adobe has removed the "Render Multiple Frames Simultaneously" feature. What this feature does in previous versions of AE is to change how it renders frames. Instead of devoting all the CPU cores to rendering the frames one at a time, it instead allocates one frame to each CPU core and renders as many frames at the same time as there are cores available. This may not seem like a huge deal on paper, but it turns out that having the entire system devoted to rendering one frame at a time is horribly inefficient and you can see a huge increase in performance (especially with higher core count systems) by using this feature.
Even though the results from our AE 2015 article are 100% accurate for that version of After Effects, we wanted to test AE 2014 (13.2) to see how well AE was able to utilize multiple CPU cores before this feature was removed. From the wording on Adobe's blog post, it sounds to us like this feature will in fact be replaced with something new (although it will likely have the same name), but this testing should still give us a good idea of what Adobe is aiming for as it is very unlikely they will settle for lower multi core performance than AE 2014 was able to achieve.
With all this said, the main purpose of this article is to see how well After Effects 2014 is able to utilize multiple CPU cores - also known as multi-threading - to help determine what type of CPU (either one with a high frequency or a high core count) will give you the best possible performance. Since the final rendering and scrubbing the timeline are the two major tasks that users tend to wait on when using AE, those are what we will be focusing on in this article. If you want to skip over our individual benchmark results and simply view our conclusions, feel free to jump ahead to the conclusion section.
For our test system, we used the following hardware:
|Motherboard:||Asus Z10PE-D8 WS|
|CPU:||2x Intel Xeon E5-2687W V3 3.1GHz Ten Core|
|RAM:||8x Samsung DDR4-2133 32GB ECC Reg. LRDIMM (256GB total)|
|GPU:||NVIDIA GeForce GTX Titan X 12GB|
|Hard Drive:||Samsung 850 Pro 512GB SATA 6Gb/s SSD|
|OS:||Windows 8.1 Pro 64-bit|
|PSU:||Antec HCP Platinum 1000W|
|Software:||After Effects CC 2014 13.2
"Render Multiple Frames Simultaneously" enabled for rendering/scrubbing
Since we want to determine how many CPU cores After Effects can effectively utilize, we used a pair of Xeon E5 2687W CPUs to give us 20 physical CPU cores with which to test. Although we will not be testing ray tracing in this article (which is one of the few aspects of AE that can really utilize the GPU) we used a GTX Titan X video card to ensure that the video card would never bottleneck the CPU.
To determine exactly how good After Effects is at using multiple CPU cores, we are going to benchmark AE with different numbers of cores made available to the software. Normally we would do this by setting the affinity in Windows, but since we want to use the "Render Multiple Frames Simultaneously" feature (which spawns a small program for each CPU thread there is) we opted to go into the motherboard's BIOS and manually alter how many CPU cores would be active to ensure that we did not create any conflicts. To help with consistency - and since the benchmarks we performed ran for several days - we programmed a custom script using AutoIt to start After Effects, load the relevant project file, either render or scrub the timeline, close AE to clear any data from the system RAM, then loop while moving on to the next project file.
To analyze the data, we will be presenting our results in terms of how long it took each action to complete with X number of cores compared to how long it took to complete the same action with just a single core. From these results, we will then use Amdahl's Law to estimate the parallel efficiency for the action. 100% is perfect efficiency where a high core count CPU is ideal, but as the efficiency drops lower and lower having a high frequency CPU becomes more and more important. For more information on Amdahl's Law and how it works we recommend reading our Estimating CPU Performance using Amdahl's Law article.
In order to accurately test the multi core performance of After Effects, we used six different project files from five different sources. This won't test absolutely everything you could possibly do in After Effects, but by using projects from different sources we hope to test multiple methods of working in AE. The projects we used (along with their source) and the best render/scrub times we achieved on our test system are:
|Project Name||Source||Best Render Time||Best Scrub Time|
|The People's Template||BlueFX||153.8 seconds||23.6 seconds (quarter res.)|
|Grunge Frames||Free AE Templates||396.2 seconds||75.9 seconds (half res.)|
|Fiber Particles||Video CoPilot||36.1 seconds||86.3 seconds (full res.)|
|Pop Out Book||Flux VFX||380.4 seconds||48.6 seconds (quarter res.)|
|Simple Rings||Free AE Templates||47.6 seconds||28.3 seconds (full res.)|
|5K Subscribers||FX Channel House||22.3 seconds||12.1 seconds (half res.)|
For the final render times, we tested exporting to both AVI and Quicktime although we found that the render times were almost exactly identical for both of them so we will be reporting a single unified result in this article. In addition, we ran into some problems using Quicktime with higher core counts (which from our research is a known issue with this version of AE) so exporting to AVI was the better choice for our testing. The best time we achieved when render these projects ranged from just a handful of seconds to about 7 minutes, which should give provide a nice sampling of different length and complexity of projects. To test scrubbing the timeline, we left the resolution/down sampling of the preview window at whatever it was by default in the project file. This means that we tested with quarter, half, and full resolution depending on the project.
Before we get into the results of our testing, we want to give a quick explanation of the graphs below. The blue line with the dots represents the actual speedup per core that we saw in our benchmark compared to the performance we saw with just a single CPU core active. In other words, a speedup of "2" means that it is twice as fast as the single core performance, "3" is three times as fast, and so on.
We also used Amdahl's Law to determine the overall multi core efficiency for each project. As you will soon see, however, After Effects makes determining the multi core efficiency difficult as it changes at different core and/or CPU counts. To help visualize the efficiency, we charted the initial increases in efficiency in green, lower or no change in efficiency in orange, and any negative efficiency in red.
Starting with "The People's Template" from BlueFX, we saw a great 98.5% multi core efficiency for the entire first CPU (10 cores in our case). The efficiency did drop a bit to 97.25% for the second CPU, but this is to be expected as using a second CPU introduces some additional overhead.
The "Grunge Frames" from Free AE Templates is very similar to "The People's Template". The efficiency for the first CPU was identical at 98.5%, although it dropped a bit (to 96.5%) for the second CPU.
For the "Fiber Particles" project we start to see some concerning results. This time, we saw a decent 93% efficiency at first, but it dropped to 0% after 8 cores. This isn't as bad as what we saw in After Effects 2015 (13.5), but for this project there is absolutely no advantage to have a second CPU.
Rendering the "Pop Out Book" project saw a 98.25% multi core efficiency across the board regardless of whether we used one CPU or two. This is really an ideal result and it is great to see that After Effects is capable of this kind of consistent performance increase.
Rendering the "Simple Rings" project was only 85% efficient for the first eight cores and dropped off to 0% after that. Technically we did see a drop ion performance after around 18 cores, but it was relatively small and likely to just be a fluke in the data.
Our final project file - "5K Subscribers" - was pretty bad from a multi core efficiency standpoint. It started out at only 70% for the first 4 cores and actually saw a slow but steady drop in performance for every core we added after that. In fact, by the time we got all the way up to 20 cores the performance was the same as it was with only a single core! To be fair, this was one of the shortest projects we tested so it is entirely possible that there simply wasn't enough work to do to really be able to take advantage of more than a few cores.
Timeline Scrubbing (Preview) Benchmarks
The preview window for "The People's Template" was set to only quarter resolution, but even at that size we saw some very interesting results. For the first 16 cores we saw a steady increase in performance with a multi core efficiency of about 88%. However, once we reached 16 cores there was absolutely no increase in performance
The "Grunge Frames" timeline is set to half res and is similar to "The People's Template" as we saw no increase in performance after 16 cores. However, for those first 16 cores the multi core efficiency was very decent at 95.5%
Interestingly, scrubbing the timeline for the "Fiber Particles" project almost exactly matched what we saw when we tested this project in After Effects 2015 (13.5). The exact efficiencies at different core counts are a bit different, but the results are close enough that we believe there may be something in this project that is preventing the "render multiple frames simultaneously" feature from working properly.
Similar to "The People's Template" and "Grunge Frames" projects, the results for the "Pop Out Book" timeline scrubbing show a decent increase in performance of 85% for the first 16 cores then nothing for the remaining cores.
The "Simple Rings" project is a bit of an oddity as the speedup per core was actually more linear than it should be. The 90% efficiency we came up with isn't quite right (it is a bit lower for the smaller core counts) but it is a pretty close estimate. The other odd thing about this project is that we saw a pretty drastic drop in performance after 16 cores. What is really interesting is that this is the same point that we have repeatedly seen a lack of performance increase in many other projects so there is definitely something happening at that core count.
Our final project file - "5K Subscribers" - is a bit anti-climatic as it simply has a 45% efficiency across all core counts. In other words, while there is a benefit to having two CPU cores, there is little to no benefit to having more than that.
When we completed our testing in AE 2015 (13.5), we were very surprised at how bad AE was at using multiple CPUs (and higher core counts in general). While it is still not great that the latest version of AE is that bad performance-wise due to the removal of the "Render Multiple Frames Simultaneously" features, it is good to see that AE 2014 (which still has that feature) is much, much better at utilizing multiple CPU cores. Hopefully Adobe will be adding this feature (or an equivalent) in AE 2016, although we have not seen any mention of it as of yet.
To summarize the results of our testing, here is the parallel efficiency we saw for each project:
(higher is better - 100% is perfect)
|The People's Template||98.5% (97.25% for CPU2)||88% (0% after 16 cores)|
|Grunge Frames||98.5% (96.5 for CPU2)||95.5% (0% after 16 cores)|
|Fiber Particles||93% (0% after 8 cores)||82% (0% after 6 cores,
-50% after CPU1)
|Pop Out Book||98.25%||85% (0% after 16 cores)|
|Simple Rings||85% (0% after 8 cores)||90% (-60% after 16 cores)|
|5K Subscribers||70% (-40% after 4 cores)||45%|
There are certainly a few oddities in the results (such as the "5K Subscribers" project in general), but there a few trends that we can pull from these results. First, rendering the projects tends to be very good at utilizing higher core counts. While coming up with an exact average is difficult, it should be somewhere around 97-98%. Using a second CPU should stay true to that estimate as well, although it is pretty clear from our testing that there are some projects that may not see a benefit from a second CPU.
Scrubbing the timeline has a multi core efficiency that is a bit lower - somewhere in the range of 88% on average. However, one thing to note is how often we saw a complete lack of performance increase (or even a performance decrease) after 16 cores. This is an indication that you may want to keep the total core count to around 16 cores or so. Higher core counts may help with rendering, but likely not with scrubbing the timeline.
One other factor to keep in mind is that while AE 2014 is pretty good at utilizing multiple CPU cores when rendering and scrubbing the timeline, many other tasks in AE are not multi-threaded at all. Things like opening projects, importing videos, and saving projects do not see any benefit to having more cores. Because of this, having a CPU with a relatively high operating frequency is still very important for general responsiveness of the program.
Based on our results, we can make a few informed recommendations as to which CPUs will give you the best overall performance in After Effects:
|Recommended Single CPUs for After Effects CC 2014|
|Good:||Intel Xeon E5-1650 V3 3.5GHz Six Core 15MB 140W or
Intel Core i7-5930K 3.5GHz Six Core 15MB 140W
|Great||Intel Xeon E5-1660 V3 3.0GHz Eight Core 20MB 140W or
Intel Core i7-5960X 3.0GHz Eight Core 20MB 140W
|Better:||Intel Xeon E5-1680 V3 3.2GHz Eight Core 20MB 140W|
|Best:||Intel Xeon E5-2690 V3 2.6GHz Twelve Core 30MB 135W|
|Recommended Dual CPUs for After Effects CC 2014|
|Good:||2x Intel Xeon E5-2640 V3 2.6GHz Eight Core 20MB 90W|
|Great:||2x Intel Xeon E5-2643 V3 3.4GHz Six Core 20MB 135W|
|Better:||2x Intel Xeon E5-2690 V3 2.6GHz Twelve Core 30MB 135W|
|Best:||2x Intel Xeon E5-2697 V3 2.6GHz Fourteen Core 35MB 145W|
This looks like a lot of CPUs (and really, it is) but each of these processors represent the best performance possible at various budgets. Starting with the single CPU options, the Xeon E5-1650 V3 (or Core i7-5930K which is pretty much identical in terms of performance) is an excellent option if you have a limited budget. In fact, upgrading to the Xeon E5-1660 V3 (or Core i7 5960X) only nets a 6-12% increase in performance when rendering or scrubbing the timeline. If you go up another step to the Xeon E5-1680 V3 (which can be hard to find), you would only see another ~6% increase in performance. If you cannot get that CPU, the Xeon E5-2690 is only a bit more expensive and should give you a further 17% decrease in render times over the E5-1680 V3 although scrubbing the timeline should not be much faster (due to the lower multi core efficiency)
If your budget allows for a Dual CPU system, there are a number of options available. At the entry level, a pair of Xeon E5-2640 V3 CPUs is only a little more expensive than a single Xeon E5-2690 but should be 10% faster at rendering. Moving up to a pair of Xeon E5-2643 CPUs is interesting as it would only increase render performance by ~5%, but the much higher frequency makes it better for scrubbing the timeline and doing other misc. tasks within After Effects.
If you have a very healthy budget, a pair of Xeon E5-2690 V3 or Xeon E5-2697 V3 will give you the best overall performance when rendering or scrubbing the timeline in AE 2014. They may not be as great at single threaded tasks, but they will be ~20-30% faster at rendering than a pair of Xeon E5-2643 V3 CPUs.
If you are interested in finding out how well other CPU choices would work in After Effects 2014 (13.2) (or exactly how each of our recommended CPUs compare), we set up a Google Doc that allows you to enter the specifications of the CPUs you are interested in and receive an estimated performance comparison:
One thing we want to make very clear is that our testing is really only 100% accurate for the projects we used in our testing. Different effects, resolutions, and codecs are going to change how well After Effects can utilize multiple CPU cores. If you want more accurate results for what you actually do in After Effects, we recommend following our Estimating CPU Performance using Amdahls Law guide. It can be a time consuming process but it is really the only way to know for sure what the parallel efficiency is for what you do in After Effects. As we mentioned in the Test Setup section, however, you will need to slightly modify that guide and change the number of CPU cores available through the BIOS in order to get accurate results)