B体育。随着云计算的广泛应用,特别是深度学习成为当前AI研究和运用的主流方式,AI对于算力的要求不断快速提升。随着边缘计算的发展,AI在边缘端的形式越来越多样化,数量越来越多。
在如今这个时代,无时无刻不在产生数据(包括语音、文本、影像等等),AI产业的飞速发展,也萌生了大量垂直领域的数据需求。在AI技术当中,数据相当于AI算法的“饲料”。
目前,数据标注是AI的上游基础产业,以人工标注为主,机器标注为辅。最常见的数据标注类型有五种:属性标注(给目标对象打标签)、框选标注(框选出要识别的对象)、轮廓标注(比框选标注更加具体,边缘更加精确)、描点标注(标注出目标对象上细致的特征点)、其他标注(除以上标注外的数据标注类型)。AI算法需要通过数据训练不断完善,而数据标注是大部分AI算法得以有效运行的关键环节。
今天“AI热潮”的出现主要由于机器学习,尤其是机器学习中的深度学习技术取得了巨大进展,并在大数据和大算力的支持下发挥巨大的威力。
当前最具代表性深度学习算法模型有深度神经网络(Deep Neural Network,简称DNN)、循环神经网络(Recurrent Neural Network,简称RNN)、卷积神经网络(Convolutional Neural Network,简称CNN)。谈到深度学习,DNN和RNN就是深度学习的基础。DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层, 一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。DNN可以理解为有很多隐藏层的神经网络,是非常庞大的系统,训练出来需要很多数据、很强的算力进行支撑。
AI算法模型对于算力的巨大需求,推动了今天芯片业的发展。据OpenAI测算,2012年开始,全球AI训练所用的计算量呈现指数增长,平均每3.43个月便会翻一倍,目前计算量已扩大30万倍,远超算力增长速度。
在AI技术当中,算力是算法和数据的基础设施,支撑着算法和数据,进而影响着AI的发展,算力的大小代表着对数据处理能力的强弱。
算力源于芯片,通过基础软件的有效组织,最终释放到终端应用上,作为算力的关键基础,AI芯片的性能决定着AI产业的发展。
AI运算指以“深度学习” 为代表的神经网络算法,需要系统能够高效处理大量非结构化数据( 文本、视频、图像、语音等) 。需要硬件具有高效的线性代数运算能力,计算任务具有:单位计算任务简单,逻辑控制难度要求低,但并行运算量大、参数多的特点。对于芯片的多核并行运算、片上存储、带宽、低延时的访存等提出了较高的需求。
自2012年以来,人工智能训练任务所需求的算力每 3.43 个月就会翻倍,大大超越了芯片产业长期存在的摩尔定律(每 18个月芯片的性能翻一倍)。针对不同应用场景,AI芯片还应满足:对主流AI算法框架兼容、可编程、可拓展、低功耗、体积及价格等需求。
从技术架构来看,AI芯片主要分为图形处理器(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、类脑芯片四大类。其中,GPU是较为成熟的通用型人工智能芯片,FPGA和ASIC则是针对人工智能需求特征的半定制和全定制芯片,类脑芯片颠覆传统冯诺依曼架构,是一种模拟人脑神经元结构的芯片,类脑芯片的发展尚处于起步阶段。
GPU 通用性强、速度快、效率高,特别适合用在深度学习训练方面,但是性能功耗比较低。
FPGA 具有低能耗、高性能以及可编程等特性,相对于 CPU 与 GPU 有明显的性能或者能耗优势,但对使用者要求高。
ASIC 可以更有针对性地进行硬件层次的优化,从而获得更好的性能、功耗比。但是ASIC 芯片的设计和制造需要大量的资金、较长的研发周期和工程周期,而且深度学习算法仍在快速发展,若深度学习算法发生大的变化,FPGA 能很快改变架构,适应最新的变化,ASIC 类芯片一旦定制则难于进行修改。
中央处理器作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。
优点:CPU有大量的缓存和复杂的逻辑控制单元,非常擅长逻辑控制、串行的运算
对于AI芯片来说,算力最弱的是cpu。虽然cpu主频最高,但是单颗也就8核,16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法。
图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
目前, GPU 已经发展到较为成熟的阶段。谷歌、 FACEBOOK、微软、 Twtter和百度等公司都在使用GPU 分析图片、视频和音频文件,以改进搜索和图像标签等应用功能。此外,很多汽车生产商也在使用GPU芯片发展无人驾驶。不仅如此, GPU也被应用于VR/AR 相关的产业。
但是 GPU也有一定的局限性。深度学习算法分为训练和推断两部分, GPU 平台在算法训练上非常高效。但在推断中对于单项输入进行处理的时候,并行计算的优势不能完全发挥出来。
优点:提供了多核并行计算的基础结构,且核心数非常多,可以支撑大量数据的并行计算,拥有更高的浮点运算能力。
当前国产GPU产业链进口替代:设计环节的一些公司,景嘉微、芯动科技、摩尔线程、沐曦科技等企业正在不断追赶。
FPGA是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
优点:可以无限次编程,延时性比较低,同时拥有流水线并行和数据并行(GPU只有数据并行)、实时性最强、灵活性最高。
FPGA可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率提升。对于某个特定运算,通用 CPU可能需要多个时钟周期,而 FPGA 可以通过编程重组电路,直接生成专用电路,仅消耗少量甚至一次时钟周期就可完成运算。
此外,由于 FPGA的灵活性,很多使用通用处理器或 ASIC难以实现的底层硬件控制操作技术, 利用 FPGA 可以很方便地实现。这个特性为算法的功能实现和优化留出了更大空间。同时FPGA 一次性成本(光刻掩模制作成本)远低于ASIC,在芯片需求还未成规模、深度学习算法暂未稳定, 需要不断迭代改进的情况下,利用 FPGA 芯片具备可重构的特性来实现半定制的人工智能芯片是最佳选择之一。
功耗方面,从体系结构而言, FPGA 也具有天生的优势。传统的冯氏结构中,执行单元(如 CPU 核)执行任意指令,都需要有指令存储器、译码器、各种指令的运算器及分支跳转处理逻辑参与运行, 而FPGA每个逻辑单元的功能在重编程(即烧入)时就已经确定,不需要指令,无需共享内存,从而可以极大的降低单位执行的功耗,提高整体的能耗比。
当前国产FPGA厂家,复旦微、紫光同创、安路等公司。AI应用对FPGA的速率、规模等都有很高的要求,国产厂家还在努力中。
ASIC,即专用集成电路,指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和 FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一。
目前以深度学习为代表的人工智能计算需求,主要采用GPU、FPGA等已有的适合并行计算的通用芯片来实现加速。在产业应用没有大规模兴起之时,使用这类已有的通用芯片可以避免专门研发定制芯片(ASIC)的高投入和高风险。但是,由于这类通用芯片设计初衷并非专门针对深度学习,因而天然存在性能、 功耗等方面的局限性。随着人工智能应用规模的扩大,这类问题日益突显。
GPU作为图像处理器, 设计初衷是为了应对图像处理中的大规模并行计算。因此,在应用于深度学习算法时,有三个方面的局限性:
第一:应用过程中无法充分发挥并行计算优势。 深度学习包含训练和推断两个计算环节, GPU 在深度学习算法训练上非常高效, 但对于单一输入进行推断的场合, 并行度的优势不能完全发挥。
第二:无法灵活配置硬件结构。GPU 采用 SIMT 计算模式, 硬件结构相对固定。目前深度学习算法还未完全稳定,若深度学习算法发生大的变化, GPU 无法像 FPGA 一样可以灵活的配制硬件结构。
尽管 FPGA 倍受看好,甚至类似百度大脑这样的一些云计算平台,也是基于 FPGA 平台研发,但其毕竟不是专门为了适用深度学习算法而研发,实际应用中也存在诸多局限:
第一:基本单元的计算能力有限。为了实现可重构特性, FPGA 内部有大量极细粒度的基本单元,但是每个单元的计算能力(主要依靠 LUT 查找表)都远远低于 CPU 和 GPU 中的 ALU 模块。
第二:计算资源占比相对较低。 为实现可重构特性, FPGA 内部大量资源被用于可配置的片上路由与连线。
第四,:FPGA 价格较为昂贵。在规模放量的情况下单块 FPGA 的成本要远高于专用定制芯片。
因此,随着人工智能算法和应用技术的日益发展,以及人工智能专用芯片 ASIC产业环境的逐渐成熟, 全定制化人工智能 ASIC也逐步体现出自身的优势
优点:它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、 功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
首先,ASIC的性能提升非常明显。例如英伟达首款专门为深度学习从零开始设计的芯片 Tesla P100 数据处理速度是其 2014 年推出GPU 系列的 12 倍。谷歌为机器学习定制的芯片 TPU 将硬件性能提升至相当于当前芯片按摩尔定律发展 7 年后的水平。正如 CPU 改变了当年庞大的计算机一样,人工智能 ASIC 芯片也将大幅改变如今 AI 硬件设备的面貌。如大名鼎鼎的 AlphaGo 使用了约 170 个图形处理器(GPU)和 1200 个中央处理器(CPU),这些设备需要占用一个机房,还要配备大功率的空调,以及多名专家进行系统维护。而如果全部使用专用芯片,极大可能只需要一个普通收纳盒大小的空间,且功耗也会大幅降低。
第二,下游需求促进人工智能芯片专用化。从服务器,计算机到无人驾驶汽车、无人机再到智能家居的各类家电,至少数十倍于智能手机体量的设备需要引入感知交互能力和人工智能计算能力。而出于对实时性的要求以及训练数据隐私等考虑,这些应用不可能完全依赖云端,必须要有本地的软硬件基础平台支撑,这将带来海量的人工智能芯片需要。
目前人工智能专用芯片的发展方向包括:主要基于 FPGA 的半定制、针对深度学习算法的全定制和类脑计算芯片 3 个方向。
在芯片需求还未形成规模、深度学习算法暂未稳定,AI 芯片本身需要不断迭代改进的情况下,利用具备可重构特性的 FPGA 芯片来实现半定制的人工智能芯片是最佳选择之一。“深度学习处理单元”(Deep Processing Unit,DPU)的芯片,希望以 ASIC 级别的功耗达到优于 GPU 的性能。这种半定制芯片虽然依托于 FPGA 平台,但是抽象出了指令集与编译器,可以快速开发、快速迭代,与专用的 FPGA 加速器产品相比,也具有非常明显的优势。
深度学习算法稳定后,AI 芯片可采用 ASIC 设计方法进行全定制,使性能、功耗和面积等指标面向深度学习算法做到最优。
“抛弃冯诺依曼架构”,“模仿人类大脑计算”,近年来,这些噱头为类脑芯片吸引了不少人的注意。他们相中了这类“非传统”芯片在AI上的潜力,毕竟将AI计算做到大规模和低功耗还是一件不小壮举。因此类脑芯片被诸多低功耗边缘应用看好,而传统的密集型云端计算的重任仍然担在传统的AI芯片的肩上。无论是Fabless,还是IDM,不少大厂其实都在关注边缘AI的市场,比如英特尔的Movidius和英伟达的Jetson等等。但市面上也有一些厂家在发力类脑芯片的开发,同时探索新架构的芯片上将用到怎样的软件开发生态。因为这些类脑芯片往往用到的是脉冲神经网络(SNN),直接拿常用的卷积神经网络(CNN)或人工神经网络(ANN)硬套的话,是万万行不通的。也正是因为软硬件上的双重挑战,限制了类脑芯片的商用。
类脑芯片不采用经典的冯·诺依曼架构, 而是基于神经形态架构设计,以IBM Truenorth为代表。IBM 研究人员将存储单元作为突触、计算单元作为神经元、传输单元作为轴突搭建了神经芯片的原型。
目前, Truenorth用三星 28nm功耗工艺技术,由 54亿个晶体管组成的芯片构成的片上网络有4096个神经突触核心,实时作业功耗仅为70mW。由于神经突触要求权重可变且要有记忆功能, IBM采用与CMOS工艺兼容的相变非易失存储器(PCM)的技术实验性的实现了新型突触,加快了商业化进程。
格拉茨技术大学的计算机科学家在 Nature 子刊上发表的一篇论文表明,他们找到了一种在神经形态芯片上模拟 LSTM 的方案,可以让类脑神经形态芯片上的 AI 算法能效提高约 1000 倍。
随着智能手机的普及,手机游戏也越来越受欢迎。但视频游戏等程序会大量耗电耗能。与 GPU 等标准硬件相比,基于 spike 的神经形态芯片有望实现更节能的深度神经网络(DNN)。但这需要我们理解如何在基于 event 的稀疏触发机制(sparse firing regime)中模拟 DNN,否则神经形态芯片的节能优势就会丧失。
比如说,解决序列处理任务的 DNN 通常使用长 - 短期记忆单元(LSTM),这种单元很难模拟。现在有一项研究模拟了生物神经元,通过放慢每个脉冲后的超极化后电位(AHP)电流,提供了一种有效的解决方案。AHP 电流可以很容易地在支持多节段(multi-compartment)神经元模型的神经形态硬件(例如英特尔的 Loihi 芯片)上实现类似于 LSTM 的功能。
图形处理器(英语:graphics processing unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时GPU所采用的核心技术有硬件T&L(几何转换和光照处理)、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬件T&L技术可以说是GPU的标志。
计算就是计算,数学上都是一样的,1+1用什么算都是2,CPU算神经网络也是可以的,算出来的神经网络放到实际应用中效果也很好,只不过速度会很慢罢了。
电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫“渲染”。以前的计算机上没有GPU,渲染就是CPU负责的。渲染是个什么操作呢,其实就是做了一系列图形的计算,但这些计算往往非常耗时,占用了CPU的一大部分时间。而CPU还要处理计算机器许多其他任务。因此就专门针对图形处理的这些操作设计了一种处理器,也就是GPU。这样CPU就可以从繁重的图形计算中解脱出来。
渲染这个过程具体来说就是几何点位置和颜色的计算,这两者的计算在数学上都是用四维向量和变换矩阵的乘法,因此GPU也就被设计为专门适合做类似运算的专用处理器了。为什么说专用呢,因为很多事情他做不了。
CPU通用性强,但是专用领域性能低。工程就是折衷,这项强了,别的就弱了。再后来游戏、3D设计对渲染的要求越来越高,GPU的性能越做越强。论纯理论计算性能,要比CPU高出几十上百倍。
这个视频,非常具象地表述了CPU和GPU在图像处理时的不同的原理和方法。看到GPU的模型喷射出的一瞬间,你就秒懂了。
人们就想了,既然GPU这么强,那用GPU做计算是不是相比CPU速度能大大提升呢?于是就有了GPGPU(general purpose GPU,通用计算GPU)这个概念。但我们前面提到了,GPU是专门为了图像渲染设计的,他只适用于那些操作。但幸运的是有些操作和GPU本职能做的那些东西非常像,那就可以通过GPU提高速度,比如深度学习。
深度学习中一类成功应用的技术叫做卷积神经网络CNN,这种网络数学上就是许多卷积运算和矩阵运算的组合,而卷积运算通过一定的数学手段也可以通过矩阵运算完成。这些操作和GPU本来能做的那些图形点的矩阵运算是一样的。因此深度学习就可以非常恰当地用GPU进行加速了。
以前GPGPU(通用GPU)概念不是很火热,GPU设计出来就是为了图形渲染。想要利用GPU辅助计算,就要完全遵循GPU的硬件架构。而现在GPGPU越来越流行,厂家在设计和生产GPU的时候也会照顾到计算领域的需求了。比如今年英伟达发布M40和P100的时候,都在说”针对深度学习设计“,当然其实这里面炒概念的成分更大了,但至少可以看出厂家越来越多地看重通用GUGPU计算了。
GPU的产生是为了解决图形渲染效率的问题,但随着技术进步,GPU越来越强大,尤其是shader出现之后(这个允许我们在GPU上编程),GPU能做的事越来越多,不再局限于图形领域,也就有人动手将其能力扩展到其他计算密集的领域,这就是GP(General Purpose)GPU。
使用一个模糊滤镜算子的小窗口,从图片的左上角开始处理,并从左往右,再从左往右进行游走处理,直到整个图片被处理完成。因为CPU只有一个或者少数几个核,所以执行这种运算的时候,只能老老实实从头遍历到最后。
但是有一些聪明的读者会发现,每个窗口在处理图片的过程中,都是独立的,相互没有关系的。那么同时用几个滤镜窗口来处理是不是更快一些? 于是我们有了GPU, 一般的GPU都有几百个核心,意味着,我们可以同时有好几百个滤镜窗口来处理这张图片。
所以说,GPU起初的设计目标就是为了处理这种图形图像的渲染工作,而这种工作的特性就是可以分布式、每个处理单元之间较为独立,没有太多的关联。而一部分机器学习算法,比如遗传算法,神经网络等,也具有这种分布式及局部独立的特性(e.g.比如说一条神经网络中的链路跟另一条链路之间是同时进行计算,而且相互之间没有依赖的),这种情况下可以采用大量小核心同时运算的方式来加快运算速度。
打造“GPU”概念,2006年推出CUDA构建生态优势•Nivdia首席科学家DavidKirk建议赋予GPU合适的编程模型,把丰富的开发资源分享给开发者。•2006年开发通用化的CUDA(ComputeUnified Device Architecture),硬件设计中增加相关的CUDA逻辑电路,虽然DieSize、散热、成本增加,但可以通过CUDA构建通用计算生态系统。•为服务AI普及后的深度学习应用,Nvidia开发用于深度神经网络GPU加速库cuDNN,开发TensorRT作为深度推理学习工具,加速TensorFlow推理,开发DeepStream通过借助GPU硬件特性快速构建高性能视频分析应用程序。•2021年CUDA-X开发者已经超过100万,进化到了9.0,可以兼容DirectCompute、OpenCL等计算接口。
GPU原先绑定的PC开始逐步衰退,Nvidia战略核心转向高端游戏显卡,强大的3D渲染能力能更好支持游戏应用。
游戏市场的持续成功为公司发展计算型GPU和AI相关应用提供了现金流保障。
2016年起加强投入数据中心,成本AI芯片龙头•数据中心业务爆发式增长,云数据中心和超级数据中心加速建设,AI深度学习和高性能计算在云端落地使Nivdia快速增长,2016年起连续7个季度数据中心业务的增长超过100%。•随着比特币退朝,AI相关应用预期大打折扣,英伟达的股价腰斩,公司遭遇上市后的第二次重大挫折,此时及时推出支持实时光线追踪的Turing架构显卡,公司再度依赖游戏主业走出低估必一运动。•2019年,NvidiaGPU被全球主要云厂商大量使用(阿里、AWS、Azure、Google),市场占有率70%。数据中心业务在英伟达占比为26%,公司成为AI芯片龙头。
综上,英伟达从“显卡”厂家逐步转型为“GPU计算平台”供应商,显卡配合CUDA生态是基石,近十年享受到了AI红利,成长为AI芯片龙头,市场占有率70%。
TPU1,大约700M Hz,有256X256尺寸的脉动阵列,如下图所示。一共256X256=64K个乘加单元,每个单元一次可执行一个乘法和一个加法。那就是128K个操作。(乘法算一个,加法再算一个)
另外,除了脉动阵列,还有其他模块,比如激活等必一运动,这些里面也有乘法、加法等。
对比一下CPU与TPU1,会发现计算能力有几个数量级的差距,这就是为啥说CPU慢。
当然,以上的数据都是完全最理想的理论值,实际情况,能够达到5%吧。因为,芯片上的存储不够大,所以数据会存储在DRAM中,从DRAM取数据很慢的,所以,乘法逻辑往往要等待。另外,AI算法有许多层网络组成,必须一层一层的算,所以,在切换层的时候,乘法逻辑又是休息的,所以,诸多因素造成了实际的芯片并不能达到利润的计算峰值,而且差距还极大。
脉动阵列并不是一个新鲜的词汇,在计算机体系架构里面已经存在很长时间。大家可以回忆下冯诺依曼架构,很多时候数据一定是存储在memory里面的,当要运算的时候需要从memory里面传输到Buffer或者Cache里面去。当我们使用computing的功能来运算的时候,往往computing消耗的时间并不是瓶颈,更多的瓶颈在于memory的存和取。所以脉动阵列的逻辑也很简单,既然memory读取一次需要消耗更多的时间,脉动阵列尽力在一次memory读取的过程中可以运行更多的计算,来平衡存储和计算之间的时间消耗。
首先,图中上半部分是传统的计算系统的模型。一个处理单元(PE)从存储器(memory)读取数据,进行处理,然后再写回到存储器。这个系统的最大问题是:数据存取的速度往往大大低于数据处理的速度。因此,整个系统的处理能力(MOPS,每秒完成的操作)很大程度受限于访存的能力。这个问题也是多年来计算机体系结构研究的重要课题之一,可以说是推动处理器和存储器设计的一大动力。而脉动架构用了一个很简单的方法:让数据尽量在处理单元中多流动一会儿。
正如上图的下半部分所描述的,第一个数据首先进入第一个PE,经过处理以后被传递到下一个PE,同时第二个数据进入第一个PE。以此类推,当第一个数据到达最后一个PE,它已经被处理了多次。所以,脉动架构实际上是多次重用了输入数据。因此,它可以在消耗较小的memory带宽的情况下实现较高的运算吞吐率。
上面这张图非常直观的从一维数据流展示了脉动阵列的简单逻辑。当然,对于CNN等神经网络来说,很多时候是二维的矩阵。所以,脉动阵列从一维到二维也能够非常契合CNN的矩阵乘加的架构。
还可以从体系架构上对整个的Memory读取来做进一步的优化。这里摘取的是寒武纪展示的一些科研成果。其实比较主流的方式就是尽量做Data Reuse,减少片上Memory和片外Memory的信息读取次数,增加片上memory,因为片上数据读取会更快一点,这种方式也能够尽量降低Memory读取所消耗的时间,从而达到运算的加速。
目前来看,神经网络的尺寸是越来越大,参数越来越多,遇到大型NN模型,训练需要花几周甚至一两个月的时候,你会耐心等待么?突然断电,一切重来?计算速度快,才能迅速反复迭代,研发出更强的AI模型。速度就是金钱。
肯定的是,GPU还是比较快的,至少比CPU快得多,所以目前大多数都用GPU,这玩意随便一个都能价格轻松上万,太贵,而且,功耗高,经常缺货必一运动。不适合数据中心大量使用。
总的来说,CPU与GPU并不是AI专用芯片,为了实现其他功能,内部有大量其他逻辑,而这些逻辑对于目前的AI算法来说是完全用不上的,所以,自然造成CPU与GPU并不能达到最优的性价比。
当然ASIC是能效最高的,但目前,都在早期阶段,算法变化各异。想搞一款通用的ASIC适配多种场景,还是有很多路需要走的。但是,在通信领域,FPGA曾经也是风靡一时,但是随着ASIC的不断发展和蚕食,FPGA的份额和市场空间已经岌岌可危。如果深度学习能够迅速发展,有可能这个过程会比通信领域过程更短。
人机大战落幕后的两个月,谷歌硬件工程师 Norm Jouppi 才公开了其加速硬件的存在。在博客中,他解释道,谷歌给数据中心装备这些加速器卡已经有超过一年的时间。虽然谷歌对技术细节严格保密,但已透露它们专为谷歌开源项目 TensorFlow 而优化;它采取了:ASIC。
谷歌研发TPU并非要取代CPU或者FPGA,谷歌自认为,TPU是介于CPU和ASIC (application-specific integrated circuit:应用集成电路)之间的芯片。ASIC用于专门的任务,比如去除噪声的电路,播放视频的电路,但是ASIC明显的短板是不可更改任务。通用CPU可以通过编程来适应各种任务,但是效率能耗比就不如ASIC。一如前边所言,在机器学习方面,TPU兼具了CPU与ASIC的特点,可编程,高效率,低能耗。
谷歌花钱研发TPU,是给自己的闭环生态使用。做AI芯片,虽然是基础算力,但是,做戏就得做全套。所以华为、算能等国产芯片厂家都是提供完整的芯片解决方案、支持的AI框架要多,支持的算子要多,要有全流程开发工具链。
比特币刚出来,那也是用CPU挖、后来用GPU挖、再后来用ASIC挖,最后蚂蚁矿机一统江湖。目前已经进化成ASIC矿机了。其实AI计算能力跟挖矿算力的演进是一个道理。
从2006年开始开启的深度学习热潮,CPU与GPU都能计算,发现GPU速度更快,但是贵啊,更多用的是CPU,而且,那时候GPU的CUDA可还不怎么样,后来,随着NN模型越来越大,GPU的优势越来越明显,CUDA也越来越“666”,目前就成了GPU的专场。按照这个演进逻辑、谷歌为什么要自研TPU、国产芯片厂家为什么要自研各种AI的ASIC,华为的昇腾、算能的BM1684,寒武纪的DianNao(NPU),在相同的算力情况下,与GPU相比更经济、更加节能。ASIC的优势很明显啊。这也是为啥要开发ASIC的理由。