CUDA架构下的快速图像去噪

2009-7-3 作者: 李军 李艳辉 陈双平 来源: 万方数据

关键字: 图形处理器 图像去嗓 统一计算设备架构 并行数据处理 

图像处理通常需要较大的计算量,其中图像去噪是经常使用的一种预处理算法,研究其快速算法具有重要意义。图形处理器具有强大的并行计算能力,但大部分时间处于闲置状态。统一计算设备架构提供了一种简单易用的开发环境,可利用图形处理器进行通用计算。提出了基于统一计算设备架构的快速图像去噪算法,可以利用GPU的计算能力,加快去噪过程,显著地减少计算时间。

  图像去噪是图像处理领域的一项关键技术,在图像处理领域的有着广泛用途。图像处理的本质是大规模矩阵运算,特别适合并行处理。但CPU通用计算很难利用该特性。GPU在并行数据运算上具有强大的计算能力,特别适合做运算符相同而运算数据不同的运皇pq,当执行具有高运算密度的多数据元素时,内存访问的延迟可以被忽略”。用GPU进行图像去噪可以加快图像去噪的速度,该理念可以拓展到其他图像处理领域。运用NVIDIA统—计算设备架构CUDA在GPU上进行KNN滤波器图像去噪,提高了KNN滤波器图像去噪的运行效率,计算效果令人满意。相对CPU而言,运算速度取得重大提高。

 

  1、关键技术介绍

 

  1.1 GPU简介

  由于高性能图形计算需求的推动,GPU技术发展极为迅速,其计算性能的发展速度远超过CPU计算性能的发展速度,见图l。从图l可知,—般通用CPU的计算性能只有10-20GLFOPS,而GPU的计算性能已经达到数百GLFOPS。

  2007年5月,NVIDIA推出了面向高性能计算的Tesla C870GPU,专为汁期呈序所i殳计。该GPU产品包含了主频为1.35 GHz2003 2003200420042005 20052006 20062007 20a7图1 CPU与GPU浮点性能的比较的128个并行处理单元,1.5 GB的专用存储器,其峰值计算性能达到518GFLOPS,支持IEEE 754单精度浮点运算,和CPU浮点单元一样支持各种高级的浮点操作,GPU内存访问带宽高达76.8 GB/s,远高于常规的CPU内存访问带宽。NVIDIA Tesla GPU计算解决方案在设计上与现行的基础架构做到了无缝衔接。

  GPU强大的计算能力,通常是为3D图形计算而设计,主要用于游戏领域,在这类应用之外,GPU大部分时间处于空闲,造成资源的极大浪费。CUDA架构的提出,使得利用GPU进行通用计算变得简单易行。此外,通过将多个GPU组成机群,其计算能力可以同超级计算机媲美

  1.2 CUDA软件开发环境

  2007年7月,随着一系列NVIDIA"resla GPU计算解决方案的发布,NVIDIA公司宣布提供NVIDIA CUDA 1.0版本的C语言编译器和软件开发套件(SDK),还支持许多C++的特性。CUDA代表“计算统一设备架构”,是NVIDIA公司专为计算而发展的—套应用软件开发环境与工具软件。结合GPU运算技术和CUDA软件开发环境,为对运算能力要求极高的计算密集型应用程序提供了极具弹性的大型并行计算平台嘲。此外,公司还发布了—款可让MATLAB程序运用标准GPU函数库加速应用程序运算的插件套件模板。CUDA软件堆栈包括—个硬件驱动程CUDA Driver,—个应用程序编程接口Applicafion和它的Runtime,还有CUDA的函数库CUDA Libraries,如图2所示。

  CUDA使得熟悉c语言的编程人员专注于开发并行程序而不是处理图形API。为了简化开发,CUDA允许程序员将CPU和GPU的代码混合记录到—个程序文件中。NVCC作为编译器驱动程序负责从主机代码中分离出设备代码,如图3所示。与常规的GPU编程不同,CUDA软件使得GPU编程和在CPU上编程一样方便,函数是在主机CPU上执行还是在GPU上执行,由函数的声明和函数所属的库在编译时决定,并不需要在程序执行时进行相应的处理或进行特别的编程说明。CUDA程序把要处理的数据细分成更小的区块,然后并行处理。采用CUDA技术的GPU既可作为灵活的线程处理器来运行,由数千个计算程序来调用线程,协作解决复杂的问题,也可作为流处理器运行在具体的应用程序中,其中的各个线程并不进行信息交流

  目前,NVIDIA仅对基于Tesla架构的GPU开放CUDA功能,包括G80以后的显卡和最近的Quadro显卡和Tesh显卡。本文实验使用的显卡是GeForce 8400M GS,该显卡i孝洧16个统一渲染单元,计算兼容性数值为1.1,支持更多的CUDA原子函数。




<<首页 <上一页  1  2  3  4  下一页>  末页>>  
责任编辑:熊东旭