APP下载

GPU通用计算及其在计算智能领域的应用

2015-11-26丁科谭营

智能系统学报 2015年1期

丁科,谭营

(1.北京大学 机器感知与智能教育部重点实验室,北京100871;2.北京大学 信息科学技术学院,北京100871)

GPU通用计算(general purpose computing on GPUs,GPGPU)是一种利用图形处理器(graphics processing unit,GPU)解决通用计算任务的异构计算方式。

最初的GPU只是功能专一的协处理器,用以帮助中央处理器(central processing unit,CPU)从繁重的图形图像处理任务中解脱出来。为满足人们对图像处理实时性和精确度不断高涨的需求,在过去的十多年间,GPU的体系结构和制造工艺都取得了长足的进步;GPU的计算性能及计算精度都得到了大幅提升。如今,GPU的浮点计算能力早已远超同时期的CPU。

图像处理任务具有高度并行的特点,这使得GPU从诞生之日起,便采用多核心的设计方案。随着GPU性能的不断增强和可编程性的日渐提高,GPU的用途不再局限于传统的图形图像处理。目前,GPU已经广泛应用于从小到图像解码,大到超级计算机的各种计算领域,进入到了高性能计算的主流行列。

Owens等[1-2]全面综述了 2007 年之前的 GPU通用计算的进展情况。然而,在过去的几年里,GPU软硬件条件都发生了极大的发展变化。GPU高级编程平台,如CUDA、OpenCL等的出现,更是使得GPU通用计算的面貌发生了深刻的变化。

本文在已有文献综述的基础上,总结了GPU通用计算领域最新的软硬件发展及在计算智能领域的应用。文章首先介绍GPU通用计算出现的背景,包括传统CPU面临的困难与挑战以及GPU作为通用计算器件的特点与优势。接着,文章回顾GPU通用计算开发工具和平台的发展历程。然后,本文转向GPU通用计算的现状,重点介绍主流的GPU编程平台——NVIDIA GPU专属的CUDA平台和开放标准的OpenCL平台。……

登录APP查看全文