人工智能处理器的N种方案解读
Intel预见到DNN将会大量普及,因此开发一款名为AVX-512的技术来因应这方面的需求。这种方法是该公司原始AVX设计的扩展,使每个CPU能够一次处理512位的数据,是标准CPU的8倍。这些512位可以通过多种方式分配,例如,16个单精度浮点值(Single-PrecisionFloatingPointValue,亦即16个32位浮点)或64个8位整数(Integers)。这种灵活性非常重要,因为DNNs的训练通常需要32位浮点(FP32),而推理可以使用较小的8位整数(INT8)来提高吞吐量(Throughput)和功率效率。
Intel基于Skylake-SP设计的XeonScalable处理器,可实现多达28个具有AVX-512功能的CPU内核。高端8180型号在3.2GHz的峰值速度下,每秒可以产生超过2万亿(Trillion)次FP32操作,或是,8万亿次INT8操作,所消耗功率为205WTDP(ThermalDesignPower,热设计功耗)。该芯片还包含超过45MB(兆字节)的高速缓存(CacheMemory),可存储大型DNN的关键参数。它并具有6个DDR4DRAM通道,用以满足网络其余部分的高速存储需求。该公司还提供许多其他型号,以降低价格和功率水平。
虽然通用处理器易于编程,然而其计算内核数最多只有几十个,并行处理能力稍嫌不足,因此运算效能不及GPUs。
图形处理器(GraphicsProcessors)
为了创建高质量的图像,现代图形处理器(GPU)仰赖称为着色器内核(ShaderCores)的可编程引擎,这是具有强大的浮点运算能力的引擎。由于这些内核专注于计算并省略了通用处理器架构的许多功能,因此它们的晶粒(die)尺寸比CPU小,所以ㄧ个芯片可以放入较多的GPUs。着色器内核可以对图形之外的任务进行编程,尽管它们的编程模型和软件开发工具比标准CPU较难以使用。
为了解决这个问题,人工智能研究人员创建了用于开发DNN的工具。这些“框架(Frameworks)”为构建网络、指定节点和连接的数量提供一个高级接口(High-LevelInterface)。一旦指定,网络就可以通过应用程序编程接口(ApplicationProgrammingInterface,API)和一组驱动程序在任何硬件上运行。通过这种方式,DNN开发人员无需对底层硬件进行编程。目前,TensorFlow、Caffe/Caffe2和Torch/Pytorch是最受欢迎的DNN框架。
NVIDIA是人工智能应用GPU芯片的领先供应商。它为所有受欢迎的框架以及其他工具提供驱动程序,以促进DNNs的开发和训练。例如,该公司为数据中心所开发的的高端GPUTeslaV100(“Volta”),它拥有320个着色器内核(称为Warp内核),每秒可以处理14万亿FP32操作。此芯片及其高带宽内存(HighBandwidthMemory,HBM)的总功率为250WTDP。V100只有6MB的高速缓存,此小容量内存会影响大型网络的性能,尽管芯片使用HBM来部分弥补这一缺点。
此外,GPU虽然擅长浮点运算,有着极高的运算效能,这优势却也成为它在某些AI应用上的绊脚石。如同前面提过的,DNNs的推理(Inference)并不需要高精度浮点运算,因此使用GPU反而会造成功耗的浪费。
数据中心加速器(Data-CenterAccelerators)
虽然GPU为DNN提供了一个有效的解决方案,特别是在需要浮点运算时,但是GPU最初是为图形设计的,而不是为人工智能设计的。现在人工智能处理的需求非常大,许多公司正在开发定制芯片,优化DNNs加速。加速器(Accelerators)是指以现有芯片架构(如CPU、FPGA等)为基础,针对某特定算法或应用进行优化,进以提升在此特定应用时的运算速度。这种定制芯片每单位瓦可以提供最佳性能,尽管结果因实施情况会有所不同。
由于这些人工智能加速器的开发还处于起步阶段,因此研究人员正在应用许多不同的架构来解决这个问题。然而,一些共同的特征开始显现。例如,用于推理的产品可以不使用浮点运算(例如FP32),而专注于较小的整数运算(例如INT8)。一个整数MAC(MultiplyAccumulate,乘积累加运算)单元的晶粒面积(DieArea)大约只有浮点单元的一半而已。此外,8位MAC使用的面积是32位MAC的四分之一。因此,从FP32转移到INT8可以减少多达8x的计算面积。更小的面积也同时意味着较低的功耗。研究显示,对于推理来说,FP32和INT8在DNN精度上的差异是很小的。研究人员正在评估其他数字格式,以优化精度和晶粒面积/功耗之间的权衡。
图一:脉动MAC阵列(SystolicMACArray)。在这种架构中,当激活数据流过时,权重(Weight)沿着阵列向下流动,从而使每个周期能够进行大量的乘积累加运算(MAC)。此示例来自Google的TPU。(PhotoSource:TheLinleyGroup)
另一个共同的特征是脉动MAC阵列(SystolicMACArray)。如图一所示,一个脉动阵列可以同时计算多达256个MAC,然后数据立即流到下一行进行下一个计算。相比之下,CPU或GPU内核对指令进行解码,从寄存器(Register)加载512位数据,最多计算16个MAC,然后将结果存储到寄存器中。脉动阵列消除了这些额外的指令解码和寄存器存取动作,简化了芯片设计。最后,人工智能处理器通常包括特殊的硬件来计算常用的DNN函数,如激活(Activations)、归一化(Normalization)和池化(Pooling),这些函数在标准CPU或GPU上通常需要执行多个指令。
2016年,Intel收购了NervanaSystems,这是一家开发为DNN优化的新架构的初创公司。Intel希望Nervana设计能够支持数据中心的培训和推理。该设计使用片上HBM实现大容量存储器带宽。2019年ㄧ月Intel推出了该公司为推理所研发的Nervana神经网络推理处理器(NNP-I),该处理器将在2019年下半年出货而用于训练的处理器将在年底推出。
现场可编程门阵列(FPGAs)
定制架构(CustomArchitecture)芯片在人工智能加速器具有巨大前景,例如专用集成电路(ASIC)因为是针对特定算法及应用优化所设计,因此其效能、面积(成本)、设计保密度等各方面都具有优势。但问题是,实现定制架构,从芯片设计、掩膜(Mask)制作、晶圆厂投片制造、测试验证到量产,可能需要花上ㄧ年以上的时间,而且一旦设计确认,芯片制造出来,硬件就无法更改。再者,研究人员仍在继续开发新的DNN算法、新的激活函数(ActivationFunction)和新的数据格式,如果设计者猜错或者没有预测到新的算法,他们的产品可能会在市场上失败。
一种解决方案是使用FPGA,这种灵活的芯片可以实时实现新的设计。公司可以将相同的架构烧录到FPGA中,几分钟内就可以启动并运行,而不是将一个新架构精雕细琢到ASIC中,然后花数个月等待芯片从晶圆厂回来。此外,如果公司想要修复一个错误,或是对架构做一个微小改进,它可以在几分钟内更新相同的FPGA芯片,而不需要购买新的芯片。
FPGA非常适合神经网络,因为它除了可配置逻辑(ConfigurableLogic)模块外,还包括许多称为DSP模块的MAC单元。Xilinx与Intel是FPGA人工智能加速器的领导者。例如,Intel的Stratix10FPGA拥有多达5,760个DSP模块,每秒可产生23万亿次整数运算(Stratix10使用比8位整数更精确的18位整数)。FPGA还可以配置为每秒产生9万亿次FP32运算。在处理这些DNN计算时,IntelFPGA的功率消耗(包括内存)为125W。
微软创建了一个名为Brainwave的架构,并将其在IntelStratixFPGAs中实例化,从而加速数据中心的推理速度。该公司每周都会进行ㄧ些调整,同时将其推广到数千个FPGAs。使用这种迭代方法,它开发并测试了一个定制的9位浮点格式(FP9),然后确定采用一个比标准INT8性能高一倍的8位格式(FP8)。为了满足其数据中心的需求,微软还针对Brainwave进行低延迟优化,即使在少量请求的情况下也能保持高效率。这些定制化演示了将FPGAs用于DNNs的优势。
虽然FPGAs有着上述的优势,但为了达到灵活使用的目的,FPGAs实际可运用之逻辑电路只占芯片面积的10%~20%左右,其余都是用在连线电路上,这意味著芯片面积的浪费与成本的提高。因此现代FPGA已崁入很多常用的计算单元甚至是IP,比如加法器、乘法器、片上RAM,甚至嵌入式CPU,这些单元不是通过传统FPGA编程方式来构建,而是跟ASIC一样,用晶体管搭成,这可有效节省芯片面积,同时提升性能,这些计算单元同样的可以让用户配置和组合。
软件定义硬件(SDH)
基于上述FPGA崁入常用计算单元的同样概念,一种新型的芯片技术—软件定义硬件(SoftwareDefinedHardware,SDH)应运而生。SDH的目标是构建运行时可重新配置的软硬件,也让芯片可以根据软件对其硬件进行调整。SDH可以实现接近ASIC的性能,但不会牺牲数据密集型算法的可编程性。由美国国防部先进计划署(DARPA)推动的电子产业振兴计划(ElectronicsResurgenceInitiative,ERI),其中一个计划就是软件定义硬件。SDH计划旨在创建硬件/软件系统,允许数据密集型算法以接近ASIC的效率运行,但又不会面临ASIC所拥有的高制造成本、长开发时间或单一应用等等的缺点或限制。
SDH将创建可塑的硬件/软件体系结构,与ASIC不同,它允许应用程序将硬件配置延迟到运行时才进行。SDH可以:
ㄧ、当输入数据发生变化时,动态优化代码和硬件,
二、重用硬件来處理新的问题和新的算法,以解决现有问题。
为了实现这些目标,SDH需要非常快的硬件重新配置速度和动态编译能力才能达成这些目标。预期SDH系统的效率将是ASIC的5倍、CPU的500-1000倍。
图二:SDH的概念和结构。(PhotoSource:DARPA)
自动驾驶(AutonomousDriving)
每家大型汽车制造商都在开发自动驾驶技术,最终将允许乘客在无人驾驶的情况下安全地搭乘汽车。这项技术也可以应用于卡车、飞机和无人机。如今,有些汽车已经具备了半自动化技术,但它们需要驾驶员的监督。到2020年,我们预计大规模生产所谓的SAE等级4的自动驾驶汽车,在有限的地理区域(如城市)和良好的天气条件下,这些汽车是不需要人类驾驶的。(注:SAE是美国汽车工程师学会(SocietyofAutomotiveEngineers))
表ㄧ:自动驾驶汽车SAE分级表。
要达成这个目标需要复杂的人工智能算法和处理器。自动驾驶汽车必须分析来自摄像机和其他传感器的实时数据,识别地标(如车道标志、路标、建筑物)以及潜在的危险(如车辆、行人、道路碎片)。DNNs在这种图像识别方面表现出色。精确解析车辆周围的环境这最困难的问题解决之后,其他复杂的算法则用以确定通往目的地的最佳路径,同时确保安全。DNNs和传统软件的结合可以处理路径规划。
尽管它们具有庞大车身的和强大的引擎,但汽车功率和尺寸的限制比数据中心更多。消费者不希望整个行李箱填满驱动系统,汽车制造商将功率消耗限制在40W左右,以避免降低发动机性能和行驶里程。新的处理器必须满足这些限制,同时提供等级4和等级5自动驾驶所需的高性能。
2017年,Intel收购了Mobileye,这是等级2和等级3高级辅助驾驶系统(AdvancedDriverAssistanceSystems,ADAS)处理器的领先供应商。Mobileye专注于视觉处理,即分析相机图像和识别物体的能力。例如该公司的EyeQ4处理器每秒可产生2万亿次整数运算,而功耗仅为3W,与高端数据中心处理器相比这数值低多了。Intel计划将其中两种处理器与负责处理路径规划的低功耗Xeon芯片相结合,这种组合可以满足一辆汽车的40W功率预算。
消费性(Consumer)/物联网(IoT)产品
人工智能处理适用于许多消费产品。除了像AmazonAlexa这样的语音助理现在已普遍出现在各家厂商之智能音箱外,我们开始看到支持声控的电视,烤箱,智能手表,照明什至厕所。虽然用户可以接受在做一般查询的云处理时有些延迟,但在居家处理照明调整或更改电视或广播频道的语音命令则必需获得快速响应。能够识别少量基本语音命令的神经网络所需要的存储器和处理能力相对较少。
大多数网络安全监控摄像机都会将视频发送到云上进行处理,但这种方法会占用大量带宽,特别是对于高解析度摄像机。因此,一些“智能相机”集成了一个处理器,该处理器可以分析图像并只有在出现异常时才将图像发送到云端。无人机可以使用类似的处理器来分析周围环境、避开障碍物、或在滑雪场或滑板公园跟踪拍摄对象。
消费性应用的处理器必须以尽可能低的成本交付所需的AI性能。许多应用还需要使用较小的芯片,以消耗尽较少的功率。即使微控制器有足够的性能来处理基本的语音识别,人工智能芯片也可以用一小部分的功率来完成相同的功能。这种节能在智能手表和其他电池驱动设备中至关重要。
为了满足这些消费者的需求,一些公司开发了低功耗的人工智能处理器。例如,Intel提供了提供由其Movidius子公司开发的视觉处理芯片Myriad2。该芯片的运算速度为每秒1万亿次,但它的功耗在一般情况只有约1W左右。它有12个定制的SHAVE内核,每个周期可以处理128位,以及一个新的神经计算引擎,可提供大部分的DNN加速。为了简化软件开发,Myriad2还提供一种做成类似U盘的包装让你可以直接插入连接个人电脑。(注:本文发稿时,有16个SHAVE内核的MyriadX也已问世)
图三:Intel(Movidius)搭载Myriad2的视觉处理芯片提供类似U盘的包装。(PhotoSource:Intel)
结论
自从深度神经网络(DNN)出现以后,人工智能处理正在席卷科技行业,并渗透到许多其他领域,通过自动化简单的任务,改善工作流程和消费者的生活方式。为了充分实例化这些功能,AI处理不能被困在云中,相反的,它正向终端用户(边缘)靠近。要有效地实现这些人工智能任务,需要为汽车、无人机、安全摄像头、家用电器、可穿戴设备、医疗设备和其他物联网系统开发新型处理器。数据中心将继续发挥重要作用,特别是在训练DNNs方面,因此云服务提供商也在为他们的人工智能需求寻找更好的处理器。
没有一种处理器能够同时满足这些具有不同性能、功率和成本要求的广泛应用,每ㄧ种处理器也各自有其强项及弱点。开发者必须根据他们的应用选择适当的处理器,才能在这极具竞争的市场中脱颖而出。
参考文章:
"AIRequiresManyApproaches"byLinleyGwennapPrincipalAnalyst"SoftwareDefinedHardware(SDH)"byDARPAMr.WadeShen*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
实时专业原创深度返回搜狐,查看更多
人工智能下的处理器(xpu)
▍APU音频加速处理单元。
▍FFT傅里叶变换。
▍CPU上文也进行了详细的介绍。也不会有AI公司将自己的处理器命名为CPU的。不过,CPU与AI处理器并不冲突。▍FPUFloatingPointUnit。浮点单元,不多做解释了。现在高性能的CPU、DSP、GPU内都集成了FPU做浮点运算。▍GPUGraphicsProcessingUnit。图形处理器。GPU原来最大的需求来自PC市场上各类游戏对图形处理的需求。但是随着移动设备的升级,在移动端也逐渐发展起来。▍KPU-神经网络处理器KnowledgeProcessingUnit。嘉楠耘智(canaan)号称2017年将发布自己的AI芯片KPU。嘉楠耘智要在KPU单一芯片中集成人工神经网络和高性能处理器,主要提供异构、实时、离线的人工智能应用服务。这又是一家向AI领域扩张的不差钱的矿机公司。作为一家做矿机芯片(自称是区块链专用芯片)和矿机的公司,嘉楠耘智累计获得近3亿元融资,估值近33亿人民币。据说嘉楠耘智近期将启动股改并推进IPO。另:KnowledgeProcessingUnit这个词并不是嘉楠耘智第一个提出来的,早在10年前就已经有论文和书籍讲到这个词汇了。只是,现在嘉楠耘智将KPU申请了注册商标。▍MPUMicroProcessingUnit。微处理器。MPU,CPU,MCU,这三个概念差不多,知道就行了。MindProcessingUnit。意念处理器,听起来不错。「解读脑电波」,「意念交流」,永恒的科幻话题。如果采集大量人类「思考」的脑电波数据,通过深度学习,再加上强大的意念处理器MPU,不知道能否成为mind-reader。如果道德伦理上无法接受,先了解一下家里宠物猫宠物狗的「想法」也是可以的吗。再进一步,从mind-reader发展为mind-writer,持续升级之后,是不是就可以成为冰与火中的Skinchanger?▍NPUNeural-NetworkProcessingUnit。与GPU类似,神经网络处理器NPU已经成为了一个通用名词,而非某家公司的专用缩写。由于神经网络计算的类型和计算量与传统计算的区别,导致在进行NN计算的时候,传统CPU、DSP甚至GPU都有算力、性能、能效等方面的不足,所以激发了专为NN计算而设计NPU的需求。这里罗列几个以NPU名义发布过产品的公司,以及几个学术圈的神经网络加速器。
国内处理器芯片厂家立创-处理器与微控制器航顺HK32兆易创新GD3232位单片机华大HC32M0-M432位单片机新唐MS5151单片机宏晶STC南京沁恒
Corebai(芯佰微)usb、数模、放大器、电源启珑微电子DSP数字信号处理器CLM32珠海极海APM32网络安全、蓝牙辉芒微电子存储、电源、单片机寒武纪AI训练芯片-DPU/NPUIP全志.AI语音处理器-周易AIPU(CPU+GPU+AIPU)嘉楠科技.KPU-神经元网络处理器平头哥.人工智能推理芯片晶晨半导体.音频、视频CPU+GPU芯旺微电子.车载MCU芯微科技.RISC-V(MCU)偏通讯众星微.高速数据交换芯片长沙海格.北斗卫星定位芯跳科技.MCU/电源、通讯芯华章.硬件仿真系统、FPGA原型验证系统、智能验证、形式验证以及逻辑仿真赛思电子.时钟芯片紫光同创.FPGA/CPLD国电科技.音频解码同芯微电子.安全芯片启英泰伦.高度自定义语音AI芯片
http://www.hsxp-hk.com/航顺芯片.ARM-M0/M3单片机,蓝牙。高校技能比赛新唐.晶圆代工参考深度解析:CPU与GPU有什么区别?xPU又是什么鬼?.通俗易懂告诉你CPU/GPU/TPU/NPU…XPU都是些什么鬼.