深度学习的异构加速技术(一)效率因通用而怠,构架为 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 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

大咖丨IBM首席数据官:高效的数据科学团队如何建设

1394
来自专栏SDNLAB

云计算行业高收入的11个技能

随着企业将基础设施迁移到公有云中,对掌握了云计算技能的专业人员的需求逐渐加大,企业无法找到足够的专业人员来管理和支持其环境,云计算技能逐渐成为所有IT技能中最受...

4706
来自专栏企鹅号快讯

数据科学家也可能被人工智能取代

由于人工智能取代人类活动的争论越来越激烈,数据科学家开始体验人工智能辅助自动化的好处和风险。 人们开始对人工智能被用来自动化一切事物的前景感到不安。现在人工智能...

1875
来自专栏BestSDK

科大讯飞推出AIUI开放平台 提供一站式场景交互SDK

科大讯飞正式推出AIUI开放平台,基于原先讯飞开放平台生态圈,着重将人机交互的能力向合作伙伴开放,面向垂直领域提供场景交互解决方案。 ? 本次开放的AIUI平台...

37411
来自专栏挖掘大数据

大数据分析步骤:十大步骤帮你有效使用预测分析算法

一个成功的预测分析项目不仅仅涉及软件部署,使用软件分析数据。越来越多的企业开始使用预测分析算法。了解下面这些步骤可以帮助你为分析项目打下坚实基础。

2145
来自专栏云计算D1net

公共云为业界带来了机器学习服务

机器学习代表着计算新领域,而公共云正使这项原本高大上的技术变得比以往更亲民、更实惠和更可用。但是,这并不意味着随便什么人都应该趋之若鹜。 机器学习是基于传统人工...

3359
来自专栏AI科技大本营的专栏

用产品的心态写代码:什么样的机器学习产品是最符合用户需求的

编译 | AI 科技大本营 参与 | 林椿眄 校对 | Leo 机器学习 (ML) 和人工智能 (AI) 是当今社会的热门话题。所以,最近有很多产品经理及那些有...

3516
来自专栏数据科学与人工智能

【陆勤践行】数据科学 (Data Science)——成就你的未来!

何谓数据科学?在wikipedia中你还找不到Data Science的词条,但它将成就你的未来。 谷歌首席经济学家Hal Varian在2009...

2318
来自专栏ATYUN订阅号

【科技】微软希望通过DirectX Raytracing技术为游戏开发者提供帮助

AiTechYun 编辑:nanan ? 微软帮助启动了2018年的游戏开发者大会,看看开发者如何使用WindowsML和DirectX制作更多、更好的游戏。 ...

3227
来自专栏领域驱动设计DDD实战进阶

领域驱动设计之基本概念

企业级业务系统开发我们略过需求的采集、分析,直接进入设计。 领域驱动设计(DDD)是近10年流行、比较成熟、比较成功的软件设计方法、理论。我们早期常见的软件开发...

4305

扫码关注云+社区