7 Replies Latest reply on Jul 22, 2015 6:21 AM by Szalam Branched from an earlier discussion.

    After Effects' use of the GPU

    Chris Hocking Adobe Community Professional

      Szalam, if possible, I would love some more information in regards to this topic as I'm having a slightly hard time getting my head around how After Effects makes use of the GPU in certain situations.

       

      For example, say I have a fairly complex UltraHD comp with a bunch of Element 3D layers. Because we're working with 3D layers with Element, we have the 'Classic 3D' renderer turned on within After Effects. Because I'm using an K4200 GPU, I'll just follow Adobe's advice and use the CPU for any ray-tracing given that the K4200 is 'unsupported'.

       

      So now I'm assuming that After Effects will do ALL processing processing on the CPU - with the exception of the Element 3D work, which will be done solely on the GPU, correct? So now, I'm assuming that as long as I have the 'Render Multiple Frames Simultaneously multiprocessing' set to something sensible (i.e. leaving 1/4 or preferably more like 1/3 of the available RAM toward non-After Effects related work, and not starving the CPUs), then After Effects will try to max-out the CPUs as much as possible for everything except the Element 3D work (which will hopefully max out the GPU). Is that correct?

       

      Is there any benefit at all to using unsupported/untested GPU's (such as the K4200) for accelerating the ray-traced renderer in this scenario (i.e. the only 3D elements in the comp are Element 3D layers, and 3D lights & cameras), or is it better to just leave it all on the CPU, and leave the GPU alone for Element 3D?

       

      Thanks in advance!

        • 1. Re: After Effects' use of the GPU
          Szalam Adobe Community Professional & MVP

          Chris Hocking wrote:

           

          For example, say I have a fairly complex UltraHD comp with a bunch of Element 3D layers. Because we're working with 3D layers with Element, we have the 'Classic 3D' renderer turned on within After Effects. Because I'm using an K4200 GPU, I'll just follow Adobe's advice and use the CPU for any ray-tracing given that the K4200 is 'unsupported'.

           

          Right. Your scene doesn't have any layers using the ray traced renderer in it at all, so leaving it on Classic 3d is the best choice. The new version of Element does have "ray-traced" shadows and whatnot, but that's unrelated to AE's obsolete ray-traced renderer. AE's ray-traced renderer is essentially an effect relying on the Optix library in NVIDIA GPU's. It was just for adding depth to layers. People are often confused and think that turning ray-traced rendering on would engage the GPU to render the whole thing, but the only thing it ever accelerated was the ray-traced effect (which very few people ever used).

           

          Chris Hocking wrote:

           

           

          So now I'm assuming that After Effects will do ALL processing processing on the CPU - with the exception of the Element 3D work, which will be done solely on the GPU, correct?

          Yes.

           

          Chris Hocking wrote:

           

          So now, I'm assuming that as long as I have the 'Render Multiple Frames Simultaneously multiprocessing' set to something sensible (i.e. leaving 1/4 or preferably more like 1/3 of the available RAM toward non-After Effects related work, and not starving the CPUs), then After Effects will try to max-out the CPUs as much as possible for everything except the Element 3D work (which will hopefully max out the GPU). Is that correct?

          Pretty much, yes. There are other potential bottlenecks (if you're using footage off of an external device with a slow connection, for example), but that is the basic way things will go.

           

          Chris Hocking wrote:

           

           

          Is there any benefit at all to using unsupported/untested GPU's (such as the K4200) for accelerating the ray-traced renderer in this scenario (i.e. the only 3D elements in the comp are Element 3D layers, and 3D lights & cameras), or is it better to just leave it all on the CPU, and leave the GPU alone for Element 3D?

          Your scene, as you describe it, does not make use of the ray-traced renderer at all. The ray-traced renderer is just a way to add depth and dimension to layers natively in AE. Since you're not using that feature, turning your comp to use the ray-traced renderer won't help anything and may, instead, cause longer render times.

           

          But you can feel free to test this yourself. Try a render with the standard renderer and try one with the ray-traced renderer turned on. See if you can note any differences.

           

          Here's an official Adobe blog post about the GPU in AE: GPU (CUDA, OpenGL) features in After Effects

          • 2. Re: After Effects' use of the GPU
            Chris Hocking Adobe Community Professional

            Perfect - thanks so much for the detailed reply! Very much appreciated!

            • 3. Re: After Effects' use of the GPU
              Szalam Adobe Community Professional & MVP

              No problem!

              • 4. Re: After Effects' use of the GPU
                Chris Hocking Adobe Community Professional

                Sorry Szalam - me again!

                 

                I was just wondering if you could offer some more ideas/advice. We were seeing massive render times with the K4200 when using After Effects CC2014 with Element 3D on UltraHD comps. We figured it was just because we were pushing UltraHD through Element 3D, so we've temporarily thrown in a M6000 graphics card, which should be MORE than adequate for the shots. Although render times are better - when rendering, even with 'Render Multiple Frames Simultaneously multiprocessing' set to something sensible, the CPU's aren't really being pushed - and looking at the GPU usage, it's only sporadically reaching 100%. Drive speed shouldn't be an issue as the Promise Pegasus2 has 8 drives in RAID-0.

                 

                The machine is a Z840 (E5-2650 v3; 32GB DDR4; 512GB ZTurbo for OS; PCI SSD for Projects; Promise Pegasus2 R8 for media; M6000; Windows 8.1).

                 

                Does Element 3D break multi-processing? Do you have any suggestions on how we can max out the CPU and GPU usage when rendering with After Effects?

                 

                Even with normal AE comps - when just RAM previewing in the timeline, AE doesn't seem to be maxing out the CPUs. Thoughts?

                • 5. Re: After Effects' use of the GPU
                  Szalam Adobe Community Professional & MVP

                  I don't know how Element works with multiprocessing; I haven't done enough tests. Since Element renders on the GPU and not the CPU, that could cause all kinds of weirdness on the back end.

                  Try rendering with multiprocessing disabled and see what kind of difference that makes.

                   

                  There are many things that could cause AE to not use the CPUs all the way. It's either a bottleneck somewhere else (RAM, disk speed, etc.) or an artifact of the old and kludged-together multiprocessing. This sort of mess is one of the main reasons the AE team has spent the past year re-writing the core of After Effects to make better use of processors. I can tell you, I am looking forward to the next version with much anticipation.

                  • 6. Re: After Effects' use of the GPU
                    Chris Hocking Adobe Community Professional

                    It seems Element doesn't actually use Multiprocessing: Re: ELEMENT 3D ram preview error!

                     

                    I also can't wait until the new version is released, but in the meantime, I need to get shots done and rendered as quickly as possible today.

                     

                    Hopefully the next version of AE will actually help users pinpoint bottleneck's rather than just cryptically and unhelpfully saying 'you just have to experiment to find the right settings for each comp'.

                    • 7. Re: After Effects' use of the GPU
                      Szalam Adobe Community Professional & MVP

                      Chris Hocking wrote:

                       

                      Hopefully the next version of AE will actually help users pinpoint bottleneck's rather than just cryptically and unhelpfully saying 'you just have to experiment to find the right settings for each comp'.

                       

                      I believe that's a major goal of the rewrite. My hope is that we can just keep throwing processor power at it and it will go faster and faster. As it is now, there seems to be a limit to how much you can do.