深度学习的异构加速技术(一)效率因通用而怠,构架为 AI 而生

一、概述:通用 == 低效

在开始AI处理器的讨论之前,先上一张经典的类比图:分别以“可编程能力/灵活性”和“开发难度/定制性/计算效率/能耗”为横轴和纵轴,将当前主流处理器CPU、GPU、FPGA、专用ASIC置于下图中。

图1.1 计算平台选择依据

可见,无所不能的CPU,其最大限度的灵活性是以牺牲计算效率和能耗为代价的。FPGA和ASIC则更倾向于针对某一特定应用,达到较高的计算效率和能耗比。无疑,专用ASIC具有最高的计算效率和最低的功耗,但在架构、设计、仿真、制造、封装、测试等各个环节将消耗大量的人力和物力。而在深度学习模型不断涌现的环境下,对CNN、RNN等各个模型分别进行构架设计甚至定制一款独立ASIC是一件非常奢侈的事情,因此在AI处理器的设计上,大家的做法逐渐一致,设计一款在AI领域具备一定通用性的FPGA/ASIC构架,即与GPU类似的领域处理器。使其可以覆盖深度学习中的一类(如常见CNN模型),或多类(如CNN+RNN等)。

二、嵌入式VS云端,不同场景下,AI处理器的两个选择

2.1 AI处理器的发展和现状

伴随着深度学习模型的深化和算力需求的提升,从学术界兴起的AI处理器方案已经迅速蔓延到工业界。目前,各大互联网、半导体、初创公司的方案归纳如表1所示,若感兴趣可转到唐杉同学维护的列表:https://basicmi.github.io/Deep-Learning-Processor-List/。

表1 深度学习处理器方案列表

图1.2 AI处理器的发展和设计目标

AI处理器的发展过程如图1.2所示。在早期,计算规模较小,算力较低,故研发的AI处理器主要针对嵌入式端的应用;随着模型的逐渐加深,对算力的需求也相应增加,导致了带宽瓶颈,即IO问题(带宽问题的成因详见2.2节),此时可通过增大片内缓存、优化调度模型来增加数据复用率等方式解决;当云端的AI处理需求逐渐浮出水面,多用户、高吞吐、低延迟等需求对算力的需求进一步提升,传统的方式已经不能IO问题极大的阻碍了处理器性能。此时,片上HBM(High Bandwidth Memory,高带宽存储器)的出现使深度学习模型完全放到片上成为可能,从而解决了IO瓶颈,使云端的发展方向从解决IO带宽问题,转向解决算力伸缩问题。

到目前为止,以HBM/HMC的应用为标志,云端高性能深度学习处理器的发展共经历了两个阶段:

1 第一阶段,解决IO带宽问题(与嵌入式的方式类似);

2 第二阶段,解决算力伸缩问题。

2.2 带宽瓶颈

第一阶段,囊括了初期的AI处理器,以及至今的大部分嵌入式前段的解决方案,包括第一代TPU、目前的FPGA相关构架、寒武纪的ASIC构架,以及90%以上的学术界成果等。欲达到更高的性能,一个有效的方法是大幅度提升计算核心的并行度,但算力的扩张使IO带宽成为瓶颈。例如,图1.3中的1个乘加运算单元若运行在500MHz的频率下,每秒需要4GB的数据带宽;一个典型的高性能FPGA(以Xilinx KU115为例)共有5520个DSP,跑满性能需要22TB的带宽;而一条DDR4 DIMM仅能提供19.2GB的带宽。因此在第一阶段,设计的核心是,一方面通过共享缓存、数据调用方式的优化等方式提升数据复用率,并利用高带宽的片上缓存减少片外存储器的数据加载。另一方面通过模型优化、低位宽量化、稀疏化等方式简化模型和计算。

数据复用的例子如图像卷积时,对于一张输入的特征图(FeatureMap),其卷积核(Kernel)只需加载一次即可在整张FeatureMap上复用;而增加并行任务数量(Batchsize)可以进一步使同一组Kernel复用于更多FeatureMap。

图1.3 一个乘加单元及其带宽计算

2.3 算力伸缩

尽管片上分布的大量缓存能提供足够的计算带宽,但由于存储结构和工艺制约,片上缓存占用了大部分的芯片面积(通常为1/3至2/3),限制了缓存容量的进一步提升,如图1.4所示。

图1.4 芯片中片上缓存的规模,左图为第一代TPU,蓝色部分为缓存区域,占用芯片面积的37%;右图为寒武纪公司的DiaoNao AI ASIC设计,缓存占面积的66.7%(NBin+NBout+SB)。

而以HBM为代表的存储器堆叠技术,将原本一维的存储器布局扩展到三维,大幅度提高了片上存储器的密度,如图1.5所示,标志着高性能AI处理器进入第二阶段。但HBM在工艺、封装、IP等方面的要求大幅度提升了成本,因此仅出现在互联网和半导体巨头的设计中(NVIDIA、AMD、Google、Intel)。HBM使片上缓存容量从MB级别提升到GB级别,可以将整个模型放到片上而不再需要从片外DDR中加载;同时,堆叠存储器提供的带宽不再受限于芯片IO引脚的制约而提升100倍,使带宽不再是瓶颈。此时,设计的核心在于高效的计算构架、可伸缩的计算规模、和分布式计算能力。

图1.5 HBM与片内垂直堆叠技术

在后续的论述中,这两个阶段的构架方案有较大区别,分别如下;若仅对科技巨头的方案感兴趣,可忽略(二)。为保证论述的一致性,TPU和TPU2的内容合并在(三)中讨论。

深度学习的异构加速技术(二)带宽扼喉下的百花齐放

深度学习的异构加速技术(三)算力释放与异构集群

未完待续。。。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

吴甘沙清华讲:大数据的10个技术前沿(中)

1283
来自专栏ThoughtWorks

从分布式计算到分布式训练

对计算机来讲,所谓的计算,不过是将存储在各个地方的数据通过数据总线进行传输,然后经过算术逻辑单元执行一系列预设好的规则,最终再将输出写入到某个位置。 在计算能力...

3295
来自专栏企鹅号快讯

TESLA V100如何让质疑GPU的流言“失声”

【IT168 评论】GPU在人工智能来临的前夜火了,很多人的眼光也聚焦到了英伟达身上,随之而来的,流言也就多了起来。有人认为,GPU在人工智能的应用存在一定的局...

1959
来自专栏腾讯高校合作

【犀牛鸟论道】深度学习的异构加速技术(一)

一、概述:通用 == 低效 作为通用处理器,CPU (Central Processing Unit) 是计算机中不可或缺的计算核心,结合指令集,完成日常工作中...

3385
来自专栏CSDN技术头条

51个你需要知道的大数据术语

每天数十亿字节的数据收集下,了解大数据的复杂内涵非常重要。为了帮助你了解这一领域,我们从最近的大数据指南中编辑了一个列表,列出了最重要的相关术语和定义。 你认...

1755
来自专栏Albert陈凯

CPU与GPU区别大揭秘

有网友在网上提问:“为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码? ”以下是比较准确靠谱的回答:   1、现在更多被需要的依然是CP...

3743
来自专栏鹅厂网事

服务器硬盘故障预测实践

故障预测类似于临震预报,最重要的意义是给用户一个从容的时间段进行数据和业务的迁移或处理,改善用户体验。

8779
来自专栏绿巨人专栏

读书笔记: 博弈论导论 - 04 - 完整信息的静态博弈 理性和公共知识

823
来自专栏北京马哥教育

100个大数据名词和术语汇总,拿去用吧!

作者:hzp666 来源: http://blog.csdn.net/hzp666/article/details/62888353 大数据的出现带来了许多新的...

3466
来自专栏腾讯技术工程官方号的专栏

深度学习的异构加速技术(一):AI 需要一个多大的“心脏”?

“深度学习的异构加速技术”系列共有三篇文章,主要在技术层面,对学术界和工业界异构加速的构架演进进行分析。

9692

扫码关注云+社区