GPU---并行计算利器

源于阿里巴巴CCO《猿来如此》分享

1 GPU是什么

      如图1所示,这台PC机与普通PC机不同的是这里插了7张显卡,左下角是显卡,在中间的就是GPU芯片。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的。

      GPU计算能力非常强悍,举个例子:现在主流的i7处理器的浮点计算能力是主流的英伟达GPU处理器浮点计算能力的1/12。

图1 显卡与GPU

2 为什么GPU计算能力如此强悍?

       图2对CPU与GPU中的逻辑架构进行了对比。其中Control是控制器、ALU算术逻辑单元、Cache是cpu内部缓存、DRAM就是内存。可以看到GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存。从实际来看,CPU芯片空间的5%是ALU,而GPU空间的40%是ALU。这也是导致GPU计算能力超强的原因。

图2 cpu和gpu硬件逻辑结构对比

 

      那有人讲了,为什么cpu不像gpu那样设计呢,这样计算能力也强悍了!

      为什么?CPU要做得很通用。CPU需要同时很好的支持并行和串行操作,需要很强的通用性来处理各种不同的数据类型,同时又要支持复杂通用的逻辑判断,这样会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂,计算单元的比重被降低了。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。因此GPU的芯片比CPU芯片简单很多。

      举个例子,假设有一堆相同的加减乘除计算任务需要处理,那把这个任务交给一堆(几十个)小学生就可以了,这里小学生类似于GPU的计算单元,而对一些复杂的逻辑推理等问题,比如公式推导、科技文章写作等高度逻辑化的任务,交给小学生显然不合适,这时大学教授更适合,这里的大学教授就是CPU的计算单元了,大学教授当然能处理加减乘除的问题,单个教授计算加减乘除比单个小学生计算速度更快,但是成本显然高很多。

3 GPU编程库

       GPU计算能力这么强,被广泛使用!比如挖矿(比特币)、图形图像处理、数值模拟、机器学习算法训练等等,那我们怎么发挥GPU超强的计算能力呢?---编程!

       怎么进行GPU编程呢?现在GPU形形色色,比如Nvidia、AMD、Intel都推出了自己的GPU,其中最为流行的就是Nvidia的GPU,其还推出了CUDA并行编程库。然而每个GPU生产公司都推出自己的编程库显然让学习成本上升很多,因此苹果公司就推出了标准OpenCL,说各个生产商都支持我的标准,只要有一套OpenCL的编程库就能对各类型的GPU芯片适用。当然了,OpenCL做到通用不是没有代价的,会带来一定程度的性能损失,在Nvidia的GPU上,CUDA性能明显比OpenCL高出一大截。目前CUDA和OpenCL是最主流的两个GPU编程库。

      从编程语言角度看,CUDA和OpenCL都是原生支持C/C++的,其它语言想要访问还有些麻烦,比如Java,需要通过JNI来访问CUDA或者OpenCL。基于JNI,现今有各种Java版本的GPU编程库,比如JCUDA等。另一种思路就是语言还是由java来编写,通过一种工具将java转换成C。

图3 GPU编程库

 

LWJGL (http://www.lwjgl.org/)

JOCL (http://www.jocl.org/)

JCUDA (http://www.jcuda.de/)

Aparapi (http://code.google.com/p/aparapi/)

JavaCL (http://code.google.com/p/javacl/

 

4 CUDA程序流程

图4 CUDA程序流程

5 实践---以图像处理为例

        假设我们有如下图像处理任务,给每个像素值加1。并行方式很简单,为每个像素开一个GPU线程,由其进行加1操作。

图5 例子

图6 核函数

图7 主流程函数

6 GPU加速效果

        下图是我实现的基于CUDA的P&D DEM图像预处理算法使用GPU的加速效果,GeForce GT 330是块普通台式机上的显卡,现在价格也就500人民币左右,用它达到了20倍的加速比,Tesla M2075是比较专业的显卡,价格一万左右,用它达到了将近百倍的加速比,这个程序i7 CPU单进程单线程要跑2个小时,而用Tesla M2075 GPU只花了一分多钟就完成计算。

图8 P&D DEM图像预处理算法加速效果

时间: 2024-09-01 06:32:30

GPU---并行计算利器的相关文章

GPU并行计算与Hadoop能够很好地统一结合架构不?

问题描述 Hadoop主要是能够利用更多的计算机资源来参与大量数据的计算,而GPU并行计算则是提高单机的运算速度.试问如果这两个可以结合起来是不是计算能力能够得到更大幅度的提升?本人只是这样设想,并没有任何实践经验,所以在这里请问懂行的高手能不能帮我解答这个疑惑?在此拜过! 解决方案 解决方案二: 理论是可以...解决方案三: 呵呵学习了

GPU Parallel Computing

 GPU                                                                                                          GPU英文全称Graphic Processing Unit,中文翻译为"图形处理器".GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器. GPU有非常多的厂商都生产,和CPU一

《CUDA高性能并行计算》----0.8 用户指南

本 节 书 摘 来 自 华 章 出 版 社 <CUDA高性能并行计算> 一 书 中 的 第0章,第0.8节, 作 者 CUDA for Engineers: An Introduction to High-Performance Parallel Computing[美] 杜安·斯托尔蒂(Duane Storti)梅特·尤尔托卢(Mete Yurtoglu) 著,苏统华 项文成 李松泽 姚宇鹏 孙博文 译 , 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算

GPU加速深度学习

1. 背景 一年半以前,AlphaGo完胜李世乭的围棋赛让深度学习(Deep Learning)这个名词家喻户晓,再度掀起人工智能的新一波热潮.其实深度学习背后的神经网络基础理论早在上世纪50年代就已提出,经过几起几落的发展,到了21世纪初,多层神经网络算法也日趋成熟.深度学习理论早在十多年以前就有重要突破,为何直到近年才出现爆发.这不得不提到2012年的一场竞赛. 2012年,Geoffrey E. Hinton(与Yann LeCun 和Yoshua Bengio并称为深度学习三驾马车)的弟

《CUDA高性能并行计算》----1.3 本章小结

本 节 书 摘 来 自 华 章 出 版 社 <CUDA高性能并行计算> 一 书 中 的 第1章,第1.3节, 作 者 CUDA for Engineers: An Introduction to High-Performance Parallel Computing[美] 杜安·斯托尔蒂(Duane Storti)梅特·尤尔托卢(Mete Yurtoglu) 著,苏统华 项文成 李松泽 姚宇鹏 孙博文 译 , 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算

《CUDA高性能并行计算》----2.4 推荐项目

本 节 书 摘 来 自 华 章 出 版 社 <CUDA高性能并行计算> 一 书 中 的 第2章,第2.4节, 作 者 CUDA for Engineers: An Introduction to High-Performance Parallel Computing[美] 杜安·斯托尔蒂(Duane Storti)梅特·尤尔托卢(Mete Yurtoglu) 著,苏统华 项文成 李松泽 姚宇鹏 孙博文 译 , 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算

国内云服务商亟需提供并行计算服务

本文作者祁海江,青岛五脉泉信息有限公司技术主管,宾夕法尼亚大学生物工程博士,南京大学计算机硕士.多年从事图形图像.3D视觉.神经计算.机器学习等算法研究. [摘要]云计算服务本质上是一种社会智力资源的共享,通过云端的技术封包,降低了难度门槛,使得更多用户可采用"很难很先进"技术.中国的移动互联新经济高度繁荣,需要有相应技术高度的云计算服务作为龙骨支撑.当今计算技术很明显的趋向是: 视频音图+3D+规模机器学习+大数据分析 =>高强度计算任务 =>云GPU并行运算 而中国的云

《CUDA高性能并行计算》----2.3 本章小结

本 节 书 摘 来 自 华 章 出 版 社 <CUDA高性能并行计算> 一 书 中 的 第2章,第2.3节, 作 者 CUDA for Engineers: An Introduction to High-Performance Parallel Computing[美] 杜安·斯托尔蒂(Duane Storti)梅特·尤尔托卢(Mete Yurtoglu) 著,苏统华 项文成 李松泽 姚宇鹏 孙博文 译 , 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算

GTC China 曙光发布深度学习重量级新品XMachine Pascal

9月13日,英伟达在北京GTC China(GPU技术大会),曙光公司发布深度学习最新产品XMachine Pascal深度学习系统. NVIDIA是加速深度学习发展方面的先行者,曙光公司作为国内最早从事异构计算技术研究的机构,2009年开始交付国内第一台异构计算平台,并在国内率先推出了适用于深度学习的XSystem系统,从软件XSharp.硬件XMachine两个方面为用户提供深度学习的硬件支撑和软件优化.2015年,曙光公司在IDIC大会上宣布联合NVIDIA成立"ICT-SUGON-NVI

Windows 7与CUDA架构的兼容性测试

图形巨头NVIDIA推出的GPU通用计算技术CUDA相信大家都有所了解,然而随着Windows 7逐渐成为热门的关注对象,有一部分人对Windows 7是否支持CUDA.能否很好的支持CUDA产生了质疑.原因很直接--因为Windows 7支持微软自家的Direct compute! 但事实真的是这样吗?今天,笔者就再一次针对CUDA的概念.架构等进行剖析,并且分别在Windows Vista与Windows 7操作系统上对CUDA性能进行对比测试,以达到拨乱反正的效果. 在进行正式的对比评测之