GPGPU
General Purpose Graphic Processing UnitAbout
The graphics processing unit(GPU) has become an essential component in computing systems. As computing power and programmability in GPU are increased rapidly, it is used as an accelerator for the applications outside the domain of traditional computer graphics. Currently, there are two typical parallel computing frameworks for GPU: CUDA and OpenCL. Using these frames works, we can write GPU programs which describe the parallelisms in the applications. In GPU, there are a variety of memory with different characteristics. So, memory optimization should be considered in GPU programming to obtain high performance gain. If not, performance increase may be lower than the expected even if the application has high parallelism. Since CPU and GPU can execute in parallel, we can exploit task parallelism in the application and job scheduling between CPU and GPU is an import issue. In many GPU systems, GPU has a separate memory and data should be transferred between CPU and GPU memory. Since communication overhead is not negligible, this overhead should be hidden by the asynchronous communication. We have performed the research for GPGPU considering these optimization issues. Especially, we developed the GPU applications for the transcoder called "Umile Encoder" under the support by Seoul R&BD Program (JP090955).