分享

GPU高功耗软肋已成最大危机?“AI 硅脑”迎来战国时代,GPU十年霸业将遭“围剿” | 独家观点

 温江0891 2017-11-30

原标题:GPU高功耗软肋已成最大危机?“AI 硅脑”迎来战国时代,GPU十年霸业将遭“围剿” | 独家观点

随着 AI 技术的进步与更迭,一批新型科技公司将趁势崛起,国外比较有代表性的包括 Graphcore、Wave Computing 等,而国内也陆续出现了诸如地平线机器人、寒武纪科技、深鉴科技等初创公司。这些主攻人工智能芯片及相关解决方案的初创公司也都在 AI 计算领域向传统巨头,如 NVIDIA 发起挑战,欲在市场中分得一杯羹。

但由于 GPU 主导了目前的 AI 计算领域,初创 IC 设计公司要向 GPU 发出挑战,就要从能效比、规模以及可应用的场景等几个大方向进行,但现实上还是挑战重重。首先,GPU 架构虽非绝对完美,但是在 NVIDIA 的持续改进之下,可使用的场景也逐渐增加,传统 CPU 大厂,如英特尔,也不甘人后地推出架构强化的 CPU 并结合 FPGA 的力量,想要反攻 AI 计算产业。

图丨 NVIDIA 的 GPU 计算方案仍是 AI 计算主流,但面临的挑战愈加激烈

要挑战这些巨头,除了架构上要有高度的针对性,能带给客户更高的价值,或者从软件算法或开发环境着手创造出差异化,如果单纯硬碰硬,在缺乏生态的支持下,很难长久存活下去。

GPU 是目前当红 AI 计算架构,但业界需要更高能效的方案

自从大型机出现在市场上,不仅带动了计算架构与计算资源应用的发展,就连软件也为了要妥善利用这些计算能力而有了明显的进化。而业界在使用这些软件时,又会激发出对硬件在设计上的新要求。而自从机器学习成为服务器主要应用之一后,相关的计算硬件架构也发生了很大的变化,比如说过去云端服务器架构清一色都是 CPU 架构,尤其是英特尔的 X86 CPU,凭借着生态以及成本的优势,赢得超过九成的服务器市场。

然而,面对机器学习,CPU 架构本身在大量并行处理能力上的缺点就显露出来了,除了核心规模过大,核心数量过少,带宽也限制了整体计算效能的发挥。且大核心虽然可以快速处理完单一线程的复杂工作,但面对少量多样,且计算内容相对单一的机器学习计算模式,CPU 本身的流水线设计就无法快速处理这类型的大批量工作,结果就是功耗大增,且计算效率低下。

图丨 CPU 和 GPU 核心特性决定了个别应用的计算效率

而 GPU 之所以成为当代 AI 主要计算方式,就在于它拥有了数以千计的微小核心,核心的规模虽明显小于 CPU,只能做相对简单的计算,亦无法直接启动操作系统。但简单正是其最大的武器,这些庞大的核心群可以在一瞬间同步处理完数千到数万个简单的计算工作线程,而其具备直连 GPU 芯片的庞大本地端内存,且带宽也要远大于 CPU 体系

并且,像 NVIDIA 这种公司为其 GPU 搭配了 CUDA 环境更是大大降低了相关 AI 计算程序的开发复杂度,也因此 GPU 在 AI 领域的应用一日千里,到目前主要云端 AI 计算架构都是以 GPU 为主

但 GPU 也不是没有缺点,尤其是功耗问题,1 块 GPU 计算卡动辄数百瓦的功耗,如果规模一大,那么对整个计算中心的功耗控制就会显得特别麻烦。举例来说,卡内基梅隆大学(Carnegie Mellon University)虽是一所领先的人工智能研究院校,但甚至他们都必须要求研究人员缩短芯片的使用时间,因为这会给学校的电力系统带来沉重压力。CMU 教授 Franz Franchetti 说,该大学正在寻找替代能源来缓解这个问题。

图丨 GPU 计算卡功耗极大,随着规模增加,对相关企业的电力管理是一大负担。

尤其在 Google 推出 TPU 架构后,其优秀的能耗比更把 GPU 的能耗问题推至台前。

而在个别应用领域中,比如说自动驾驶,NVIDIA 的 Drive PX 以及 Xavier 性能虽强,但整体功耗仍会对汽车的电力系统造成一定压力,且除了电动车,一般状态下的汽油车是只有引擎发动时才能发电带动功耗较大的设备功能,比如说冷气,如果自动驾驶的控制核心就必须消耗上百瓦的功耗,虽然理论上可以在怠速时关闭大部分针对自动驾驶的计算功能来节省功耗,但对于燃油汽车的传统电池仍会造成相当大的压力。

图丨自动驾驶的控制核心必须统合庞大的数据,从而判断出驾驶环境并决定驾驶策略。

然而,就算是电动车,如果非马达部件需要消耗这么大的电力,那对于行驶里程也将有一定的减损。且如果开启自动驾驶,这些控制核心为了对外围环境进行计算、掌握变化,并随时针对驾驶情境进行反应,理论上都是要不间断、满负荷工作,根本也没有太多机会像手机或平板平台会有机会进入可以降低功耗的休息模式。

弹性和能效难两全?

GPU 虽具备一定程度的程序化配置能力,可适应大部分的计算环境,但目前多数的 AI 计算却显得相当针对性,尤其是在几大主要应用中,比如说视觉识别使用的 CNN (Convolutional Neural Network) 以及自然语言处理方面常见的 RNN (Recurrent Neural Network),通常在计算模式有固定使用的几种方式,换言之,如果牺牲了一部份弹性,把这些常用模式以 ASIC 的形式来进行加速,但可换来能效的大大提升,其实多数客户的接受度不低。

另外,终端具备 AI 计算能力已经逐渐成为趋势,比如说手机上的 AI 核心,或者是智能音箱中未来也可能会配置 AI 计算单元,这部分 GPU 架构可能就帮不上忙,这主要是功耗问题,尤其是目前在行动平台上 GPU 的功耗几乎与 CPU 不相上下,有的甚至有过之而无不及,且 GPU 通常还要负责使用接口的绘制,分心去进行 AI 计算的话有可能造成系统的延迟,所以这部分的趋势将是走专属 ASIC 的内嵌式计算单元。

面对 FPGA 与 ASIC 的挑战

前面也提到,GPU 过去是为了绘图而生,但因为其设计来绘图的向量计算单元刚好可挪做它用,且因为具备庞大的并行处理能力,因此成就了为计算而生的 GPGPU,并带动了后来的 AI 产业发展。

而 GPU 本身用来运行 AI 的计算单元大概占芯片面积的 4 成左右,为了维持弹性以及既有的绘图能力,多数的晶体管并不会用来处理 AI 计算,而 ASIC 除了必要的对外连接以及对内的中控部分,其余的晶体管都可完全被使用在计算上,所以在整体能效上的落差也是这么来的。

但 GPU 目前生态布局主要在云端,终端只有少数几样应用正在进行,比如说 NVIDIA 针对自动驾驶领域推出的 Drive PX 和 Xavier 平台。总体来看,虽然性能相当可观,但功耗仍偏高,且必须使用主动散热方式,否则难以适应汽车严苛的使用环境。

图丨NVIDIA Drive PX & Xavier

相较之下,包含 Mobileye、Renesas、NXP 等对手几乎都是采用 ASIC 方式针对图像或对象识别采用专属的加速架构,Mobileye 在 ADAS 市场占了将近 7 成市占,是最早投入自动驾驶的方案商之一,其最新的自动驾驶方案 EyeQ4 可以在 3W 的功耗限制下提供 2.5TOPS 的性能表现,且是基于 28nm 工艺,相较之下,NVIDIA 最新的 Xavier 虽在 16nm 工艺下提供达 20TFOPS 的性能表现,但功耗达 80W。而 Mobileye 下一代自动驾驶方案性能将提升到 17TOPS,但功耗仅增加至 5W,这是非 ASIC 架构的 NVIDIA 所难以达到的。

虽然 ASIC 从设计、生产,到开发环境的经营,都要花费很大的成本,使得单一芯片的成本可能要更高于 GPU 不少,但如果考虑到高能效带来的功耗节省以及效率提升所能带来的总体维持/营运成本的降低,其实长期来看这样的投资似乎还是划算。

而 FPGA 也开始急起直追,包括英特尔以及 Xilinx 都推出针对 AI 计算环境的方案。以英特尔的 Stratix 10 为例,其计算性能可达 10TFLOPS,且功耗仅 120W,以 NVIDIA 的 Tesla V100 为例,虽然具有略高于 Stratix10 的 14TFLOPS 性能表现,但功耗高达 300W。而英特尔推即将出的下一代 AI 计算卡 Knights Landing 及 Lake Crest 计算架构,在性能表现上预计将能倍数成长,且功耗维持一致。

更多要求高效率的计算架构逐渐舍弃 GPU

而目前越来越热门的终端 AI 计算趋势,GPU 已经显得越来越弱势,主流的核心方案,比如说苹果 A11,华为的麒麟 970,甚至未来联发科的 AI 手机芯片布局,都会走向专属计算单元在芯片中内建独立的 AI 计算单元,这类计算单元会取代大部分过去 AI 计算工作需要 GPU 所强调的 GPGPU 计算功能以及 OpenCL 支持能力。

图丨华为 Mate 10 与 iPhone X 都在芯片中集成了独立 AI 计算单元。

但像英特尔也结合 FPGA 的力量,配合 CPU 本身体质的改善以及指令集的增加,试图把 NVIDIA 请出云端,其强调的重点,也是在能效比。而像中国寒武纪、地平线、深鉴,其推出的方案也都走向高能效比,GPU 架构可以说是四面受敌。

以下我们针对各种能够威胁到 GPU 在未来 AI 霸业的几大具有潜力的架构进行简单分析。

1. Graphcore 的 IPU

Graphcore 认为,AI 计算要被分为训练和推理本身就不是正确的分类方向,正常的 AI 计算架构本来就应该要能同时处理这二者的工作,且针对未来的持续性学习(Continuous Learning)机制,未来理想的 AI 必须要在模型部署之后还能持续的学习进化。

图丨在 Graphcore 的 IPU 模型中,并没有额外提到训练的部分,而是和推理引擎合而为一。

IPU 是一个标准的神经网络处理芯片,而且规模很大,通常具备数千到数百万个顶点,除了标准神经网络之外,也适用于贝叶斯网络(也称为信度网络、因果网络,是指基于概率分析、图论的一种不确定性知识的表达和推理的模型)马尔科夫网络(马尔可夫网络类似贝叶斯网络用于表示依赖关系。但是,一方面它可以表示贝叶斯网络无法表示的一些依赖关系,如循环依赖;另一方面,它不能表示贝叶斯网络能够表示的某些关系,如推导关系),而因为架构具备弹性,未来的新模型与算法理论上也都能够完美支持。

图丨 IPU 和其他计算架构的芯片布局比较。

由于其庞大的顶点数量,远超出现有最大 GPU 的规模数百倍,这也意味着其在并行工作的处理潜力非常惊人。另外,这些顶点都是稀疏的,绝大多数顶点都只连结到其他一小部分顶点。另外,IPU 也是针对低精度的数据模型优化,也就是具备数据的统计近似值概念,这和过去超算的概念完全不同。另外,IPU 也支持了模型参数的复用。简单来说,卷积是空间复用,回归是时间复用。这些复用特性可以获取数据中的空间或时间不变性,对于训练与推理的性能会有明显帮助。

IPU 也具备了大量的片上缓存,以及通过 HBM 连接的片上内存,传统服务器架构要连结到 CPU 或 GPU,通常都是通过多层的存取总线设计,一层一层传递下来,传递过程就会产生庞大的延迟,且不同层的内存也需要独立的控制单元,以及能源供应,整体而言能效就会较差。

图丨 IPU 的架构图

但如果大部分的工作都能在片上,甚至芯片内部就处理完,那就可以大幅降低延迟。IPU 的设计理论上最终是要把所有的模型都放到片上内存,并且在芯片内部集成大量缓存,达成 memory-centric 设计,并且针对应用分别调整计算单元的规模,最终达到能耗的最优化。

另外,IPU 也针对很多数据的传输与计算进行优化,比如说其计算和通信采用串行处理,理论上可以让不同工作都可以充分利用最大能量,无论实际工作量如何均衡,该计算工作都能在最短时间内完成。

IPU 预计在标准 300W 的功耗之下,将提供远超过 NVIDIA 最新的 V100 的性能表现。

Graphcore 在 IPU 设计上用了很多相当极端的想法,而虽然理论上以其规模应该更适合放到云端,但 Graphcore 认为 IPU 架构拥有很好的伸缩性,边缘或是终端计算同样能良好胜任。Graphcore 的 IPU 预计在 2018 年初量产上市

2. Wave Computing 提出能效超越 FPGA 的 GPU 架构

Wave Computing 是一家成立于 2010 年的公司。原名 Wave Semiconductor,于 2016 年改为 Wave Computing。Wave 的策略方向从最初的提供芯片方案的半导体公司,转变成一家提供计算技术解决方案的公司。该公司不仅希望他们的系统可以将现在基于 GPU 的神经网络的训练性能提高 10 倍,而且要在能效方面超过 FPGA。

Wave 开发的芯片命名为 DPU(Dataflow Processor)。其计算方案内有 4 个 DPU 硬件加速板,每个 DPU 板上集成 4 个 DPU 芯片。Wave 号称其硬件加速方案可以直接用于现有的数据中心的服务器架构中。

图丨 Wave 的 DPU 计算方案架构图

DPU 使用异步逻辑实现其基本计算单元 PE。没有集成时钟信号,PE 只要一收到操作数据,就触发计算,并得到结果。DPU 内集成了 16,000 个 PE。每个 PE 都可以当作是独立的处理器,拥有自己的指令存储器、数据存储器、寄存器和处理单元,pipeline 的指令缓存可以每 0.1ns 发出一条新指令,相当于 PE 可以达到 10GHz 的峰值频率。每个 PE 拥有 1KB 的单口数据存储器,访问速度可以达到 5GHz。而值得注意的是,DPU 内有 16000 个 PE,也就是说,每个 DPU 内有 8MB 的 IRAM(指令内存) 和 16MB 的 DRAM(动态内存),是非常恐怖的规模。

图丨 DPU 内,每 4 个全连接的 PE 组成一个 Quad,4 个 Quad 组成一个 cluster。每两个 PE 共享一个 8-bit 加法器。每个 cluster 内包含 8 个算术单元(包括 2 个 32-bit MAC、2 个 32-bit BMU 和 4 个 16-bit 加法单元),可以根据需要组成 8/16/24/32/64bit 操作。而且支持 SIMD 和 MIMD 指令。

DPU 因为没有时钟树分布,芯片面积可大幅降低,且计算单元只有在需要的时候才工作,功耗亦可大幅减少。举例来说,每个 PE 核的大小甚至要比 ARM 的 Cortex-M 还要小,DPU 还内建了 1 个来自台湾晶心科技(Andes)的 32 位 CPU 内核。

而根据公开测试数据,WAVE 的 DPU 可将 AlexNet 的训练时间降到 12 分钟,相较之下 NVIDIA 的 GPU(Pascal)需要 120 分钟。另外针对 Inception 网络的训练数据显示,Wave 可以实现达 25 倍的加速。

3. 英特尔用 CPU FPGA 欲重新拿回 AI 计算话语权

虽说英特尔放到 50 年前才能叫做初创公司,不过在 AI 计算领域,英特尔的确算是挑战者。

英特尔改进计算竞争力的方式其实相当老套,但相当有效。举例来说,其针对 CPU 所提出的指令集改进,包含了 AVX 多媒体指令集的宽度增加,以此容纳更大的数据流,其次,就是增加了 QFMA 以及 QVNNI 指令集,可加速深度学习的效率,而这是针对其 Xeon Phi 最新世代的 Knights Landing 架构产品。Knights Landing 集成了 72 个 Atom 核心,每个核心可以同时执行 4 个线程,且透过 AVX、QFMA 以及 QVNNI 指令集三者并用,可达到与 GPU 类似规模的并行计算工作,效率是上一代产品的 4 到 8 倍。

图丨 Knights Landing 架构,较前代有极高的效率成长。

英特尔在 2015 年收购了实力最强的 FPGA 设计公司之一 Altera,未来凭借 FPGA 布局,可针对一般通用计算以及深度学习计算环境提供不同方案,举例来说,其 Crest 架构产品就提供了与 Graphcore 的 IPU 类似的架构方式,不仅集成庞大的计算元,并增加了大量的芯片内缓存以及片上内存。

另外,英特尔也通过收购 Nervana 为 Intel 带来更多元的生态支持能力,并支持多种不同 AI 计算架构的基础,通过 Nervana,客户可以同时使用 GPGPU、Xeon Phi 以及 FPGA,但只要通过 Nervana,就可以无缝衔接这些计算能力,达成更高效能,或者更多元化的应用方式

图丨结合 Nervana 和 FPGA,英特尔想在 2020 年实现现今百倍 AI 计算效能。

总的来看,英特尔拥有丰富的架构资源,因此是想针对不同计算应用打造不同的平台,而通过 Nervana,英特尔就可统合这些不同架构之间的开发环境,构筑强大的生态。

4. 寒武纪、深鉴

寒武纪是近来中国最受瞩目的 AI 计算架构之一,最近更拿到政府高达 1 亿美元的投资,其针对深度学习的神经网络芯片架构不仅在能效表现上相当出色,最大的优势在于其支持了几乎所有平台以及所有 AI 计算标准,使其在应用的广度上可以和世界一流的平台相提并论。

寒武纪本身是基于神经网络架构的 ASIC 芯片,本身没有可重定义的能力,但把计算性能集中在深度学习上。

而寒武纪更提供了业界独有的 IP 授权与芯片销售方式并重的经营模式,客户可以根据自己的需要和规模,选择线程方案,或者是使用 IP 授权,将寒武纪做到自己芯片中,就如华为的麒麟 970,而华为也表示,透过寒武纪的 NPU,其 AI 计算效能要比 GPU 计算快 6 倍。

图丨寒武纪在其发表会揭露的 1A 芯片规格。

深鉴科技则是中国另一家炙手可热的 AI 计算方案厂商,其最大的特点反而不是在芯片设计,而是在算法上,通过独家的深度压缩算法,可以大幅减少训练之后的模型大小,让对于存储空间预算有限的嵌入式系统可以同样享受 AI 应用服务。

图丨深鉴提出的 DNNDK 可大幅降低 AI 应用开发时程。

而压缩带来的不只是模型存储空间减少这个优点而已,如果可以把模型直接压缩数十倍,权重数量减少 3 倍,那就意味着你可以减轻带宽负载到数十分之一,并同时把性能提高到 3 倍。以算法提升方案优势,目前深鉴可以说是业界做的比较优秀的。

GPU 面临变革,或许将彻底摆脱绘图的部分?

前面也提到,GPU 中真正拿来计算的晶体管不过占全部晶体管的 4 成左右,虽然依靠规模取胜,目前计算效率仍数一数二,但面对未来各家采用 ASIC 或 FPGA 的新架构的挑战,其实也开始有点捉襟见肘。

NVIDIA 在基于 Volta 架构的 Tesla V100 中就开始针对 AI 计算环境增加了 TensorCore 这个附加的向量加速单元,用来加速特定神经网络模型的计算,借此甚至整体计算能力可和 TPU 二代相提并论。然而就二者功耗比较,Tesla V100 功耗为 300W,TPU 二代虽稍慢,但功耗仅 130W,其能量效率的落差之大,或许 NVIDIA 该考虑减少些东西,而不是一直把更多的计算功能迭加上去。

至于该减少什么东西,或许该先被开刀的就是传统绘图部分的处理能力,毕竟 NVIDIA 的 GPU 设计已经高度模块化,绘图能力保留给消费性 GPU 市场即可。

目前的情况是,针对 AI 计算的新架构概念不断涌现,但 CUDA 生态在短时间内仍难以动摇。除了前面提到的几家计算方案厂商,Mythic 及 Cerebras 也是近来相当出名的 AI 计算架构初创公司,这些公司也同样获得了投资人的青睐。

但值得注意的是,这些新公司依靠在架构设计上整并多个计算步骤来强化计算效能,或许可赢过 GPU 现阶段无法省略太多计算步骤的方式,但前者多半是针对特定应用,后者则是强调通用性。然而初创公司也有风险,如果新产品面向太多市场应用,可能就会牺牲了性能或是原先强调的弹性,这么一来,恐怕就无法和既有的产业龙头对抗,最终可能必须面临被收购,甚或者是关门大吉的命运。

另外,新架构的供应者或许在能耗及性能表现有一定优势,但 GPU 计算所依恃的 CUDA 开发环境已经是发展超过 10 年的坚实生态,围绕着这个生态而生的相关应用已经多不胜数,要如何突围而出,从而建立自己的生态并非易事,但幸好目前已经有 TensorFlow、Caffe、MXNet 等产业标准接口出现,只要遵循这些标准来开发产品,并且提供够好的能耗表现,要能从 NVIDIA 的手中抢得市占,并非不可能。

NVIDIA 在 AI 生态独霸了将近 10 年,下个 10 年是否还能独领风骚?老将新秀群雄并起,即便其中能有悬念,但可确定的是,AI 计算架构的战国时代已然到来。

-End-

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多