聚焦 | 什么是AI芯片“存储墙”的解决方案?

描述

在2016年威海参加中国体系结构年会的时候,孙所也说了一句调侃的话:“现在的AI很火,大家都往那边去,没有人太关心体系结构了,我要告诉那些追AI热点的,它都死了三回了!” 的确,作为从小学马列的中国人,我们最熟悉螺旋式上升的概念。对于计算和I/O来讲,和中国经济调控一样,都是“ 水多了加面,面多了加水”螺旋式上升。

Google在2017年发布了TPU V1之后,现在已经有越来越多的AI startup的芯片出现,大家基本上都是用标准的Resnet50,Googlenetv3 等网络为benchmark, 一次一次地刷新性能和功耗比,个人觉得很有可能在一天,AI芯片的性能和功耗比在特定的imagenet的任务上超过人脑,现在AI在准确率和性能上都超过了。对于AI的芯片来讲,有一个指标也是大家讨论比较多的。Roofline model

芯片

Y轴是P,代表算力,用来FLOP/s来表示,现在新出的AI ASIC往往在FLOP/s并不发力,因为从功耗比的角度上,算力肯定不是越高越好,而且大家都很难高过老黄的核弹。

代表了一个特定的计算平台的peak performance,就是最大算力。

 就是特定的计算平台的I内存/O带宽,这个和该计算平台使用的DDR类型有关。

X轴是I,代表计算强度,就是在一个Byte上的计算量。因为对于一个特定的平台,我可以知道它的最大算力 和带宽,我们就可以知道它的最大的计算强度。

因此,和图上显示的一样,在点(Imax,),这个计算平台达到了完美。在它的左边,说明memory受限,在它的右边说明计算受限。

因此,对于我们之前分析的Alexnet这个网络,我们就知道了它的总的计算量就是:

内存访问量 计算量
Conv1 770235 105415200
Maxpool1 430368  
Conv2 1057632 223948800
Maxpool2 273152  
Conv3 1057792 149520384
Conv4 1521792 112140288
Conv5 1036160 74760192
Maxpool3 61696  
FC1 37766144 37748736
FC2 16789504 16777216
FC3 4102096 4096000
SUM 65021158 724406816

因为对于每一次访存都是32位的Float Point,因此整个内存的占用就是 260MB左右,而计算量是724MFLOPs, 因此Alexnet的计算强度就是724/260=2.7 operation/byte。

对于一个特定的平台,比如老黄家的新的GTX2080Ti 系列来讲:

对于计算性能,先不管老黄加各种Tensor Core,RTcore,从CUDA Core本身来讲,他是100TLOP/s,

它的内存带宽如下:

芯片

因此,作为2080Ti, 它的Imax就是 166 Operation/Byte.

可能到这个,就可以看出,对于Alex的2.7 来讲,远远没有达到2080ti的计算强度,主要是受限于内存带宽了。

在Google的TPU中,有一个图经常被大家引用。

芯片

大家基本上可以看到,google的Imax差不多在1000左右,基本上没有什么网络可以完全用满TPU的peak performance。

怎么办,内存带宽的解决方案就是HBM,HBM2, HBM3不断加大带宽。记得在2017年的CNCC上,谢源教授讲,他在2010年左右提出了HBM的概念,他很快就看到了AMD,Nvidia以及Xilinx和Intel都在芯片上使用了HBM,证明了这条道路的正确性。他认为目前应该在AI芯片上摆脱这种”水多了加面,面多了加水“,in-memory 计算应该是下一个方向。

这个就引出了在Memory+会议上来自平头哥的段立德博士的topic,”Processing Near or In memory for deep learning".

芯片

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分