写点什么

GPU 在计算机架构的新黄金时代还会继续闪耀吗?

  • 2021-09-02
  • 本文字数:4024 字

    阅读完需:约 13 分钟

GPU在计算机架构的新黄金时代还会继续闪耀吗?

本文最初发布于 Medium 网站,经原作者授权由 InfoQ 中文站翻译并分享。


John Hennessy 和 David Patterson 在 2018 年 6 月 4 日以 2017 年图灵奖(相当于计算机科学诺贝尔奖)的获得者身份发表了他们的图灵讲座《计算机架构新黄金时代》。讲座的三个关键见解分别是:


  1. 软件进步可以激发架构创新。

  2. 硬件/软件接口的进化为架构创新创造了机会。

  3. 市场最终会解决架构争论。


我想再补充第四点,补全这个循环:


在竞争中胜出的架构促进了后续的软件进化。


自从 Hennessy/Patterson 的演讲以来,市场可以说已经在 AI 领域中实现了见解 #3,将图形处理单元(GPU)推举为推动 AI 革命的架构胜出者。在本文中,我将探讨 AI 革命是如何激发架构创新和重新发明 GPU 的。我希望本文能回答我自己的一个重要问题:


GPU 能否在计算机架构新的黄金时代继续闪耀?

领域特定架构


Henessy 和 Patterson 提出了领域特定架构(DSA)的概念,旨在为计算机架构带来创新,努力迈向新的黄金时代。顾名思义,GPU 是 3D 图形领域的 DSA。它的目标在 3D 虚拟世界中渲染照片般逼真的图像;然而,几乎所有人工智能研究人员都在使用 GPU 来探索超越 3D 图形领域的想法,并在人工智能的“软件”,也就是神经网络架构方面取得了一系列突破。


GPU 在 3D 世界仍然是不可或缺的,同时它已成为人工智能世界的“CPU”,因为它促进了 AI 的软件创新。除了 3D 用途之外,GPU 架构师一直在努力将 GPU 的计算资源用于非 3D 用例。我们将这种设计理念称为通用 GPU(GPGPU)。


如今,我们看到行业中涌现了大批 AI DSA 而非 GPGPU,前者试图凭借更好的性能来取代 GPU。甚至 GPU 本身也挣扎在它的双重属性,AI DSA 和 3D DSA 之间。原因是 AI DSA 需要加速张量运算,这在 AI 中是很常见的运算,但在 3D 世界中是没有的。同时,为 3D 用途准备的固定功能硬件对 AI 来说一般是不需要的。


于是,架构争论的主题应该集中在以下几个方面:


  1. GPU 能否保住人工智能世界“CPU”的宝座?

  2. GPU 是否会分成两种 DSA,一种用于 AI,另一种用于 3D?


我的预测如下:


  1. GPU 硬件/软件接口将维持 GPU 作为 AI 世界“CPU”的地位。

  2. 基于 AI 的渲染会让张量加速成为 GPU 的一大支柱。

  3. 虚拟世界和现实世界互相映射的数字孪生理念将主导市场,最终解决架构争论。

GPU 硬件/软件接口


我们可以将 GPU 在 3D 领域中的主导地位和在 AI 世界中取得的巨大成功归功于它的硬件/软件接口,这种接口是 GPU 和 3D 图形软件架构师努力推行的。这种接口是解决以下悖论的关键。虽然 GPU 社区在继续提升 GPU 的通用性,但业界的其他人已转向更专业的硬件,以应对摩尔定律终结的困境。



GPU 流水线

双层可编程性


从概念上讲,GPU 是一个处理很多阶段的较长线性流水线。不同类型的工作项目在流经这个流水线时被一一处理。在早期,每个处理阶段都是一个功能固定的块。程序员对 GPU 能做的唯一控制就是调整每个块的参数。如今,GPU 硬件/软件接口让程序员可以自由地处理每个工作项目,无论它们是顶点还是像素。开发者无需在每个顶点或像素循环中处理循环头,因为 GPU 架构师在一个固定函数中实现了它。这种架构选择让程序员负责关注循环体,或称“着色器”,它通常以工作项目的类型命名,例如用于处理顶点的“顶点着色器”和用于处理像素的“像素着色器”。


现代游戏是如何通过这种线性流水线生成令人惊叹的画面的呢?除了通过流水线在一个 pass 中控制不同类型的着色器之外,程序员还可以通过流水线的多个 pass 逐步生成多张中间图像,最终生成屏幕上看到的图像。程序员快速创建了一个计算图,描述了中间图像之间的关系。图中的每个节点代表通过 GPU 流水线的一个 pass。

通用计算资源的集中池


一个中心化的通用计算资源池被不同的处理阶段之间共享,用来完成繁重的工作。这种方案的最初动机是为了负载平衡。在不同的使用场景中,各个处理阶段可能具有截然不同的负载。被称为着色器核心的计算资源逐渐变得更具通用性,以实现灵活性和产品差异化。


某一天,GPU 架构师尝试将中心化着色器池作为 GPGPU 提供给了非 3D 应用程序。这种设计方案让 GPU 在 AI 任务方面取得了突破,甚至将 AI 任务作为了自己的兼职工作。

均衡的专业能力


GPU 架构师时不时会在不改变硬件/软件接口的情况下,通过添加协处理单元来“加速”或“对领域定制”着色器池。纹理单元就是这样一个协处理单元,纹理贴图中的纹素通过它在到达着色器池的途中被提取和过滤。特殊函数单元(SFU)是负责执行超越数学函数的另一种协处理单元,处理对数、平方根倒数等函数。


虽然这听起来很像 CPU 中的超标量设计,但它们有一个显著区别:GPU 架构师根据着色器程序使用协处理单元的“平均”频率来分配协处理单元的吞吐量。例如,我们可以为纹理单元提供着色器池吞吐量的八分之一,因为我们假设纹理操作出现在基准测试或游戏中的时间平均为八分之一。当协处理单元处于繁忙状态时,GPU 会切换任务以让自己的资源被充分利用。

用于 3D 用途的张量加速


在前文中,我指出了 GPU 在 3D 用途中难以利用张量加速。我们看看如果我们改变 GPU 渲染典型游戏帧的方式,这种状况能否改变。GPU 首先为每个像素生成为像素着色所需的所有信息,并存储在 G-buffer 中。从 G-buffer 中,我们会计算如何点亮一个像素,然后是几个处理步骤,包括:


  1. 去除锯齿边缘(抗锯齿,AA)

  2. 将低分辨率图像放大到更高精度的图像(超分辨率,SR)

  3. 向整个帧添加一些特定视觉效果,例如环境光遮蔽、运动模糊、布隆过滤或景深。


我们称这种渲染方案为延迟着色,因为对像素的着色是“延迟”的,直到每个像素都获得所需的信息后才开始。我们将照明之后的处理步骤称为后处理。今天,后处理消耗了大约 90%的渲染时间,这意味着 GPU 的屏幕时间主要用在 2D 而非 3D 上!


NVIDIA 已经展示了用来做 AA 和 SR,基于 AI 的 DLSS 2.0,这项技术声称可以生成比没有 DLSS 2.0 的原生渲染图像更好看的画面。此外,NVIDIA 还为光线追踪提供了基于 AI 的蒙特卡罗去噪算法,这样我们就可以使用很少的光线来实现原本需要更多光线才能做到的画面质量。另外,人工智能技术为其他许多后处理类型提供了一类新的解决方案,例如用于环境遮蔽的 NNAO 和用于景深的 DeepLens。


如果基于 AI 的后处理成为主流,张量加速将成为 GPU 在 3D 用途上的支柱。GPU 分化为 3D DSA 和 AI DSA 的可能性也会下降。

3D/AI 融合


为了解决架构争论,我们要解决最后一个难题:我们最后是否应该移除 3D 渲染中的固定功能硬件,尤其是在用于 AI 用途时这样做?请注意,通过 GPGPU,GPU 可以将 3D 渲染作为纯“软件”来实现,而无需使用任何固定功能的硬件。


严格意义上讲,给定场景参数,3D 渲染模拟的是光子如何从光源穿过空间,与 3D 虚拟世界中的对象交互。GPU 的传统 3D 渲染过程是这个过程的一个非常粗略的近似。因此,微软将光线追踪宣传为“未来的完整 3D 效果”时表示,“[基于传统光栅化的]3D 图形是一个谎言”。然而,一位 3D 渲染纯粹主义者可能仍然不会理会光线追踪技术,因为在光线追踪过程中,我们是将光线从像素向后追踪到 3D 虚拟世界来实现 3D 渲染的,这也是不真实的。


这两种方法都是基于模拟的 3D 渲染的近似方案。在两种方案下,我们都会将 3D 虚拟世界的建模,或者说内容创建与渲染分离开来。在第一种方案下,对 3D 虚拟世界建模需要工程师和艺术家进行大量艰苦而富有创造性的工作,来描述每个对象及其与灯光交互方式的物理属性。在第二种方案下,通过渲染做到完全真实是不可能的,因为我们需要大幅简化 3D 渲染以在资源预算内达成多个性能目标。


相比使用最著名的科学知识和数学理论为给定问题寻找解决方案,人工智能方法是从数据中“学习”计算模型,或者说神经网络。我们通过反复试验迭代地调整网络参数。我们通过先前的参数估计向前运行网络并测量失配或称“损失”。然后我们根据梯度调整参数以减少损失,有效地向梯度的相反方向引导损失图景。这种机制称为反向传播,要求沿前向路径的所有计算都是可微的,以参与梯度计算。


神经渲染是一个新兴的人工智能研究领域,它使用上述方法来研究 3D 渲染。下面是我用来跟踪神经渲染进展的思维导图:



这个 3D 虚拟世界模型隐式表示为神经网络参数(参见 NeRF、GRAF、GIRAFFE),我们将真实世界图像与我们从虚拟世界渲染的图像对比来推断出这些参数。然后我们反向传播对比的梯度来调整神经网络参数。或者,我们可以从数据中学习显式 3D 网格(参见 DeepMarching Cube,GAN2Shape)。


实际上,对 3D 虚拟世界建模与学习神经网络参数是一回事。这个过程要求我们在前向路径中包含一个 3D 渲染流水线,并在多个紧密循环中集成 3D 虚拟世界的建模和渲染。通过对真实世界图像迭代多个渲染和测试,我们获得了可用于渲染虚拟世界新视图的所需模型和场景参数。


在这个框架内,我们可以选择不调整每个参数的整体,例如,保持物体的形状完整但估计其位置(参见 iNeRF)。这样,我们可以高效地尝试识别和定位有问题的对象,而不是对其建模。建模和识别任务之间不再存在区别。相反,问题在于我们想要“学习”或“估计”哪些场景参数。

结论


因此,在人工智能解决问题的范式下,3D 渲染的目标不仅是生成 3D 虚拟世界的逼真图像,而且还是根据现实世界来构建虚拟世界。此外,新的框架通过以下方式重新定义了 3D 和 AI:


  1. 3D 渲染成为 AI 训练循环中必不可少的操作

  2. 训练,或“梯度下降”,过去只出现在云中的神经网络训练过程,现在则是推理的一部分。

  3. 照片级图像与保持真实世界和虚拟世界之间的对应关系是同样重要的。


数字孪生理念要求将庞大且不断变化的现实世界带到其尚未开发的孪生虚拟世界中,并不断维持两者之间的对应关系。通过神经渲染获得的虚拟对象需要与通过经典方法构建的虚拟对象共存。因此,我相信神经渲染和传统渲染将在 GPU 上融合,充分利用其成熟和高性能的 3D 流水线。数字孪生的需求将由未来的 GPU 负责实现。我们还需要在 GPU 端做很多工作来实现“可微”,以参与 AI 训练循环的梯度计算,。


假设 GPU 因响应 3D 世界中的 AI 进展而获得原生可微和张量加速能力,我预计 GPU 的双重人格将化为一体。


然后,GPU 会维持其首选架构的地位,继续促进 AI 软件的进一步发展,并最终在计算机架构新的黄金时代继续闪耀。


原文链接:


https://towardsdatascience.com/will-the-gpu-star-in-a-new-golden-age-of-computer-architecture-3fa3e044e313

2021-09-02 10:306115
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 545.7 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

基于EMR的新一代数据湖存储加速技术详解

阿里云大数据AI技术

大数据 企业号九月金秋榜

面试官:请实现一个JavaScript深拷贝

loveX001

JavaScript

OptaPlanner 开源项目

积木思维

Java 8 + 10 = Java 18

钟奕礼

java;

java多线程——CAS

StackOverflow

编程 计算机网络 9月月更

惊为天人!从Sql到Nosql,redis+mysql从架构到优化全覆盖

Geek_0c76c3

Java 数据库 开源 架构

茂名是几线城市?有正规等保测评机构吗?

行云管家

网络安全 等保测评 等级测评 茂名

105道Java面试题,认真思考对你面试很有价值

Geek_0c76c3

Java 数据库 开源 程序员 面试

重磅发布|腾讯云容器安全服务网络隔离功能已上线

腾讯安全云鼎实验室

云安全 容器安全

数维图API文档:SovitJS编辑器开放API说明

数据可视化平台

数维图编辑器 Sovitjs编辑器 数维图API 可视化编辑器 可视化引擎

规划问题的概念

积木思维

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

三步“上链”,从此告别黑心假酒

旺链科技

区块链 产业区块链 企业号九月金秋榜 酒业

数据中台体系规划建设

穿过生命散发芬芳

数据中台 9月月更

计算机网络——随机接入

StackOverflow

编程 计算机网络 9月月更

计算机网络——回退N帧协议

StackOverflow

编程 计算机网络 9月月更

《近期BSN开发常见问题答疑(2022.9.23)》

BSN研习社

BSN 区块链、

低代码实现探索(五十)后台复杂业务构建扩展

零道云-混合式低代码平台

KaiwuDB 正式加入中国信通院数据库应用创新实验室

KaiwuDB

IPQ5018, 802.11ax,wifi 6e,QCN9074//IPQ8072A IPQ8072 IPQ8074 IPQ8074A 4x4/8x8 2.4G & 5G 802.11ax //Wallys

wallys-wifi6

IPQ8072 ipq5018 IPQ8074

Java面试:你了解HashMap吗?

钟奕礼

编程 面试 java;

腾讯云入选Gartner CPaaS市场指南“代表厂商”,数实融合和全球化布局受认可

科技热闻

OptaPlanner是什么

积木思维

银行使用堡垒机成功案例分享一二

行云管家

银行 堡垒机 IT运维 IT资产

OBCP实验全面升级|官方为你送上备考攻略+福利

OceanBase 数据库

基于Spring Cloud与Docker如何搭建一个电商平台项目

Geek_0c76c3

Java 数据库 开源 程序员 架构

9面阿里Java岗,最终定级P6拿P7工资,分享学习经验

Geek_0c76c3

Java 数据库 开源 程序员 架构

Docker与Jib(maven插件版)实战

程序员欣宸

Docker 9月月更 Jib

设备健康管理“悬丝诊脉”之【石化行业往复式压缩机】

PreMaint

设备健康管理 设备预测性维护 往复式压缩机

阿里云云通信作为CPaaS全球代表服务商,上榜Gartner报告

阿里云CloudImagine

阿里云 云通信 通信云 Gartner

开发者有话说|谢谢当年那个埋下对科技热爱的种子那个少年

宇宙之一粟

个人成长 人生故事 9月月更

GPU在计算机架构的新黄金时代还会继续闪耀吗?_AI&大模型_CP Lu_InfoQ精选文章