前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习的异构加速技术(一)效率因通用而怠,构架为 AI 而生

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

原创
作者头像
于潇宇
修改2017-09-26 10:12:15
2.3K0
修改2017-09-26 10:12:15
举报
文章被收录于专栏:于潇宇的专栏于潇宇的专栏

一、概述:通用 == 低效

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

[1506049635362_359_1506049635889.jpeg]
[1506049635362_359_1506049635889.jpeg]

图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 深度学习处理器方案列表

[1506049657100_837_1506049657494.jpg]
[1506049657100_837_1506049657494.jpg]
[1506049671703_6039_1506049672084.jpg]
[1506049671703_6039_1506049672084.jpg]

图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。

[1506049708734_6193_1506049709109.jpg]
[1506049708734_6193_1506049709109.jpg]

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

2.3 算力伸缩

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

[1506049726275_721_1506049726739.jpg]
[1506049726275_721_1506049726739.jpg]

图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倍,使带宽不再是瓶颈。此时,设计的核心在于高效的计算构架、可伸缩的计算规模、和分布式计算能力。

[1506049738721_4079_1506049739100.jpg]
[1506049738721_4079_1506049739100.jpg]

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

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

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

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

未完待续。。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述:通用 == 低效
  • 二、嵌入式VS云端,不同场景下,AI处理器的两个选择
    • 2.1 AI处理器的发展和现状
      • 2.2 带宽瓶颈
        • 2.3 算力伸缩
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档