基于GPU平台利用CUDA加速图像处理算法 实时处理高清图像

来源:互联网 发布:拼音读法软件 编辑:程序博客网 时间:2024/06/10 22:31

        近年来,以NVIDIATesla为代表的异构芯片(协处理器)逐渐被引入到通用计算领域中。最初的图形处理(GraphicProcessing Unit, GPU)就是用来处理大规模的并行计算,并且GPU的并行处理能力在不断的上升。GPU将更多的晶体管用于执行单元,而非像CPU那样用作复杂的数据cache和指令控制。由于GPU具有超强的浮点计算能力,除了在传统领域(图形显示,多用于游戏)的应用以外,GPU越来越多地应用在科学计算领域上,并且逐渐进入高性能计算的主流。

        CUDA(ComputeUnified Device Architecture,统一计算设备架构) 是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的高性能计算问题。CUDA编程是在C语言上的基础上对C语言的扩展,不再需要借助于图形学API,CUDA开发人员只需要在C语言的基础上从CPU过度到GPU上,CUDA提供了简单、容易的GPU开发工具,因此对于开发者来说,CUDA的开发门槛大大降低了。CUDA编程采用了异构体系结构的模式,CPU作为主机,GPU作为CPU的协处理器(或称设备),CPU与GPU协同工作,CPU负责逻辑性强的事务处理和串行计算,GPU负责高度并行化的计算任务,CPU与GPU共同完成加速任务。

       CUDA编程语言的推出,使得在GPU平台上的高性能计算应用软件越来越多。目前,CUDA在石油勘测、流体动力学模拟、天文计算、分子动力学仿真、生物计算、图像处理、音频视频编解码、医疗成像、金融、数据库等领域得到广泛的应用,在很多应用中获得2-3个数量级的加速比,极大地提高了性能。

        目前,很多图像处理中,如实时人物抠像、图像识别、图像检索等,对图像的要求越来越高,如720P、1080P图像的处理,在CPU平台上已无法实现这些高清图像的实时处理,严重滞后于应用的需求,而采用GPU可以相对CPU提高数十倍的性能,快速实现高清图像的实时处理,给图像处理带来了新的方法。

        采用CPU+GPU架构可以获取以下的好处:

1)速度快,采用GPU可以获得CPU的数十倍数百倍的性能,可以实时处理高清图像;

2)成本低,在普通PC机器上插上一块1000多元的Geforce GPU卡即可获得数万元、数十万元高端服务器的性能;

3)减少CPU利用率,提高系统的稳定性。

本人在CUDA方面有丰富的项目经验,并且做过图像处理方面的CUDA加速,完成过图像缩放、旋转、抠图、匹配等算法的CUDA加速,性能加速数十倍,满足了高清图像的实时处理。

有这方面需求的可以QQ(331526010)或Email(zhang03_11@163.com)联系。