为什么 GPU 会成为通用计算的宠儿?

英伟达在 2016 年的强势崛起,GPGPU (GPU 通用计算)功不可没。

有许多原因使 2016 称得上是 GPU 之年。但事实上,除了在核心领域(深度学习、VR、自动驾驶),为什么把 GPU 用于通用计算仍然很模糊。

搞清楚 GPU 的作用,要先从 CPU 开始。大多数人对计算机 CPU 并不陌生,这可能要归功于英特尔——作为在事实上垄断了 PC、服务器平台 CPU 近十年的供应商,英特尔的巨幅广告支出,直接导致每个人都或多或少听说过英特尔从笔记本到超算的各层级产品。

CPU 的设计用途,是对多种应用进行低延迟处理。CPU 非常适合用于多功能任务,比如电子表格、文字处理、 Web 应用等等。于是,传统上 CPU 是绝大多数企业的首选计算方案。

过去,当公司的 IT 部门经理说要订购更多计算设备、服务器,或者增强云端的性能,他们一般想的是 CPU。

虽是个多面手,一枚 CPU 芯片能承载的核心数量却有很大限制。大多数消费级芯片只有八核。至于英特尔的企业级产品线,除了为并行计算而设计的 Xeon Phi 这个“怪胎”,主流至强产品(E3、E5、E7 系列)最多只有 22 核。

CPU 从单核发展到今天的多核用了几十年。对 CPU 这么复杂的芯片进行扩展有极高的技术难度,并且需要综合多个方面:比如缩小晶体管体积、降低发热和优化功耗等。今天的 CPU 在性能上所取得的成绩,很大程度上要归功于英特尔和 AMD 工程师的多年努力探索。而至今全球未有第三家足以与其 竞争的 PC CPU 供应商,在侧面说明了他们的技术积累,以及研发 CPU 的技术难度。

GPU 才是摩尔定律的宠儿?

用 FLOPS 来衡量,CPU 每年大约有 20% 的性能提升(雷锋网(公众号:雷锋网)注:此处有争议)。而这是对于高度优化的代码而言。

随着 CPU 性能提升的放缓(雷锋网注:尤其近几年来芯片制程工艺进步缓慢。硅基芯片的极限大约在 7nm,而替代硅的新技术尚未成熟),其数据处理能力越来越跟不上数据增长的速度。做个简单对比:IDC 估算,全世界数据增长的速度大约是 40%,并在不断加快。

简单来说,摩尔定律目前已终结,而数据却在指数级增长。

英特尔 Skylake、Kabylake、Coffelake 路线图

数据增长速度超过 CPU 性能提升速度带来的后果是:人们不得不利用各种技巧来避免计算性能瓶颈,比如降采样、索引(indexing),或者采用昂贵的 scale-out  战术来避免长时间等待系统回应。

我们现在面对的数据单位是 exabytes,并正在迈向 zetabytes。而曾经显得无比庞大的 TB,在消费者领域已经十分常见。企业级 Terabyte  存储的定价已降到个位数(美元)。

在这个价格,企业把所有获取的数据保存起来,这过程中,我们生成了足以淹没 CPU 级别数据处理能力的工作集。

这跟 GPU 有什么关系呢?

GPU 的架构与 CPU 很不一样。首先,GPU 并不具备多功能性。其次,与 消费级 CPU 个位数的核心数目不同,消费级的 GPU 通常有上千个核心——特别适合处理大型数据集。由于 GPU 在设计之初有且只有一个目的:最大化并行计算。每一代制程缩减直接带来更多的核心数量(摩尔定律对于 GPU 更明显),意味着 GPU 每年有大约 40% 的性能提升——目前来看,它们尚能跟上数据大爆炸的脚步。

CPU 与 GPU 的性能增长对比,用 TeraFlops 横梁

GPU 诞生之初

在 90s 年代,一批工程师意识到:在屏幕上进行多边形图像渲染,本质上是个能并行处理的任务——每个像素点的色彩可以独立计算,不需要考虑其它像素点。于是 GPU 诞生,成为比 CPU 更高效的渲染工具。

简而言之,由于 CPU 在图像渲染方面的能力不足,GPU 被发明出来分担这部分工作,此后就成了专门搞这方面的硬件。

有了上千个更加简单的核心,GPU 能高效地处理让 CPU 十分吃力的任务。只要有合适的代码配合,这些核心就能处理超大规模的数学运算,实现逼真的游戏体验。

但有一点需要指出:GPU 的强大性能,不只来源于增加的核心数量。架构师们意识到,GPU 的处理性能需要有更快的内存相配合才能发挥。这让研究人员不断研发更高带宽版本的 RAM 内存。今天,GPU 的内存带宽相比 CPU 已经有数量级上的领先,比如前沿显存技术 GDDR5X,HBM2,还有开发中的 GDDR6。这使得 GPU 在处理和读取数据上都有巨大优势。

有这两大优势,GPU 在通用计算领域有了立足点。

GPU 与 CUDA

事实证明,高端游戏玩家和计算机科学家在硬件需求上有不少交集。计算机科学家们逐渐发现,利用 GPU 的大量核心执行复杂数学运算,在 HPC 领域有巨大应用前景。但是,写出能高效运行于 GPU 的代码极度困难。想要驾驭 GPU 计算性能的研究人员,必须把相关运算“黑进”图形 API,让显卡以为要处理的计算任务和游戏一样:决定像素色彩的图像渲染计算。

但一切在 2007 年发生了变化。这一年,英伟达发布了 CUDA(Compute Unified Device Architecture)。 它支持 C 语言环境的并行计算。对于那些靠 C 语言发家的程序猿,他们可以直接开始写基础的 CUDA 代码,一系列运算任务从此可以很容易地并行处理。

CUDA 诞生的结果是:似乎在一夜之间,地球上的所有超级计算机都采用了 GPU 运算。深度学习、自动驾驶以及其他 AI 领域开始焕发光芒。

并行计算

并行计算是发挥 GPU 性能的关键。这意味着你可以同时处理运算,而不是一步步进行。复杂问题可被分解为更简单的问题,然后同时进行处理。并行计算适用于 HPC 和超算领域所涉及的许多问题类型,比如气象、宇宙模型和DNA 序列。

并不是只有天体物理学家和气象学家才能充分利用并行计算的优点。事实证明,许多企业应用能从并行计算获得超出寻常比例的好处。这包括:

  • 数据库查询
  • 密码学领域的暴力搜索
  • 对比不同独立场景的计算机模拟。
  • 机器学习/深度学习
  • 地理可视化

你可以联想一下你们公司所面临的数据问题——那些数据量和复杂程度极高,你以前连想都不敢去想怎么处理,但深层次分析很有可能会有助于解决的问题。我怀疑这样的问题是可并行计算的——而 CPU 层次的计算解决不了,不代表 GPU 也不行。

CPU vs. GPU 小结

作为小结,GPU 在以下方面有别于 CPU:

  • 一枚 GPU 芯片有几千个核心。通常意义的 CPU 最多只有 22 个。
  • GPU 为高度并行的运行方式而设计。CPU 为一步步的连续计算而设计。
  • GPU 的内存带宽比 CPU 高得多。
  • CPU 适合于文字处理、运行交易数据库、网络应用等场景。 GPU 适用于 DNA 排序、物理建模、消费者行为预测等任务。

经济成本

上文中,我讨论了问什么 GPU 代表着计算的将来。但它的商用价值如何呢?

GPU 在经济成本上其实占优势。首先,一个完整的 GPU 服务器比一个完整的 CPU 服务器要贵很多。但两者之间难以直接对比。一个完整的 8 路 GPU 服务器,成本可达八万美元。但一个中等的 CPU 服务器配置大约只需要 9000 刀。当然,RAM 和 SSD 的使用量对价格有很大影响。

咋看之下,CPU 好像比 GPU 划算多了。但请注意,250 个这样的“中等” CPU 服务器在并行计算性能才相当与一台如上所说的 GPU 服务器(雷锋网注:只是作者个人的估算,以支撑他的观点,大家看看就好)。

很明显,如果你要做的只是并行计算,选择 GPU 服务器要划算多了。极端情况下,如果硬要上 250 台 CPU 服务器,加上电费、场地费、网费、温控、维护管理费,最终价格会是天文数字。因此,如果并行计算占了公司工作量的大部分,从投资回报率的角度,GPU 是正确的选择。

对生产力的影响

在延迟对数据分析的影响方面,我已经写了很多。我的基本论点是:当一个开发者需要等待几分钟才能得到查询结果,人的行为会发生变化。你开始找捷径,你开始用更小的数据集执行查询操作,你只会执行不耗费时间的查询,你不再探索——执行几个查询就把这当做是方向。

提高计算机响应速度对生产力的提升很难衡量。但你可以想一想,宽带时代和拨号时代的生产力差别。

最后,在云时代,与其建立自己的 GPU 服务器, 租用 GPU 云计算服务对于很多客户来讲十分划算。GPU 计算的门槛已经无限降低。

本文作者:三川

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-08-19 23:36:29

为什么 GPU 会成为通用计算的宠儿?的相关文章

CPU和GPU的区别是什么?

  首先需要解释CPU(Central Processing Unit)和GPU(Graphics Processing Unit)这两个缩写分别代表什么.CPU即中央处理器,GPU即图形处理器.其次,要解释两者的区别,要先明白两者的相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元.一句话,两者都为了完成计算任务而设计. 先直观地上个示意图: 从图中我们可以看到,CPU和GPU均有自己的存储(橙色部分,实际的存储体系比图示更为复杂),控制逻辑(黄色部分)和运算单元(绿色

CPU和GPU有何区别呢

  CPU即中央处理器,GPU即图形处理器.其次,要解释两者的区别,要先明白两者的相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元.一句话,两者都为了完成计算任务而设计. 两者的区别在于存在于片内的缓存体系和数字逻辑运算单元的结构差异:CPU虽然有多核,但总数没有超过两位数,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并辅助有很多加速分支判断甚至更复杂的逻辑判断的硬件;GPU的核数远超CPU,被称为众核(NVIDIA Fermi有512个核).每个核拥有的缓存大

Anaconda GPU计算入门指南

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud GPU计算已成为数据科学领域的重要组成部分.计算需求的不断增长,使得GPU计算逐渐流行起来.此外,现在每个主要云计算提供商都提供了GPU服务,比如阿里云,因此现在访问高性能硬件是非常简单的一件事.但是,自行构建GPU软件是相当吓人.幸运的是,Anaconda Distribution可以很容易地启动GPU计算,并且可以从我们的软件包库中直接安装几个支持GPU的软件包.在这篇博客文章中,我们将向你介绍如何在An

AMD下一代GPU设计架构“Southern Island”

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   正在进行的Computex2010电脑展在今天开幕后几乎达到巅峰,各家作为亚洲最大.世界第二大的电脑展会,Computex一直引领着行业的潮流发展.在今天的展会上,中关村在线核心硬件事业部搜集各方面信息,终于汇总了AMD下一代GPU设计架构"Southern Island",中文名为南岛的GPU架构产品相关信息.现在就让我们一起去关注这款GP

AMD 向 LibreOffice 贡献 GPU 代码 电子表格速度提升500倍

AMD称它是开源项目的真正信徒,它的工程师向多个开源项目贡献了代码,其中一个项目就是知名的开源办公软件LibreOffice.办公软件的电子表格 涉及到大量数学运算,而GPU在执行通用计算方面的效率要远高于CPU.如果软件能利用GPU去加速计算,将能大大提升速度. AMD的工程师向 LibreOffice项目贡献利用GPU的OpenCL内核.测试显示,在启用GPU加速之后,电子表格计算速度提升了超过500倍:0.25秒对2分21秒. 文章转载自 开源中国社区 [http://www.oschin

cpu-像天河2号这样的超级计算机,是什么原理?

问题描述 像天河2号这样的超级计算机,是什么原理? 是并行计算还是什么? 每秒5.49亿亿次是什么意思?可以看成一个CPU的Hz吗? 解决方案 更何况很多情况下,出于成本的考虑,我们也不会这么做.总之,那个数字其实不重要.超级计算机不能光看理论运算速度,那个只要有钱就能办到.要看它的架构是否合理,软件是否有效管理等等,这个才是技术. 解决方案二: 这里说的运算速度叫做"峰值运算速度",它是指理论上群集内所有节点运算能力之和. 超级计算机由很多很多的CPU.GPU(支持通用计算的图形处理

从零开始学习OpenCL开发(一)架构

 多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012   本文将作为我<从零开始做OpenCL开发>系列文章的第一篇.   1 异构计算.GPGPU与OpenCL   OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平台的.旨在充分利用GPU强大的并行计算能力以及与CPU的协同工作,更高效的利用硬件高效的完成大规模的(尤其是并

真的,关于深度学习与计算机视觉,看这一篇就够了 | 硬创公开课

今年夏天,雷锋网将在深圳举办"全球人工智能与机器人创新大会"(GAIR),在本次大会上,我们将发布"人工智能与机器人Top25创新企业榜",慧眼科技是我们重点关注的公司之一.今天,我们邀请到慧眼科技研发总监李汉曦,为我们带来深度学习与计算机视觉方面的内容分享.雷锋网雷锋网(公众号:雷锋网) 嘉宾介绍:李汉曦,慧眼科技研发总监,澳大利亚国立大学博士:曾任澳大利亚国家信息通信公司(NICTA)任高级研究员:人脸识别,物体检测,物体跟踪.深度学习方面的专家,在TPAMI,

从零开始学习OpenCL开发(一)架构【转】

转自:http://blog.csdn.net/leonwei/article/details/8880012 多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012   本文将作为我<从零开始做OpenCL开发>系列文章的第一篇.   1 异构计算.GPGPU与OpenCL   OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平