CPU vs. GPU Render time

Gary James wrote on 3/23/2012, 9:40 AM
With the latest releases of 64 bit SVP v11, and the nVidia drivers, I'm finally able to completely render my project using my Graphics card GPU. But I have to admit, the results were disappointing.

First a little background on my PC. I have an older Gateway FX6000 that I purchased in 2008. The relevant components are the i7 processor and the GeForce GTS-250 graphics card. Here's the specs:

OS
MS Windows 7 64-bit SP1
CPU
Intel Core i7 920 @ 2.67GHz
Bloomfield 45nm Technology
RAM
6.00 GB Triple-Channel DDR3 @ 533MHz (8-8-8-19)
Motherboard
Gateway TBGM01 (CPU 1)
Graphics
VE248 (1920x1080@60Hz)
ASUS MK241 (1920x1200@59Hz)
1024MB GeForce GTS 250 (Sapphire/PCPartner)
Hard Drives
977GB Western Digital WDC WD1001FALS-00J7B0 ATA Device (SATA)
977GB Western Digital WDC WD1001FALS-00J7B0 ATA Device (SATA)
977GB Western Digital WDC WD1002FAEX-00Z3A0 ATA Device (SATA)
Optical Drives
ATAPI DVD A DH16A6S ATA Device
ELBY CLONEDRIVE SCSI CdRom Device
Audio
Realtek High Definition Audio

My latest Vegas project is a graphics slideshow with about 1000 .jpg files of various resolutions from a low of 450 x 600 up to 7216 x 5412; most of which are greater than 1024 x 768 pixels.

Each slide has a Pan / Zoom effect applied. And many have Color correction and / or Brightness & Contrast adjustments. Also, every slide has a lead-in random transition effect applied.

With the GPU enabled, I'm able to preview my project using the Full display resolution. Without it, I have to drop back to Preview mode resolution. So, I thought I'd see better results rendering my project using the GPU. Wrong!

Using the GPU, it took 3 hours, 54 minutes and 14 seconds to render. Switching back to using the CPU, it took 2 hours, 19 minutes and 14 seconds to render. More than 1.5 hours faster!

My question is this. Am I seeing such poor GPU render times because my GTS-250 is underpowered for the job? Also, has anyone else compared GPU vs CPU render times using the latest 64 bit SVP & nVidia drivers? If so, what GPU are you using, and what results did you see?

Comments

Spectralis wrote on 3/23/2012, 1:35 PM
I've tried various tests using my nVIDIA GTX 470 and tbh I haven't seen any appreciable benefit to using GPU. In fact GPU rendering in other apps takes longer.

The big problem with testing is that without a standard project file to use as a benchmark every user test is open to a whole range of variables. We need a couple of benchmark project files that we can download and test on our systems and then report back the results. That way we can build up a picture of GPU vs CPU performance. This would also help in designing the optimal system for VP.
johnmeyer wrote on 3/23/2012, 2:29 PM
There are a huge number of variables that change the relative merits of using a GPU. The biggest variable, which I don't think you included in the original post, is what format are you rendering to? Vegas does not provide GPU acceleration for most formats.

As for other variables, some fX support GPU, and some do not. I would suspect that even for those which do support GPU, the level of support varies. So, depending on the fX used in your project, the improvement (or not, as in your case) of using the GPU will differ dramatically.

As you already noted, the GPU you are using, and the way it interacts with your particular motherboard also makes a difference. Also, video drivers for these cards differ, sometimes dramatically. Upgrading the driver can often make benchmarks change (not always for the better).

Finally, I still think the whole GPU adventure is probably misguided, because the multiple cores in modern CPUs can provide much of the benefit of a GPU. While a GPU has been optimized for graphic operations, so too have modern CPUs. Thus, if you have a really capable motherboard and CPU, the incremental advantage of adding the GPU may not be all that great compared to someone who has an average motherboard and CPU.

If you want to see the benchmarks that SCS has provided, click on this link:

GPU acceleration

You might also get some help by reading this excellent article by guru Gary Rebholz:

Five steps to GPU power in Vegas Pro 11

John Meyer
Spectralis wrote on 3/23/2012, 4:25 PM
Ok, I did some tests using the information you linked to about GPU in VP11. I used the latest versions of VP11 and nVIDIA drivers.

I used a 34 second clip, 29.970 fps, 720x486x24, Photo - JPEG. I added one plugin, BCC 7 Halftone.

All files rendered to MainConcept AVC/AAC (.mp4) Internet HD 1080p, 29.970 fps.

Rendering time for different combinations of GPU switched on and off:

VP11 GPU on, GPU rendering on, FX GPU on - 00:05:02

VP11 GPU off, GPU rendering off, FX GPU on - 00:04:46

VP11 GPU off, GPU rendering off, FX GPU off - 00:04:42

In conclusion, on my system, rendering times are 20 seconds faster without any GPU. On a 60 minute project that's a saving of 40 minutes render time. Pretty surprising considering I've got an nVIDIA GTX 470 card. My full system specs are in my profile.



Gary James wrote on 3/24/2012, 10:19 AM
"There are a huge number of variables that change the relative merits of using a GPU. The biggest variable, which I don't think you included in the original post, is what format are you rendering to? Vegas does not provide GPU acceleration for most formats."

Yes, I forgot to mention that I was rendering to the standard Vegas MPEG-2 Template "Program Stream NTSC Widescreen Video Only". It sounds like if all I want to do is speed up my render time, buying a newer, faster Graphics card isn't the way to go!
johnmeyer wrote on 3/24/2012, 11:04 AM
I was rendering to the standard Vegas MPEG-2 TemplateI think that the MPEG-2 codec is owned and developed by MainConcept, not Sony. To my knowledge, it hasn't been updated in almost a decade.
farss wrote on 3/24/2012, 11:07 AM
"Finally, I still think the whole GPU adventure is probably misguided, because the multiple cores in modern CPUs can provide much of the benefit of a GPU. While a GPU has been optimized for graphic operations, so too have modern CPUs. Thus, if you have a really capable motherboard and CPU, the incremental advantage of adding the GPU may not be all that great compared to someone who has an average motherboard and CPU."

Vegas isn't a graphics app, editing video isn't graphics.

No CPU can do "graphics" at anything like what can be done on the GPU. Take a look at the latest video games, they swamp even a single GPU, plenty of players are running 4 GPUs to get the desired performance. The whole process of rasterising vector graphics is a different problem to working with video.

On the video front the GPU can be used to great effect but it's better suited to specific purpose apps e.g. color grading systems.Here you send a frame of video to the GPU, do maths on it AND display it. Even debayering of RAW video can be done on the GPU and that's a lot of FP calcs.

The problem with Vegas is the data going into and out of the calculation is being shuttled backwards and forwards between the CPU and the GPU. It's not even being done with any smarts. Some systems use "look forward" processing i.e. look at the next node and if that involves more processing delay processing until all nodes are evaluated and then do all the FX calcs at once.

The problem today for Vegas goes right back to the functional design from the get go.
There is no way to optimise anything in an app that can do everything all at once and has no boundaries and no constraints. SCS could have, should have, started putting up fences years ago. There'd have been a lot of moaning and groaning but we wouldn't be in the mess we're in today.

Bob.