ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

详解AI芯片和传统芯片的差别,到底在那里?

2022-09-29 13:31:37  阅读:70  来源: 互联网

标签:


成立仅两年国内专做人工智能FPGA加速算法的初创公司深鉴科技被国际巨头赛灵思收购了,在业界引起不小的震动。目前国内做AI芯片的公司可谓不少了,AI芯片已然成为了当下芯片行业最热领域。但是大部分人对AI芯片的架构应该都不是太了解。那么AI 芯片和传统芯片有何区别?AI芯片的架构到底是怎么样的?

(更多相关资讯搜索,更多行业相关资讯更有行业相关免费视频教程。一起加油吧!陌生人)

先回答问题, (1)性能与传统芯片,比如CPU、GPU有很大的区别。在执行AI算法时,更快、更节能。 (2)工艺没有区别,大家都一样。至少目前来看,都一样。 所谓的AI芯片,一般是指针对AI算法的ASIC(专用芯片)。 传统的CPU、GPU都可以拿来执行AI算法,但是速度慢,性能低,无法实际商用。

比如,自动驾驶需要识别道路行人红绿灯等状况,但是如果是当前的CPU去算,那么估计车翻到河里了还没发现前方是河,这是速度慢,时间就是生命。如果用GPU,的确速度要快得多,但是,功耗大,汽车的电池估计无法长时间支撑正常使用,而且,老黄家的GPU巨贵,经常单块上万,普通消费者也用不起,还经常缺货。另外,GPU因为不是专门针对AI算法开发的ASIC,所以,说到底,速度还没到极限,还有提升空间。而类似智能驾驶这样的领域,必须快!在手机终端,可以自行人脸识别、语音识别等AI应用,这个必须功耗低,所以GPU OUT!

所以,开发ASIC就成了必然。

说说,为什么需要AI芯片。

AI算法,在图像识别等领域,常用的是CNN卷积网络,语音识别、自然语言处理等领域,主要是RNN,这是两类有区别的算法。但是,他们本质上,都是矩阵或vector的乘法、加法,然后配合一些除法、指数等算法。

一个成熟的AI算法,比如YOLO-V3,就是大量的卷积、残差网络、全连接等类型的计算,本质是乘法和加法。对于YOLO-V3来说,如果确定了具体的输入图形尺寸,那么总的乘法加法计算次数是确定的。比如一万亿次。(真实的情况比这个大得多的多)

那么要快速执行一次YOLO-V3,就必须执行完一万亿次的加法乘法次数。

这个时候就来看了,比如IBM的POWER8,最先进的服务器用超标量CPU之一,4GHz,SIMD,128bit,假设是处理16bit的数据,那就是8个数,那么一个周期,最多执行8个乘加计算。一次最多执行16个操作。这还是理论上,其实是不大可能的。

那么CPU一秒钟的巅峰计算次数=16X4Gops=64Gops。

这样,可以算算CPU计算一次的时间了。

同样的,换成GPU算算,也能知道执行时间。因为对GPU内部结构不熟,所以不做具体分析。

再来说说AI芯片。比如大名鼎鼎的谷歌的TPU1.

TPU1,大约700M Hz,有256X256尺寸的脉动阵列,如下图所示。一共256X256=64K个乘加单元,每个单元一次可执行一个乘法和一个加法。那就是128K个操作。(乘法算一个,加法再算一个)

另外,除了脉动阵列,还有其他模块,比如激活等,这些里面也有乘法、加法等。

所以,看看TPU1一秒钟的巅峰计算次数至少是=128K X 700MHz=89600Gops=大约90Tops。

对比一下CPU与TPU1,会发现计算能力有几个数量级的差距,这就是为啥说CPU慢。

当然,以上的数据都是完全最理想的理论值,实际情况,能够达到5%吧。因为,芯片上的存储不够大,所以数据会存储在DRAM中,从DRAM取数据很慢的,所以,乘法逻辑往往要等待。另外,AI算法有许多层网络组成,必须一层一层的算,所以,在切换层的时候,乘法逻辑又是休息的,所以,诸多因素造成了实际的芯片并不能达到利润的计算峰值,而且差距还极大。

可能有人要说,搞研究慢一点也能将就用。

目前来看,神经网络的尺寸是越来越大,参数越来越多,遇到大型NN模型,训练需要花几周甚至一两个月的时候,你会耐心等待么?突然断电,一切重来?(曾经动手训练一个写小说的AI,然后,一次训练(50轮)需要大约一天一夜还多,记得如果第一天早上开始训练,需要到第二天下午才可能完成,这还是模型比较简单,数据只有几万条的小模型呀。)

修改了模型,需要几个星期才能知道对错,确定等得起?

突然有了TPU,然后你发现,吃个午饭回来就好了,参数优化一下,继续跑,多么爽!

计算速度快,才能迅速反复迭代,研发出更强的AI模型。速度就是金钱。

GPU的内核结构不清楚,所以就不比较了。肯定的是,GPU还是比较快的,至少比CPU快得多,所以目前大多数都用GPU,这玩意随便一个都能价格轻松上万,太贵,而且,功耗高,经常缺货。不适合数据中心大量使用。

总的来说,CPU与GPU并不是AI专用芯片,为了实现其他功能,内部有大量其他逻辑,而这些逻辑对于目前的AI算法来说是完全用不上的,所以,自然造成CPU与GPU并不能达到最优的性价比。

谷歌花钱研发TPU,而且目前已经出了TPU3,用得还挺欢,都开始支持谷歌云计算服务了,貌似6点几美元每小时吧,不记得单位了,懒得查.

可见,谷歌觉得很有必要自己研发TPU。

目前在图像识别、语音识别、自然语言处理等领域,精度最高的算法就是基于深度学习的,传统的机器学习的计算精度已经被超越,目前应用最广的算法,估计非深度学习莫属,而且,传统机器学习的计算量与 深度学习比起来少很多,所以,我讨论AI芯片时就针对计算量特别大的深度学习而言。毕竟,计算量小的算法,说实话,CPU已经很快了。而且,CPU适合执行调度复杂的算法,这一点是GPU与AI芯片都做不到的,所以他们三者只是针对不同的应用场景而已,都有各自的主场。

至于为何用了CPU做对比?

而没有具体说GPU。是因为,我说了,我目前没有系统查看过GPU的论文,不了解GPU的情况,故不做分析。因为积累的缘故,比较熟悉超标量CPU,所以就用熟悉的CPU做详细比较。而且,小型的网络,完全可以用CPU去训练,没啥大问题,最多慢一点。只要不是太大的网络模型。

那些AI算法公司,比如旷世、商汤等,他们的模型很大,自然也不是一块GPU就能搞定的。GPU的算力也是很有限的。

至于说CPU是串行,GPU是并行

没错,但是不全面。只说说CPU串行。这位网友估计对CPU没有非常深入的理解。我的回答中举的CPU是IBM的POWER8,百度一下就知道,这是超标量的服务器用CPU,目前来看,性能已经是非常顶级的了,主频4GHZ。不知是否注意到我说了这是SIMD?这个SIMD,就代表他可以同时执行多条同样的指令,这就是并行,而不是串行。单个数据是128bit的,如果是16bit的精度,那么一周期理论上最多可以计算八组数据的乘法或加法,或者乘加。这还不叫并行?只是并行的程度没有GPU那么厉害而已,但是,这也是并行。

不知道为啥就不能用CPU来比较算力?

有评论很推崇GPU。说用CPU来做比较,不合适。

拜托,GPU本来是从CPU中分离出来专门处理图像计算的,也就是说,GPU是专门处理图像计算的。包括各种特效的显示。这也是GPU的天生的缺陷,GPU更加针对图像的渲染等计算算法。但是,这些算法,与深度学习的算法还是有比较大的区别,而我的回答里提到的AI芯片,比如TPU,这个是专门针对CNN等典型深度学习算法而开发的。另外,寒武纪的NPU,也是专门针对神经网络的,与TPU类似。

谷歌的TPU,寒武纪的DianNao,这些AI芯片刚出道的时候,就是用CPU/GPU来对比的。

看看,谷歌TPU论文的摘要直接对比了TPU1与CPU/GPU的性能比较结果,见红色框:

这就是摘要中介绍的TPU1与CPU/GPU的性能对比。

再来看看寒武纪DianNao的paper,摘要中直接就是DianNao与CPU的性能的比较,见红色框:

回顾一下历史

上个世纪出现神经网络的时候,那一定是用CPU计算的。

比特币刚出来,那也是用CPU在挖。目前已经进化成ASIC矿机了。比特大陆了解一下。

从2006年开始开启的深度学习热潮,CPU与GPU都能计算,发现GPU速度更快,但是贵啊,更多用的是CPU,而且,那时候GPU的CUDA可还不怎么样,后来,随着NN模型越来越大,GPU的优势越来越明显,CUDA也越来越6,目前就成了GPU的专场。

寒武纪2014年的DianNao(NPU)比CPU快,而且更加节能。ASIC的优势很明显啊。这也是为啥要开发ASIC的理由。

至于说很多公司的方案是可编程的,也就是大多数与FPGA配合。你说的是商汤、深鉴么?的确,他们发表的论文,就是基于FPGA的。

这些创业公司,他们更多研究的是算法,至于芯片,还不是重点,另外,他们暂时还没有那个精力与实力。FPGA非常灵活,成本不高,可以很快实现架构设计原型,所以他们自然会选择基于FPGA的方案。不过,最近他们都大力融资,官网也在招聘芯片设计岗位,所以,应该也在涉足ASIC研发了。

如果以FPGA为代表的可编程方案真的有巨大的商业价值,那他们何必砸钱去做ASIC?

说了这么多,我也是半路出家的,因为工作需要而学习的。按照我目前的理解,看TPU1的专利及论文,一步一步推导出内部的设计方法,理解了TPU1,大概就知道了所谓的AI处理器的大部分。然后研究研究寒武纪的一系列论文,有好几种不同的架构用于不同的情况,有兴趣可以研究一下。然后就是另外几个独角兽,比如商汤、深鉴科技等,他们每年都会有论文发表,没事去看看。这些论文,大概就代表了当前最先进的AI芯片的架构设计了。当然,最先进,别人肯定不会公开,比如谷歌就不曾公开关于TPU2和TPU3的相关专利,反正我没查到。不过,没事,目前的文献已经代表了最近几年最先进的进展了。

现在所说的AI芯片,可以分两类,一类是面向训练和推断(Inference)皆可的,这个活GPGPU可以干,CPU也可以干,FPGA(Altera的Stratix系列)也都行,但是Google的TPU2和Bitmain的sophon之类因为专门设计可能在能耗比上有优势。这类产品相对GPGPU,整体类似,保留了相当多的浮点处理单元的同时(或者说建立了很多张量计算单元),抛弃了一些没啥用的图形流水线的玩意,提高了能耗表现。这部分玩家少,但是却更有趣。当然ICLR也有琢磨用定点器件训练的工作,Xilinx家是希望XNOR-net让定点器件都能参与训练。

另一类是Inference Accelerator推断加速芯片,简单说就是把训练好的模型在芯片上跑。这块是真的百花齐放,比如的寒武纪NPU,Intel Movidius(还有个Nervana应该类似XeonPhi用来训练的),深鉴的DPU,地平线BPU,Imagination的PowerVR 2NX,ARM的Project Trillium,还有一堆IP。这类产品既有产品,又提供IP让其他开发者讲深度学习加速器集成到SoC内。另外这里需要单独说下Tegra X2这个产品,这个相当于一个小的桌面平台,ARM处理器加Nvidia GPU可以提供完整的训练推断能力,当然功耗也很高。其他的加速芯片,我觉得最好分成两类,浮点的和定点的。浮点的也只是FP16半精度的,当然支持FP16也支持INT8,比如寒武纪的NPU和Intel Movidius。一类就是纯定点的比如地平线的BPU还有Imagination的PowerVR 2NX之类。当然也有混合的,这块后面细说。

首先说下非ASIC的,Deephi部分产品使用了ZYNQ实现,使用ZYNQ最大的好处就是省了流片费用,使用DSP48和资源实现乘加器完成定点操作,浮点交给CortexA9硬核,Deephi主要是工作在模型剪枝定点化方面,之前和汪玉老师交流,网络定点化时候部分层定点化定点化损失较高,因此保留部分层(主要是最后的)浮点,和嘉楠智耘做加速的人聊也印证这部分,用SOPC比较省事。再就是兼职的比如高通AI平台使用了Adreno GPU和Hexagon DSP做(主要是DSP,风评貌似能耗比970那个好看),SNPE主要是OpenCL折腾用GPU和DSP之类资源推断,MTK和AAPL也类似。其他的差别就很大了Intel Movidius发布较早,支持浮点推断,实际里面是VLIW的SIMD单元,这玩意和之前ATi显卡,或者说DSP设计类似。其他的因为在下看到公开资料不多,瞎说说,一般AI加速器都主要是针对现有网络,做定点或者浮点计算的优化,当然首先还是堆运算单元(矩阵运算单元,乘加),然后减少内存数据搬运,970上那个可能挂在CCI上,然后靠较多缓存,PowerVR 2NX那个貌似是优化到4bit的内存控制器?通过优化内存数据通路,减少一些内存带宽需求之列,总体其实还是关联的。感觉上这类东西接近超多核的DSP,不过是精简的毕竟DSP还能做点控制,笑。

另外某种程度上说,对新的网络优化很差,一般工业比学术慢一年多,比如DenseNet出来了,片子只支持到Resnet。

关于下面两个问题:

如果让GPGPU或者CPU做inference能耗比肯定不好看,但是浮点inference一般比定点化或者精度降低后的情况准确率高(当然存在定点化后泛化能力好的情况)。但是NPU只能在CPU控制下做特定任务就很丢人了,没有很多的应用支持,NPU就很鸡肋,在手机上,很多时候你根本用不到NPU,所以我觉得需要的时候用Mali啥的顶顶得了……

没有啥差别,和别的比如手机SoC,显卡GPU用一套工艺,有钱上新制程,新工艺咯。

人工智能究竟能给我们的生活带来什么?以我们最熟悉的手机为例,日常的拍照美颜已经稀松平常,但目前的自拍软件在拍摄完成后,需要上传到云端,通过通用模型来完成“一键美颜”。而移动端的 AI 芯片则可根据用户平时的喜好,在照片拍摄完成后(甚至拍摄之前的取景阶段)就同步完成照片美化,这对于现有的CPU来说是难以完成的。

那么二者的差别在哪里呢?首先,传统芯片在运算时只需要根据指令来调用相应系统进行工作,而 AI 指令之下则包含大量并行计算与建模。这无疑对处理器的计算能力提出了很高要求。

其次是移动端的数据收集能力,尤其是手机。优秀的 AI 应用要收集大量的数据来对模型进行训练,而手机无疑是最好的数据收集工具。随着诸如麦克风、摄像头、重力感应器、定位装置等越来越多的传感器加入手机中,一种能实时收集、同步处理、连接协调不同传感器的“人工智能”芯片就显得尤为重要。

当然,一片在指甲盖大小的面积上集成了超过 55 亿个晶体管的 AI 芯片不可能只用来拍拍照这么简单。目前手机上已经有语音服务、机器视觉识别、图像处理等智能应用,未来还会增加包含医疗、AR、游戏 AI 等更多元化的应用类型。

标签:
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有