Activity › Forums › Adobe Premiere Pro › Premiere GPU acceleration
-
Todd Kopriva
January 28, 2011 at 2:21 pm> Interesting.. I thought one of the obvious pro’s was to have full CUDA support for heavy formats such as RED RAW and h264 (5D / 7D / AVC). But i guess a CUDA-system (MacPro / Quadro 4000) will still see a nice improvement in RT even with out this.
Oversimplifying a bit, the process of working with video is this:
decode from source -> process / render frames -> encode result
CUDA processing in Premiere Pro CS5 helps on the middle part. If you’re processing effects, scaling, et cetera on hundreds of millions of pixels per second, then CUDA acceleration on that middle part is hugely beneficial. If you’re just trasncoding, then… not so much.
> Does Premier support a RedRocket card for R3D decode and then use CUDA on top of that for processing?
Yes, Premiere Pro (as of the 5.0.2 update) can use a RED Rocket card to speed up decoding of RED footage.
———————————————————————————————————
Todd Kopriva, Adobe Systems Incorporated
Technical Support for professional video software
After Effects Help & Support
Premiere Pro Help & Support
——————————————————————————————————— -
Tim Kolb
January 28, 2011 at 2:51 pmThese days DaVinci technical info is a little challenging to find on the BlackMagic website…so I’m not sure what you’re referring to…
“GUI” stands for Graphic User Interface, which any piece of software with mouse interaction has, so I’m guessing you mean something else.
As I noted in several threads below, GPU support is the visual processing augmentation that is facilitated in Open GL and Open CL, whereas CUDA is a protocol for actually moving the executable software to the GPU.
TimK,
Director, Consultant
Kolb Productions, -
Erik Lindahl
January 28, 2011 at 3:32 pmOh, I’ve found DaVinci’s support-documents outstanding. What they do is that they have TWO GPU’s in the system, for example:
1x Radeon 5770
1x Quadro 4000You connect displays to the Radeon-card and is your “GUI” card, the Quadro is left unconnected to external displays and is only used for processing. How does Premier work in this regard? Can it use any GPU in the system to offload processing or is it always the primary GPU / GPU connected to the computers display?
According to DaVinci they gain 10-20% performance by doing the above.
————————
Erik Lindahl
Freecloud Post Production Services
http://www.freecloud.se -
Erik Lindahl
January 28, 2011 at 3:36 pmAlso, how crippled is the Mercury Engine when it comes to output over a video-card like a Kona 3 or similar? I heard there was quite a severe overhead going that route.
————————
Erik Lindahl
Freecloud Post Production Services
http://www.freecloud.se -
Tim Kolb
January 28, 2011 at 4:25 pm[Erik Lindahl] “You connect displays to the Radeon-card and is your “GUI” card, the Quadro is left unconnected to external displays and is only used for processing”
Er…how do you view what you’re doing? There has to be a reference display hooked to…something.
TimK,
Director, Consultant
Kolb Productions, -
Erik Lindahl
January 28, 2011 at 5:30 pmYes, you have TWO GPU’s: one for GUI and one for CUDA-acceleration. This means the GPU that handles CUDA isn’t bogged down with work for redrawing the screen and thus, according to the DaVinci techs, gain about 20% processing speed.
So you’d have something like:
1x Radeon GPU connected to displays
1x nVidia GPU with CUDA-support just sitting in a PCIe slotThe only thing the nVidia GPU does is CUDA-acceleration. It doesn’t have to deal with anything else. The Radeon-card is your GUI-card and is you main “graphics card”. In the above situation you basically use a GPU as a DSP or similar. The above scales even more but I don’t want to confuse this thread even more.
So my question remains, can you use a GPU that isn’t you display GPU for CUDA processing in CS5? This is very interesing for people building online editing systems with DaVinci as it does make us have to choose GPU’s with care. If CS5 can’t use GPU’s like DaVinci can one is for instance forced to get two Quadro 4000’s GPU’s instead of just 1 and another cheaper card for the displays.
————————
Erik Lindahl
Freecloud Post Production Services
http://www.freecloud.se -
Tim Kolb
January 28, 2011 at 7:14 pmOn the multiple card question:
I have one CUDA capable card and one NVIDIA Quadro non-CUDA card, but I run four displays, so the CUDA card doesn’t get to do its work without running the displays, so I don’t know the ultimate answer to your question as to whether the preview acceleration will work better, or even work with a non-display coupled CUDA card. The issue would be once the frames are ready, you’d have to expend some bandwidth to move them to the other display card vs just sending them out the DVI/Display port on the card that processed them. In the case of PPro, I guess I’d question whether you’d truly gain anything this way.
[Erik Lindahl] “Also, how crippled is the Mercury Engine when it comes to output over a video-card like a Kona 3 or similar?”
“Crippled” is not really a good way to describe it in my opinion.
The purpose of PPro CS5’s CUDA utilization at this point is to speed feedback to the edit video overlay during the editing process and the main limitation would be what applications or sub-routines, or whatever you want to call them…what “functions” can be rewritten to both execute under NVIDIA’s CUDA architecture, and thread out widely enough to make that sort of insane parallel processing and the administrative overhead it takes to get the math in and out worth while.
Also…the benefit of Mercury’s ability (regardless of the existence of a CUDA card in the system or not) to drop to 1/2 or 1/4 res (which works on any material regardless of codec) for working preview playback cannot be underestimated. When you combine taking CUDA-capable effects off of the CPU’s plate with the ability of dropping to half-res and therefore cutting the pixel-processing load to 1/4 (half res is half res both vertically and horizontally), the editing experience gets very responsive.
I/O cards are a caveat at this point as far as I know. An I/O card resides in a system slot…the system slots take their orders from…the CPU. You also have to remember that those of us who use Kona cards, use them to view and analyze full resolution HD…so Kona (or I assume BlackMagic, BlueFish, etc) outputting to HDSDI is typically full resolution.
Of course, the catch is that your optimal dataflow under the Mercury w/CUDA option is
1. harddrive-video file read-to-
2. CPU-video decode-to-
3. NVIDIA CUDA card-effects processing-to-
4. DVI port-squirt out preview frames-
5. the end.Adding an I/O card adds one backtrack to the flow:
1. harddrive-video file read-to-
2. CPU-video decode-to-
3. NVIDIA CUDA card-effects processing-BACK to-
4. CPU-send to PCIe I/O card-to-
5. HDSDI monitor.If you need full res for your HDSDI I/O, then you also need to be handling full res all the way through…full res decode on the CPU…full res effects processing in CUDA…THEN shove each frame back down the pipe to the CPU, where it has to convey it to the I/O card…while the CPU is still simultaneously decoding video frames for the playback in the first place.
So…while I disagree with the word “crippled” as it suggests a defect in design, CUDA effects preview acceleration can only work as fast as the system can feed it frames, and my guess would be that most mortal desktop systems will bottleneck first at the CPU when in full res, multi-stream, on-the-fly video decode and back hauling simultaneous full res frame output to HDSDI vs a limitation in the ability of the NVIDIA card to process the effects.
I do think that the industry in general (not just Adobe or NVIDIA) tend to distill sales messages to a point where information gets simplified to the point of being in the least, vague, or at worst, misleading or even occasionally inaccurate.
Being at NAB in the AJA booth was interesting this last year as people would exit Adobe’s Mercury demos higher than a kite and they would come to me and expect me to run 4 layers of RED RAW 4K in RT out the HDSDI port on the Kona station I had there based on the demo they saw using multiple layers of 720p24 sub-raster DVCProHD at half res coming out the DVI port on a system with as many CPU cores as you could buy at the time. Explaining the technical caveats of what they saw vs their expectations didn’t seem to make them feel better.
I personally think that the companies involved just didn’t do enough out of the gate to really provide realistic detail about where this feature was designed to begin and end. You have guys like Todd K. trying to get those details out there, but there is a lot of ground to make up.
I will say this… Premiere Pro CS5 is the first NLE to really utilize CUDA processing (not GPU display processing…actual code executed on the GPU cores) at all, and they’ve been pretty ambitious.
In my opinion, an investment in a display card for a video editing system has never furnished a return like it does now with NVIDIA’s qualifying cards. I know I spend a lot of effort on what probably seems to many as criticizing or diminishing the feature, but I use a qualified professional NVIDIA display card on my system and utilize the CUDA option for the Mercury playback engine and appreciate the feature very much.
I think that Adobe has shown some obvious initiative in this area and I think that users will find that this sort of thing will only get better and better, we’re at v1.0 with executing actual code on the GPU. Remember how long it’s taken to get most of our software applications to really utilize 2 cores, then 4…then 8, 16, and so on. Imagine rewriting the code for a process that breaks itself into 240 threads and reassembles the results…Adobe has done that with some staple effects in this first round.
Mercury is good. CUDA augmentation of Mercury is good. The ROI is definitely there. You just have to know what it’s all designed to do so your expectations of the feature’s effect on your workflow are based on reality.
Around here, as you can see, we’re trying our best to explain it as clearly as possible.
TimK,
Director, Consultant
Kolb Productions, -
Erik Lindahl
January 28, 2011 at 7:33 pmTerrific response! I don’t have time to comment all if it but I think DaVinci uses the dual GPU approach for better bandwidth and use of system resources. I also think DaVinci was built with realtime out over the video-card in mind as any serious color correction work is done this way normally.
Will look more at your post later tonight. I reackon Adobes move is awesome. A lot of people however are dependent on editing over a video-card output.
————————
Erik Lindahl
Freecloud Post Production Services
http://www.freecloud.se
Reply to this Discussion! Login or Sign Up