Performance considerations
Of course, one of the standout features of vReveal is its ability to leverage the power of Nvidia GPUs to improve performance. With that in mind, the question becomes: how does GPU-accelerated rendering affect performance?

vReveal provides an easily accessibly toggle for GPU acceleration, so benchmarking was surprisingly easy. We simply rendered our clips out to Windows Media Video format using the previously noted enhancements, and we measured encoding times with both GPU assistance and software rendering only. vReveal reported the final encoding time after each job, so there was no reason to break out the stopwatch.

Something to keep in mind is that these clips were all very short. The keyboard clip was only seven seconds, the comics video was nine seconds, and the billiards one was the longest at 10 seconds. Meanwhile, the clip of the dog lounging on the couch was the shortest of all at only five seconds long, but it had double the resolution and a higher frame rate. You'll see shortly how that affected performance. The first three clips all used identical enhancement settings, so they provide an interesting look at how well CUDA can accelerate the same features across different clips. Let's take a look at the MacBook test system first:

Color me surprised—whatever color that may be (maybe lilac). For the first three videos, GPU-assisted encoding increased performance by an average of roughly 33%. Moving on to the dog-on-the-couch video, we also see some interesting results. Despite being the shortest clip of the bunch, it takes around twice as long to render, likely due to the higher frame rate. Also, if you remember, the couch dog clip couldn't use the 2x Resolution enhancement, and we had Stabilize and Fill Light enabled. Even with different settings and a higher-quality source video, our integrated GPU managed to provide an 18% boost over software rendering. That's pretty impressive for a graphics chip with only 16 stream processors, especially when you consider the GeForce GTX 280 and 285 have 240 of those.

Now let's see what sort of performance boost an inexpensive GeForce 8800 GT with 112 SPs provides over the 9400M:

Perhaps the first observation to get out of the way is that our two test systems' CPUs performed almost identically. The real star of the graph, however, is the GeForce 8800 GT, which managed to decrease encoding times by around 75% across the board. Seven times the stream processors doesn't net seven times the performance, and diminishing returns have to kick in somewhere. Nevertheless, it's impressive to see how well CUDA scales from an integrated graphics solution to a fairly modest discrete graphics card.

I'm also relieved that users can reap noticeable performance gains in CUDA applications without having to break the bank. (A GeForce 9800 GT, which is essentially the same as the old 8800 GT, can be had for as little as $100 at Newegg.)

CPU usage
The Intel Core 2 Duo is no slouch in terms of rendering performance, so it's impressive to see even a lowly integrated graphics chipset improve performance by such a noticeable margin. But what sort of impact does GPU-assisted video encoding have on CPU usage and multitasking in general?


Software rendering with 2GHz Core 2 Duo P7350


Software rendering with
2.13GHz Core 2 Duo E6400

With GPU assistance disabled, vReveal managed to max out both cores during video rendering, just as it should. Getting anything else done while encoding was a pain, and even web browsing was noticeably affected. Unless you go into the Task Manager and change vReveal's priority (which can only help so much), it's a safe bet you won't be using your computer while it's rendering movies.


GPU-assisted rendering with GeForce 9400M


GPU-assisted rendering with GeForce 8800 GT

With the GPU switch in vReveal flipped, the CPU usage graph turns out to be somewhat surprising. While GPU-assisted rendering helps complete the task faster, vReveal leaves plenty of CPU cycles unused, letting the user multitask with relative ease. There's a spike when the file creation process begins, before CPU usage settles down to around 65-70% for the majority of the job.

You might notice differences in the load balance between Windows XP and Vista, with the XP machine more evenly distributing the work, while Vista places the brunt of the load on one core and uses the secondary core more sparingly. This is likely due to Vista's new thread scheduler, rather than anything vReveal is doing, and it could result in a better multitasking environment.

Evidently, vReveal is using the GPU to do some of the CPU's work instead of loading up both chips fully. Plenty of users will no doubt appreciate the ability to use their computer while it's rendering, but I would love to see a high-performance mode that would not only use the GPU for encoding, but also maximize CPU cycles, as well. That assumes, of course, that fully utilizing both the CPU and GPU at the same time could substantially improve rendering times.