-
Beating a Dead Horse For Good Measure: OpenCL, CUDA, and GPUs in Sony Vegas
Hello All,
These forum’s and Sony’s are saturated with talk of GPU support, OpenCL, and CUDA. My unyielding OCD to squeeze out as much performance from my PC as possible has caused me to read up on the topic for weeks. I am no expert on any topic but I get the general idea…I think. In posting this, I hoping to validate that I understand correctly and then can make the best choice for my hardware. I also hope this will make for a decent centralized resource for other Vegas users. Sony Vegas’ GPU utilization capabilities are determined my many factors. Here is what I have gathered:
1) The CUDA language is proprietary to NVIDA GPUs. CUDA is hardware agnostic but software must be coded specifically to utilize it. I assume NVIDIA likely controls or licenses the use of CUDA. If not, NVIDIA must have and still does push CUDA support among software/gaming developers. By doing so, they have secured demand for their GPUs. CUDA is arguably a better language and more efficient than OpenCL.
2) AMD’s GPUs utilize OpenCL which is also hardware agnostic but not proprietary. It is managed by the non-profit Khronos Group. OpenCL seems to be more widely used across many industries and applications but it is not updated as frequently as CUDA. As such, it is usually some years behind in some features when compared to current generation CUDA revisions. Nonetheless, it is still highly effective.
3) Vegas uses OpenCL for real time previewing.
4) Sony Vegas does not really utilize CUDA at all, but some of the rendering codecs used by Vegas do.
5) Main Concept limited their AVC codec to work with only certain GPU chips. Main Concept has not been updated for some time so newer cards may not be supported when rendering to Main Concept AVC (MC MPEG 2 as well?). What I do not know is if this limitation applies to both CUDA and OpenCL or just one of the languages. Anyone know? I have the option to render to either one “if available”.
6) In an effort to beat the competition and corner the market, NVIDIA, for the most part, stopped supporting OpenCL after their Fermi cards. Technically, pre and post Fermi NVIDIA GPUs should still boost rendering performance for CUDA enabled codecs. However, this is not the case with Main Concept due to their codec intentionally limiting all but certain unknown GPU chips.
Conclusion:
So which GPU is best for Sony Vegas? There are multiple answers depending on what your needs are. If improving rendering speeds are your primary concern and you often work with various codecs, my answer would be “good luck. Buy an 8 core Intel processor”. If you primarily stick to one codec, find the best GPU and driver for that codec within Vegas. If rendering speed is of no concern and you need a smooth real-time preview to make your editing more efficient, a modern AMD card seems to be the clear choice.
We could all cross our fingers and wait for the day when Sony Vegas enables CUDA support within the program to improve frame rates on real-time unrendered playback. Vegas GPU support has been enabled for a number of years and each subsequent version of the program has yet to do so. I do not think it is coming anytime soon. In all reality, it seems like Sony did us all a favor by sticking with OpenCL, the more widely compatible of the 2 languages. After all, it is not Sony’s fault that NVIDIA and Main Concept decided to play consumer-unfriendly market games. Software developers often write their code to support both OpenCL and CUDA. However, maintaining scalability in both languages is very challenging. This becomes exponentially more difficult when writing code for computationally heavy software…such as Sony Vegas. I am guessing that we would significantly more instability if Vegas were to attempt this.
——————————————————-
Subsequent questions:
1) My source material is often H.264 GoPro video and I render to the Sony AVC Blu-Ray templates. However, I am primarily concerned with improving the preview frame rate while I edit and will likely buy an AMD card soon. To get improved frame rates with OpenCL/GPU support, Should I match the project setting to the GoPro source video or transcode it to another format before editing so that I can make full use of the OpenCL enabled GPU? In otherwords, do the project settings and source video, as long as matched, impact the frame rate and OpenCL’s ability to improve it?
2) Which AMD cards are suggested and what should I look for in one? I have almost zero knowledge of AMD’s GPU lineup other than reading positive reports of the 79XX series and the R9-290. How do FirePro cards compare to their gaming counterparts in Sony Vegas? Are they worth the premium charged for them? I have found that NVIDIA’s Quadros don’t seem to be any better than their comparable gaming cards. If anything, they can be slower in my experience.
Current System: Intel i7 3930K | Asus P9X79 Deluxe | Nvidia Quadro 4000 & 2000 | OCZ Revo 480 GB PCI Express SSD | Windows 7 64 bit | Vegas Pro 12 (64)