0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Transformer的出现让专用AI芯片变得岌岌可危

佐思汽车研究 来源:佐思汽车研究 作者:佐思汽车研究 2022-08-10 14:35 次阅读

本文将分析CNN,还有近期比较火的SwinTransformer以及存内计算对AI芯片发展趋势的影响,Transformer的出现让专用AI芯片变得岌岌可危,命悬一线。 所谓AI芯片算力一般指INT8精度下每秒运作次数,INT8位即整数8比特精度。AI芯片严格地说应该叫AI加速器,只是加速深度神经网络推理阶段的加速,主要就是卷积的加速。一般用于视觉目标识别分类,辅助驾驶或无人驾驶还有很多种运算类型,需要用到多种运算资源,标量整数运算通常由CPU完成,矢量浮点运算通常由GPU完成,标量、矢量运算算力和AI算力同样重要,三者是平起平坐的。AI算力远不能和燃油车的马力对标,两者相差甚远。 AI芯片的关键参数除了算力,还有芯片利用率或者叫模型利用率。AI芯片的算力只是峰值理论算力,实际算力与峰值算力之比就是芯片利用率。

baa4c488-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

上表为英伟达旗舰人工智能加速器T4的芯片利用率,芯片的利用率很低,大部分情况下93%的算力都是闲置的,这好比一条生产线,93%的工人都无所事事,但工资还是要付的。实际上芯片利用率超过50%就是非常优秀,利用率低于10%是很常见的,极端情况只有1%,也就是说即使你用了4片英伟达顶级Orin,算力高达1000TOPS,实际算力可能只有10TOPS。 这也就是AI芯片主要的工作不是AI芯片本身,而是与之配套的软件优化,当然也可以反过来,为自己的算法模型定制一块AI芯片,如特斯拉。但应用面越窄,出货量就越低,摊在每颗芯片上的成本就越高,这反过来推高芯片价格,高价格进一步缩窄了市场,因此独立的AI芯片必须考虑尽可能适配多种算法模型。 这需要几方面的工作:

首先主流的神经网络模型自然要支持;

其次是压缩模型的规模并优化,将浮点转换为定点;

最后是提供编码器Compiler,将模型映射为二进制指令序列。

早期的AI运算完全依赖GPU,以致于早期的神经网络框架如Caffee、TensorFlow、mxnet都必须考虑在GPU上优化,简单地说就是都得适应GPU的编码器CUDA,这也是英伟达为何如此强的原因,它无需优化,因为早期的神经网络就是为GPU订做的。CUDA为英伟达筑起了高高的城墙,你要做AI运算,不兼容CUDA是不可能的,所有的程序员都已经用习惯了CUDA。但要兼容CUDA,CUDA的核心是不开源的,无论你如何优化,都不如英伟达的原生CUDA更优。车载领域好一点,可以效仿特斯拉。 卷积运算就是乘积累加,Cn=A×B+Cn-1,A是输入矩阵,简单理解就是一副图像,用像素数字矩阵来表示一副图像,B是权重模型,就是深度学习搜集训练数据,经过几千万人民币的数据中心训练出的算法模型,也可以看做是一种特殊的滤波器,右边的C是上一次乘积的结果。左边的C就是本次计算的输出结果。卷积运算后经过全连接层输出,画出Bounding Box并识别。用代码表示如下。

bab84774-1851-11ed-ba43-dac502259ad0.png

bae43000-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

这些计算中有大量相同的数据存取,如下表。

baf88302-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

每一次运算都需要频繁读取内存,很多是重复读取,这非常耗费时间和功率,显然是一种浪费,AI芯片的核心工作就是提高数据的复用率。 AI芯片分为两大流派,一是分块矩阵的One Shot流派,也有称之为GEMM通用矩阵乘法加速器,典型代表是英伟达、华为。二是如脉动阵列的数据流流派,典型代表是谷歌、特斯拉。还有些非主流的主要用于FPGA的Spatial,FFT快速傅里叶变换。

华为AI芯片电路逻辑

bb105c66-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

以华为为例,其将矩阵A按行存放在输入缓冲区中,同时将矩阵B按列存放在输入缓冲区中,通过矩阵计算单元计算后得到的结果矩阵C按行存放在输出缓冲区中。在矩阵相乘运算中,矩阵C的第一元素由矩阵A的第一行的16个元素和矩阵B的第一列的16个元素由矩阵计算单元子电路进行16次乘法和15次加法运算得出。矩阵计算单元中共有256个矩阵计算子电路,可以由一条指令并行完成矩阵C的256个元素计算。 由于矩阵计算单元的容量有限,往往不能一次存放下整个矩阵,所以也需要对矩阵进行分块并采用分步计算的方式。将矩阵A和矩阵B都等分成同样大小的块,每一块都可以是一个16×16的子矩阵,排不满的地方可以通过补零实现。首先求C1结果子矩阵,需要分两步计算:第一步将A1和B1搬移到矩阵计算单元中,并算出A1×B1的中间结果;第二步将A2和B2搬移到矩阵计算单元中,再次计算A2×B2 ,并把计算结果累加到上一次A1×B1的中间结果,这样才完成结果子矩阵C1的计算,之后将C1写入输出缓冲区。由于输出缓冲区容量也有限,所以需要尽快将C1子矩阵写入内存中,便于留出空间接收下一个结果子矩阵C2。 分块矩阵的好处是只计算了微内核,速度很快,比较灵活,编译器好设计,增加算力也很简单,只要增加MAC的数量即可。成本低,消耗的SRAM容量小。

bb22093e-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

上图为一个典型的脉动阵列,右侧是一个乘加单元即PE单元的内部结构,其内部有一个寄存器,在TPU内对应存储Weight,此处存储矩阵B。左图是一个4×4的乘加阵列,假设矩阵B已经被加载到乘加阵列内部;显然,乘加阵列中每一列计算四个数的乘法并将其加在一起,即得到矩阵乘法的一个输出结果。依次输入矩阵A的四行,可以得到矩阵乘法的结果。PE单元在特斯拉FSD中就是96*96个PE单元。

bb38cb06-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

不过最后还要添加累加器,需要多个SRAM加入。 脉动式优点是流水线式,不依赖一次一次的指令,一次指令即可启动。吞吐量很高。算力做到1000TOPS易如反掌,单PE占硅片面积小。但是其编译器难度高,灵活度低,要做到高算力,需要大量SRAM,这反过来推高成本。 在实际应用当中,情况会比较复杂,完整的深度学习模型都太大,而内存是很耗费成本的,因此,模型都必须要压缩和优化,常见的压缩有两种,一种是Depthwise Convolution,还包括了Depthwise Separable Convolution。另一种是Pointwise Convolution。Depthwise层,只改变feature map的大小,不改变通道数。而Pointwise层则相反,只改变通道数,不改变大小。这样将常规卷积的做法(改变大小和通道数)拆分成两步走。

bb6131b8-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

常规卷积,4组(3,3,3)的卷积核进行卷积,等于108。

bb749992-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

Depthwise卷积,分成了两步走,第一步是3*3*3,第二步是1*1*3*4,合计是39,压缩了很多。 谷歌TPU v1的算力计算是700MHz*256*256*2=92Top/s@int8,之所以乘2是因为还有个加法累积。高通AI100的最大算力计算是16*8192*2*1600MHz=419Top/s@int8,高通是16核,每个核心是8192个阵列,最高运行频率1.6GHz,最低估计是500MHz。

性能最大化对应的模型要求

bb9dcd30-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

对谷歌TPU v1来说,其最优性能是输入为256,而不少Depthwise是3*3,其利用率为9/256,即3.5%。对高通AI100来说,如果算法模型输入通道是256,那么效率会降低至16/256,即6.3%。显然对于精简算法模型,TPU非常不适合。对于精简模型来说,高通AI100非常不适合。 以上这些都是针对CNN的,目前图像领域的AI芯片也都是针对CNN的。近期大火的Swin Transformer则与之不同。2021年由微软亚洲研究院开源的SwinTransformer的横扫计算机视觉,从图像分类的ViT,到目标检测的DETR,再到图像分割的SETR以及3D人体姿态的METRO,大有压倒CNN的态势。但其原生Self-Attention的计算复杂度问题一直没有得到解决,Self-Attention需要对输入的所有N个token计算N的二次方大小的相互关系矩阵,考虑到视觉信息本来就是二维(图像)甚至三维(视频),分辨率稍微高一点就会暴增运算量,目前所有视觉类AI芯片都完全无法胜任。

Swin Transformer的模型结构

bbc96850-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

从图上就能看出其采用了4*4卷积矩阵,而CNN是3*3,这就意味着目前的AI芯片有至少33%的效率下降。再者就是其是矢量与矩阵的乘法,这会带来一定的浮点矢量运算。 假设高和宽都为112,窗口大小为7,C为128,那么未优化的浮点计算是4*112*112*128*128+2*112*112*112*112*128=41GFLOP/s。大部分AI芯片如特斯拉的FSD和谷歌的TPU,未考虑这种浮点运算。不过华为和高通都考虑到了,英伟达就更不用说了,GPU天生就是针对浮点运算的。看起来41GFLOP/s不高,但如果没有专用浮点运算处理器,效率也会急速下降。

bbf9153c-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

与CNN不同,Swin Transformer的数据选择与布置占了29%的时间,矩阵乘法占了71%,而CNN中,矩阵乘法至少占95%。

bc1c4106-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

针对Swin Transformer的AI芯片最好将区块模型与数据流模型分开,指令集与数据集当然也最好分开。

bc456d38-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

针对Swin Transformer,理论上最好的选择是存内计算也叫存算一体,上图是存内计算架构与传统AI芯片的冯诺依曼架构的功耗对比,存内计算架构在同样算力的情况下,只有冯诺依曼架构1/6的功耗。

冯诺依曼架构与存内计算架构对比

bc752618-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

典型的存内计算架构芯片

bc8ab9ce-1851-11ed-ba43-dac502259ad0.png

图片来源:互联网

不过目前存内计算离实用距离还非常遥远:

第一,内存行业由三星、美光和SK Hynix三家占了90%的市场,行业门槛极高,这三家极力保持内存价格稳定。

第二,目前AI模型都是越来越大,用存内计算存储大容量AI模型成本极高。三星的存内计算芯片测试用的是二十年前的MNIST手写字符识别,这种AI模型是kb级别的。而自动驾驶用的至少也是10MB以上。

第三,精度很低,当前存内计算研究的一个重点方法是使用电阻式RAM(ReRAM)实现位线电流检测。由于电压范围,噪声和PVT的变化,模拟位线电流检测和ADC的精度受到限制,即使精度低到1比特也难以实现,而辅助驾驶目前是8比特。

第四,电阻式RAM可靠性不高。经常更新权重模型,可能导致故障。

最后,存内计算的工具链基本为零。最乐观的估计,存内计算实用化也要5年以上,且是用在很小规模计算,如AIoT领域,自动驾驶领域十年内都不可能见到存内计算。即使存内计算实用化,恐怕也是内存三巨头最有优势。

Transformer的出现让专用AI芯片变得非常危险,难保未来不出现别的技术,而适用面很窄的AI专用芯片会完全丧失市场,通用性比较强的CPU或GPU还是永葆青春,至于算力,与算法模型高度捆绑,但捆绑太紧,市场肯定很小,且生命周期可能很短。 声明:本文仅代表作者个人观点。

审核编辑 :李倩

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

    关注

    42

    文章

    4562

    浏览量

    98646
  • AI芯片
    +关注

    关注

    17

    文章

    1641

    浏览量

    34355
  • 算力
    +关注

    关注

    1

    文章

    648

    浏览量

    14330

原文标题:Transformer挑战CNN,AI芯片需要改变

文章出处:【微信号:zuosiqiche,微信公众号:佐思汽车研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    英伟达将用AI设计AI芯片

    AI芯片行业资讯
    深圳市浮思特科技有限公司
    发布于 :2024年02月19日 17:54:43

    Transformer大模型部署在端侧,IPC SoC正在普惠AI

    电子发烧友网报道(文/黄晶晶)AI大模型袭卷而来,而如何让终端产品插上AI的翅膀会是芯片厂商研发的方向和市场的机会。如今网络摄像机作为智慧城市、智能家居等应用的主流终端发展迅速,IPC SoC
    的头像 发表于 12-08 13:50 487次阅读
    把<b class='flag-5'>Transformer</b>大模型部署在端侧,IPC SoC正在普惠<b class='flag-5'>AI</b>

    异构专用AI芯片的黄金时代

    异构专用AI芯片的黄金时代
    的头像 发表于 12-04 16:42 269次阅读
    异构<b class='flag-5'>专用</b><b class='flag-5'>AI</b><b class='flag-5'>芯片</b>的黄金时代

    求助,AD8132谐波测试电路中的transformer有没有推荐型号?

    AD8132谐波测试电路中的transformer有没有推荐型号?
    发表于 11-16 06:15

    #芯片 #AI 世界最强AI芯片H200性能大揭秘!

    芯片AI
    深圳市浮思特科技有限公司
    发布于 :2023年11月15日 15:54:37

    重新审视Transformer:倒置更有效,真实世界预测的新SOTA出现

    Transformer 在时间序列预测中出现了强大能力,可以描述成对依赖关系和提取序 列中的多层次表示。然而,研究人员也质疑过基于 Transformer 的预测器的有效性。这种预测器通常
    的头像 发表于 11-05 20:15 346次阅读
    重新审视<b class='flag-5'>Transformer</b>:倒置更有效,真实世界预测的新SOTA<b class='flag-5'>出现</b>了

    为什么transformer性能这么好?Transformer的上下文学习能力是哪来的?

    中的主导模型,但人们对于它卓越性能的理论基础却一直研究不足。 最近,来自 Google AI、苏黎世联邦理工学院、Google DeepMind 研究人员的新研究尝试为我们揭开谜底。在新研究中,他们对 transformer 进行了逆向工程,寻找到了一些优化方法。论文《U
    的头像 发表于 09-25 12:05 786次阅读
    为什么<b class='flag-5'>transformer</b>性能这么好?<b class='flag-5'>Transformer</b>的上下文学习能力是哪来的?

    Transformer流行的背后

    Quadric是一家机器学习推理IP公司,Untether AI则将其硬件宣传为是“通用推理加速器”,这两家公司都在兜售可处理transformer的技术。Quadric说日本的Denso和Megachip是其客户,而Untether
    的头像 发表于 08-30 16:57 636次阅读
    <b class='flag-5'>Transformer</b>流行的背后

    宽压雾灯日行灯小灯专用驱动方案专用芯片

    宽压雾灯日行灯小灯专用驱动方案专用芯片外围简单小体积宽压输入LED驱动芯片 小恒流方案宽压LED降压恒流驱动芯片 宽压雾灯日行灯小灯
    发表于 08-18 11:16

    汽车领域拥抱Transformer需要多少AI算力?

    Transformer在汽车领域应用自然是针对视觉的,ChatGPT3这种至少需要八张英伟达A100显卡的大模型是绝对无法出现在汽车上的。
    发表于 08-17 14:57 565次阅读
    汽车领域拥抱<b class='flag-5'>Transformer</b>需要多少<b class='flag-5'>AI</b>算力?

    ai芯片和存储芯片的区别

    中,我们将探讨AI芯片和存储芯片的区别。 一、定义; AI芯片是一种专用于利用人工智能技术的电路
    的头像 发表于 08-09 11:38 2359次阅读

    ai芯片和soc芯片的区别

    在设计和功能上有着极大的不同。本文将从技术角度深入探讨AI芯片和SoC芯片的区别。 一、定义 AI芯片指的是人工智能
    的头像 发表于 08-08 19:00 2660次阅读

    使用 Vision Transformer 和 NVIDIA TAO,提高视觉 AI 应用的准确性和鲁棒性

    Vision Transformer(ViT)正在席卷计算机视觉领域,提供令人难以置信的准确性、复杂现实场景下强大的解决方案,以及显著提升的泛化能力。这些算法对于推动计算机视觉应用的发展发挥
    的头像 发表于 08-04 17:40 351次阅读
    使用 Vision <b class='flag-5'>Transformer</b> 和 NVIDIA TAO,提高视觉 <b class='flag-5'>AI</b> 应用的准确性和鲁棒性

    NVIDIA Omniverse让AI训练变得更加简单易用

    Rendered.ai 将 NVIDIA Omniverse Replicator 集成到其合成数据生成平台,使 AI 训练变得更加简单易用。
    的头像 发表于 07-24 09:14 825次阅读
    NVIDIA Omniverse让<b class='flag-5'>AI</b>训练<b class='flag-5'>变得</b>更加简单易用

    Transformer结构及其应用详解

    本文首先详细介绍Transformer的基本结构,然后再通过GPT、BERT、MT-DNN以及GPT-2等基于Transformer的知名应用工作的介绍并附上GitHub链接,看看Transformer是如何在各个著名的模型中大
    的头像 发表于 06-08 09:56 1433次阅读
    <b class='flag-5'>Transformer</b>结构及其应用详解