Hi,
I recently upgraded to a HD7970, the new performance king video card from ATI/AMD. But I have a problem: Vegas seems bottlenecked somewhere within the system and it's *not* the GPU. Basically, with most workloads, I can't really even tell if Vegas is using the GPU or not because it isn't submitting enough work to the GPU to keep it busy and cause a measurable temperature/load metric.
I know this because:
1. I saved a profile with the settings I want to render with, uninstalled my graphics drivers (to ensure OpenCL was not available), and started encoding, and the time remaining ultimately settled on 2.5 hours. I then re-installed my drivers, verified that I could run independent OpenCL programs other than Vegas, and they ran fine. When they ran, the "GPU usage" percentage in GPU Shark (a GPU monitoring utility) hit between 50 and 70%.
2. I started up Cyberlink PowerDVD, which can do GPU *decoding* of video, and set upon it the hefty task of playing back an AVCHD video at 1920x1080 @ 60 fps (encoded, on the CPU, by Sony Vegas 11). Just decoding, which is much easier (a less compute-intensive task) than encoding, caused my GPU Shark "GPU usage" stat to spike to 33%.
3. Running a fairly basic OpenCL 1.1 kernel, like rendering 1 million particles (a test available in GPU Caps Viewer), hits the GPU for 50% usage.
4. Running a Vegas Pro 11 rendering task hits the GPU for... 0.0% usage?! What?!?! And the temperature of the GPU is exactly the same as if it were idle? And the fan speed of the GPU is exactly the same as if it were idle? And the encoding is only about 30% faster than if I did CPU encoding? WHAT?!?!
At first I was enraged because I thought that Vegas was selling me snake oil and didn't really do GPU encoding AT ALL. But then I produced a workload that, at least, generates some meaningful results, if still really disappointing.
It's not that OpenCL itself is broken on my system; it seems to be working fine. I can use 70% of the GPU's cores and produce an enormous amount of heat running an OpenCL 1.1 kernel. Direct3D 11 and OpenGL 4.1 3d rendering applications, such as games, work fine. GPU decoding/playback (using a different application, CyberLink PowerDVD) of movies encoded with Sony Vegas, work fine. But Sony Vegas doesn't put ANY detectable load on my GPU at all -- at least, when the source media is on a hard drive!
I have source media from FRAPS, which uses an extremely inefficient, uncompressed codec so that it doesn't eat a lot of processing power while it captures real-time video to disk. This results in about 24 GB of data per half hour of media. Getting a single 2TB SATA 3GB/s disk from ~2010 to pull this amount of data at a fast enough rate to keep up with the data-hungry GPU might indeed be a bottleneck.
So I did a crazy thing and put my 16GB of RAM to use!
I used ImDisk to create a 6GB RAM disk, and TURNED OFF my paging file -- that's right, every last bit of data stored in virtual memory is now being stored in the RAM chips themselves, NOT in the page file on the (slow) SATA disk. So the SATA disk is out of the question.
To confirm, I opened Windows Resource Monitor and watched my disk I/O while both reading and writing from the virtual disk. It was only about 50 KB/s from various background programs doing cleanup tasks, and so on -- and this is while Sony Vegas was doing its thing.
But even with both the input and the output coming from / going to RAM, and with the transcoding apparently being taken care of by the GPU, I am only able to use about 23% of the GPU's compute power! And I'm betting that a large portion of that is a GPU-accelerated *DE*coder, because I used my compressed version of the movie (down to 1.6 GB AVCHD) as the source media when doing the in-memory conversion test. If you recall, watching the video in CyberLink PowerDVD at full speed took 33% GPU usage, so 23% is a reasonable number if you're decoding significantly slower than real-time (a 33 minute video taking 90 minutes = about 1/3 of the decoding rate demands of CyberLink).
So it seems that even with the hard disks completely taken out of the picture, and everything just involving the CPU, GPU and RAM, I'm using about 23% of the GPU's total power, and of that usage, about 95% of it is decoding the source video...
Is there any way to speed this up? Do I need faster RAM? A faster CPU? More memory bandwidth? I'm kind of grasping at straws here, but I'd like to reduce the encode time while maintaining very high quality videos. My goal is to be able to very quickly encode large videos recorded from a screen-capture program such as FRAPS, into a video format that will result in a YouTube HD 1080p video. I'd be satisfied if I could get the encode time down to about twice the run-time of the source material (so a 30 minute video should take no more than about an hour to encode).
Some screenshots:
http://dl.dropbox.com/u/28146435/vegas/1.png
http://dl.dropbox.com/u/28146435/vegas/2.png
http://dl.dropbox.com/u/28146435/vegas/3.png
http://dl.dropbox.com/u/28146435/vegas/4.png
http://dl.dropbox.com/u/28146435/vegas/5.png
http://dl.dropbox.com/u/28146435/vegas/6.png
Thanks.
I recently upgraded to a HD7970, the new performance king video card from ATI/AMD. But I have a problem: Vegas seems bottlenecked somewhere within the system and it's *not* the GPU. Basically, with most workloads, I can't really even tell if Vegas is using the GPU or not because it isn't submitting enough work to the GPU to keep it busy and cause a measurable temperature/load metric.
I know this because:
1. I saved a profile with the settings I want to render with, uninstalled my graphics drivers (to ensure OpenCL was not available), and started encoding, and the time remaining ultimately settled on 2.5 hours. I then re-installed my drivers, verified that I could run independent OpenCL programs other than Vegas, and they ran fine. When they ran, the "GPU usage" percentage in GPU Shark (a GPU monitoring utility) hit between 50 and 70%.
2. I started up Cyberlink PowerDVD, which can do GPU *decoding* of video, and set upon it the hefty task of playing back an AVCHD video at 1920x1080 @ 60 fps (encoded, on the CPU, by Sony Vegas 11). Just decoding, which is much easier (a less compute-intensive task) than encoding, caused my GPU Shark "GPU usage" stat to spike to 33%.
3. Running a fairly basic OpenCL 1.1 kernel, like rendering 1 million particles (a test available in GPU Caps Viewer), hits the GPU for 50% usage.
4. Running a Vegas Pro 11 rendering task hits the GPU for... 0.0% usage?! What?!?! And the temperature of the GPU is exactly the same as if it were idle? And the fan speed of the GPU is exactly the same as if it were idle? And the encoding is only about 30% faster than if I did CPU encoding? WHAT?!?!
At first I was enraged because I thought that Vegas was selling me snake oil and didn't really do GPU encoding AT ALL. But then I produced a workload that, at least, generates some meaningful results, if still really disappointing.
It's not that OpenCL itself is broken on my system; it seems to be working fine. I can use 70% of the GPU's cores and produce an enormous amount of heat running an OpenCL 1.1 kernel. Direct3D 11 and OpenGL 4.1 3d rendering applications, such as games, work fine. GPU decoding/playback (using a different application, CyberLink PowerDVD) of movies encoded with Sony Vegas, work fine. But Sony Vegas doesn't put ANY detectable load on my GPU at all -- at least, when the source media is on a hard drive!
I have source media from FRAPS, which uses an extremely inefficient, uncompressed codec so that it doesn't eat a lot of processing power while it captures real-time video to disk. This results in about 24 GB of data per half hour of media. Getting a single 2TB SATA 3GB/s disk from ~2010 to pull this amount of data at a fast enough rate to keep up with the data-hungry GPU might indeed be a bottleneck.
So I did a crazy thing and put my 16GB of RAM to use!
I used ImDisk to create a 6GB RAM disk, and TURNED OFF my paging file -- that's right, every last bit of data stored in virtual memory is now being stored in the RAM chips themselves, NOT in the page file on the (slow) SATA disk. So the SATA disk is out of the question.
To confirm, I opened Windows Resource Monitor and watched my disk I/O while both reading and writing from the virtual disk. It was only about 50 KB/s from various background programs doing cleanup tasks, and so on -- and this is while Sony Vegas was doing its thing.
But even with both the input and the output coming from / going to RAM, and with the transcoding apparently being taken care of by the GPU, I am only able to use about 23% of the GPU's compute power! And I'm betting that a large portion of that is a GPU-accelerated *DE*coder, because I used my compressed version of the movie (down to 1.6 GB AVCHD) as the source media when doing the in-memory conversion test. If you recall, watching the video in CyberLink PowerDVD at full speed took 33% GPU usage, so 23% is a reasonable number if you're decoding significantly slower than real-time (a 33 minute video taking 90 minutes = about 1/3 of the decoding rate demands of CyberLink).
So it seems that even with the hard disks completely taken out of the picture, and everything just involving the CPU, GPU and RAM, I'm using about 23% of the GPU's total power, and of that usage, about 95% of it is decoding the source video...
Is there any way to speed this up? Do I need faster RAM? A faster CPU? More memory bandwidth? I'm kind of grasping at straws here, but I'd like to reduce the encode time while maintaining very high quality videos. My goal is to be able to very quickly encode large videos recorded from a screen-capture program such as FRAPS, into a video format that will result in a YouTube HD 1080p video. I'd be satisfied if I could get the encode time down to about twice the run-time of the source material (so a 30 minute video should take no more than about an hour to encode).
Some screenshots:
http://dl.dropbox.com/u/28146435/vegas/1.png
http://dl.dropbox.com/u/28146435/vegas/2.png
http://dl.dropbox.com/u/28146435/vegas/3.png
http://dl.dropbox.com/u/28146435/vegas/4.png
http://dl.dropbox.com/u/28146435/vegas/5.png
http://dl.dropbox.com/u/28146435/vegas/6.png
Thanks.