What is NVIDIA CUDA Technology
What is NVIDIA CUDA technology and why CUDA can accelerate Video Transcoding?
First thing first, with the rising of CUDA technology from NVIDIA laboratory, most of people simply believe CUDA accelerate everything while few of them dig deeper to find out what is authentic versatility of CUDA technology and concerning what real life is related, why NVIDIA CUDA can speed up our video transcoding?
Basic Concept of CUDA
CUDA is not a ready-have word but an acronym for Compute Unified Device Architecture. It is a parallel computing architecture developed by NVIDIA Company, who specializes in the development of graphics processing units and chipset technologies. Essentially specking, CUDA is architectural computing engine working on NVIDIA graphics processing units. And they are accessible to program developers through diverse of industry standard programming languages.
Note: so far CUDA supported C language is still limited within certain range. Fortunately Fermi GPUs, next generation CUDA now have (nearly) full support of C++.
How does CUDA work?
NVIDIA CUDA examples can be found from variety computing area, even from biology to chemistry. But most of these high-end utilizations are far away from our daily life. Fortunately, CUDA also rocks consumer's computer mainly on the key areas of video transcoding. And then you may ask: Why on earth CUDA can accelerate Video Transcoding?
Working principle: At beginning, you need to understand that CUDA does not act on video transcoding directly. It just gives CUDA-enabled video transcoder access to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs (check below chart). Unlike CPUs however, GPUs have a parallel throughput architecture that emphasizes executing many concurrent threads slowly, rather than executing a single thread very quickly. Here is CUDA processing flow:
In a word, NVIDIA CUDA accelerates video transcoder in two major approaches:
1. By distributing video decoding / encoding pressure to GPU's stream processors, CUDA reduces the heavy burdens loaded on CPU alone.
2. Thanks to GPU's parallel architecture, CUDA accelerates any computing process that CUDA is enabled.