英伟达在 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 在通用计算领域有了立足点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)