机器学习是通过使用算法和统计模型从数据模式中分析和得出推论,使计算机系统在没有显式指令的情况下进行学习的过程。AI和机器学习的主要限制之一一直是计算能力,这一直是研究人员关注的原因。几十年前,在为机器学习运行大型计算时,CPU还没有这么强大和高效。硬件制造商努力创造一个能够执行任何AI操作的处理单元。 虽然CPU不再是计算能力的可行来源,但它们是先驱。如今,这些CPU理所当然地被专门为大型计算设计的GPU和AI加速器所取代。购买AI加速器时考虑的主要特征是成本、能耗和处理速度。 AI加速器作为一种强大的机器学习硬件芯片,专门设计用于平稳快速地运行AI和机器学习应用程序。AI加速器的例子包括图形处理单元(GPU)、视觉处理单元(VPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和张量处理单元(TPU)。 1. 用于机器学习的视觉处理单元(VPU) 除了显卡,英伟达和AMD还生产独立的微处理器,专门用于机器学习。这些专门的处理器或视觉处理单元(VPU)是专门为深度神经网络设计的,如CNN和RNN的;与执行各种其他计算操作的GPU相比,它们可以相对轻松地处理图像识别和分类任务所需的视觉处理计算。这就是为什么它们通常比传统GPU拥有更多的内核和更高的时钟速度。 视觉处理单元适用于卷积神经网络(CNN),如图像识别、对象检测和分类。第一台VPU是Nvidia在2004年推出的Cuda-2000。最近,AMD发布了Baffin,可用于大多数DL任务(TensorFlow、PyTorch、Caffe2)以及计算机视觉算法,如视觉显著性检测、图像分割和识别等。 英特尔CPU上的深度学习推理速度大约比同等功率的帕斯卡GPU/VPU慢20倍。例如,如果您要在几乎相同的基准和数据集上比较两个CPU,差异将是显著的。推理时间与VPU内核的数量成线性比例关系,而与CPU内核的数量成平方比例关系。在一定数量的VPU内核上,花同样的钱买更高端的CPU会更好。 视觉处理单元被许多需要大量图像处理的公司使用,如脸书& Pinterest用于对象识别,谷歌使用张量处理单元(TPU)用于各种服务,包括搜索相关功能。据英伟达首席执行官黄仁勋称,vpu在执行视频分析、计算机视觉或机器学习算法等需要“成千上万”内核来训练模型的任务方面非常有效。 VPU的一个例子是英特尔的Movidius Myriad X,该公司使用它来驱动各种产品,如他们的RealSense计算机视觉开发套件、云平台(亚马逊AWS和微软Azure)、智能手机(Galaxy S8、iPhone XS Max)和平板电脑。VPU还被用于机器人导航和自动驾驶系统。此外,在Hololens & Magic Leap中,还为增强现实部署了图像识别、分类和对象检测。英特尔表示,他们的VPU能够在2304 x 1152分辨率下实现60 FPS,准确率为93%。 视觉处理单元最适合用于图像识别和对象检测任务。CNN由几个相连的层组成,当输入模式通过时,这些层逐渐增加输入模式的复杂性或维度。第一层检测边缘,随后是检测特征的卷积,等等,直到实现端到端分类。 因为CNN执行像最大池、子采样等操作。它们需要密集的数字处理能力,因此非常适合拥有更多内核/更高时钟速度的VPU。 视觉处理单元(vpu)的其他使用案例包括: 自动驾驶- VPUs可用于在自动驾驶汽车中运行高分辨率的深度学习模型进行图像处理。例如,英伟达使用其带有板载VPU的Drive PX平台为其自动驾驶汽车系统提供动力。 视觉显著性检测-检测场景中最显著的物体,并引起对这些物体的注意。 图像分割和识别-可用于基于像素的图像标记,并根据对象类型以及准确的分类结果进行分类。例子包括百度的深度图像,它是使用谷歌的TensorFlow框架开发的,或者脸书的Canvas图像识别系统,它执行诸如语义分割、创建细粒度图像识别模型等任务。 虚拟现实和增强现实-虚拟现实被认为是一种可视化技术,可以通过使用VPU进行对象检测和场景分析来提供实时3d模拟。增强现实也是如此,它们可以用来在用户的物理世界中构建数字对象。 安全-由于深度学习算法通常使用标记数据进行训练,因此人脸识别和面部行为分析等安全平台使用这些类型的处理器。 视觉处理单元主要由Nvidia (Tensor)生产,该产品基于其当前的Volta架构。AMD最近还宣布,将于2019年开始出货其名为Navi的第三代图形处理单元;这款芯片预计将提供高达512 GB/秒的内存带宽,同时与英伟达的Volta架构竞争。这种GPU芯片的优势是它将与GPGPU算法兼容,不像英伟达的V100。 2. 现场可编程门阵列(FPGA) 现场可编程门阵列是可编程集成电路,可由客户在制造后针对特定任务进行配置。FPGAs因其在硬件加速和并行计算方面的多功能性而广受欢迎。它们可以用于几乎所有传统上使用数字处理器的任务,包括图像/视频处理、信号处理、数据加密/解密以及许多其他与计算相关的任务。 用FPGA配置不同计算单元的灵活性使得构建从传统GPU到具有大量vpu的系统的任何类型的系统成为可能,而不会导致任何存储器瓶颈,因为PCIe总线比PCI总线具有更大的带宽。这些限制已经在Nvidia最新版本的Tesla V100中得到解决,该版本拥有2304位内存总线,但仍不足以跟上FPGAs。 FPGAs主要用于3d图形处理、并行计算和图像识别/重建算法,如使用来自安装在车辆或机器人上的摄像头的图像数据的自动驾驶应用等领域中的深度学习网络。 FPGA的三个基本元素是什么? 三个组件可在FPGA上编程,即静态RAM、反熔丝和闪存可擦除可编程只读存储器(EPROM)。这些元素被链接在一起,形成一个庞大的逻辑块排列。这些模块通过可编程突触(互连)进一步连接。由于配置程序(编程)是由硬件工程师执行的,而不是像ASIC和GPU那样由软件开发人员执行,因此与定制ASIC芯片相比,FPGAs大大降低了制造成本。 FPGA芯片的应用 2016年,汽车行业是FPGA硬件和软件的消费大户。市场研究公司VDC预测,从2016年到2021年,全球收入将增长8%以上,到2021年达到40亿美元。下面是一些如何使用它们的例子: 包括用于避免碰撞或自动制动的传感器的驾驶员辅助系统可以使用FPG编码算法来部署,用于实时分析由工业过程中的移动车辆或机器人上的摄像机捕获的数据,例如焊接应用,其中物体可能以高速彼此接触,从而导致对人类工人的损害/伤害以及设备故障。 通用计算语言可以部署在FPGA硬件上,使用主机和操作系统(如Linux)来构建汽车或机器人的图像识别模型,以及可以在3D图形、并行计算等中使用的软件算法。 网络安全、数据包加密/解密和在线游戏平台等网络应用最适合FPGA实施,因为网络流量利用其灵活的并行计算能力会产生较小的延迟问题。一个主要的例子包括Atlas平台,该平台由脸书工程师开发,使用FPGA架构来改进他们的深度学习(ML)系统,同时让GPU驱动的机器执行其他任务,而不仅仅是训练模型和服务最终用户。 FPGAs的使用允许谷歌或脸书等基于云的机器学习提供商使用它们来实施其数据中心基础设施,并以更快的速度训练模型,同时为最终用户保持相同的延迟水平。 图像处理软件可以移植到FPGAss上运行,FPGA用于PIxel和Arrow等相机公司使用的工业相机。他们声称,与使用GPU硬件的竞争对手相比,使用FPGA架构可以让他们创造更高的性价比。 FPGA与GPU 灵活性 FPGAs在开发过程中提供了配置硬件模块的高度灵活性。此外,与为算术逻辑单元(ALU)预先确定内核的GPU不同,FPGA的ALU可以配置为处理一系列并行任务,从而可以构建具有多个vpu或两种功能任意组合的系统。 硬件加速/并行计算:FPGAs建立在现场可编程门阵列上,因此与GPU和CPU相比,它们提供了更大的灵活性,可以在需要时轻松添加额外的处理单元,而不必担心内存总线不平衡。因此,这使它们成为需要密集数字处理的深度学习网络的理想选择,因为它们可以轻松添加额外的alu,而不必对现有的alu重新编程。 时钟速度:与GPU相比,FPGAs的时钟速度更快,从而提高了性能。对于数量相当的内核,对于I/O密集型应用,如使用深度学习算法进行模式识别的通信网络,FPGAs的性能明显优于GPU。 云计算:FPGAs使得构建定制的硬件变得更加容易,这些硬件可以根据客户端和用户的要求轻松配置。这使得它们适用于云计算平台,在这种平台上,拓扑可以在任何给定的时间根据需求进行更改,而不会产生额外的成本或繁琐的开发时间表。 像任何其他技术转变一样,总会有一些缺点:成本与灵活性。由于FPGA是可编程的,它们需要更通用的开发环境,因此通常比GPU更昂贵。此外,FPGAs不允许在生产中进行重新配置,而这可以通过GPU轻松完成。 FPGAs受到其计算能力和存储器带宽的限制,因此由于需要使用大量权重的深度学习网络所需的大容量SRAMs(静态随机存取存储器),因此具有较慢的时钟速度。这意味着FPGA通常用于较小的集群,有限的用于高端应用,如自动驾驶汽车和无人机等。然而,这种限制也有一个优点,因为当不使用FPGAs进行DNN计算时,它比GPU/CPU更便宜。 速度不够——由于它们依赖外部存储器,因此在每个时钟周期进行比较时,它们比传统的微处理器或GPU慢,因此不适合需要实时结果的计算密集型模拟,例如汽车应用中使用的高分辨率相机处理算法。 上述例子让我们深入了解了这些新架构的敏捷性,这些新架构旨在满足自动驾驶汽车、无人机和机器人对深度学习网络不断增长的需求——它们还突出了GPGPUs在加速网络计算方面的使用。GPU比CPU具有巨大的优势,特别是在执行并行计算任务时,而FPGAs与GPU相比具有许多优势,主要是因为它们可以在制造后重新配置,因此在设计任何类型的系统时都具有很大的灵活性。 然而,就像任何其他技术进步一样;随着每个架构中内置更多功能,未来几代产品将会有更大的进步,实现更快的时钟速度和更大的存储器总线,从而使其竞争对手难以赶上 有哪些公司在提供FPGAs? 市场领导者包括Xilinx和Altera,它们都是FPGA编程工具的主要供应商,工程师使用这些工具根据自己的要求配置器件。 Xilinx和Altera是两家最大的FPGA供应商,IBM声称他们将使用他们的SoftLayer云来提供GPU和FPGA。微软Azure和亚马逊网络服务也允许他们的用户在其云计算平台中选择GPU和FPGAs。 汽车车道偏离警告系统的主要供应商Mobileye正在使用英特尔的至强处理器和Altera现场可编程门阵列(FPGA)协处理器为其摄像头供电。英特尔在2017年以153亿美元收购了Mobileye目前尚不清楚这些加速器在自动驾驶项目中发挥的作用有多大,但它暗示了自动化在发达和新兴汽车市场都将发挥重要作用的未来。 Mobileye的协处理器被编程为处理高级驾驶辅助系统(ADAS)所需的数据处理——它可以处理来自Mobileye的EyeQ3传感器的高维输入信息,同时还可以降低处理器负载,从而直接降低功耗。这种组合解决方案将延迟降低到240毫秒左右,这被认为是一项重大改进,因为大多数摄像机的平均延迟为1秒。 3. 专用集成电路 ASICs通常是为单一应用或目的而设计的,不能像FPGA或GPU那样重新编程。与FPGAs和GPU相比,这使它们成为一个更高效的平台,因为它们可以轻松地针对特定任务进行构建——这些平台是交易、游戏甚至加密货币挖掘等用例的理想选择。 近年来,随着英特尔和IBM等主要技术公司使用基于ASIC的系统来驱动他们的云计算平台,ASIC越来越受欢迎。 与设计用于处理计算和图形计算的FPGAs和GPU不同,ASICs专门用于要求高性能的计算,如加密货币矿工所要求的计算。ASICs比FPGAs具有更好的电气特性,因此可以提供更高的计算速度,同时生产成本也更低,这使它们成为资金不是问题的情况下的首选——它们通常需要很少的外部存储器,因此它们依赖于在小封装中存储大量数据的区块链。 Nervana是由英特尔构建的ASIC,它基于一种称为深度学习三重内容可寻址存储器(TCAM)的新型架构,通过其每时钟三次的提升为神经网络层提供了非常高的吞吐量。这使得Nervana能够以低得多的价格提供比GPU更高的性能,这可能使日常消费者以可承受的成本获得人工智能加速器。 英特尔于2016年8月收购了Nervana Systems,为该公司提供了大量培训和推理算法方面的专业知识,这些技术现在正被用于其行业领先的Movidius视觉处理单元(vpu)中。此后,他们发布了面向工业和消费者用例的VPU产品——这使得Nervana的技术被集成到英特尔的RealSense深度摄像头、至强和酷睿处理器以及他们新发布的Movidius神经计算棒中。 ASICs的优势 ASIC在性能方面可能优于FPGAs,因为它们具有更低的延迟和更好的电气特性,这就是比特币ASIC如此强大的原因。与GPU和FPGAs相比,它们还提供了最高级别的安全性、能效和灵活性,因为它们可以执行符合其设计规格的任何任务。 ASICs的缺点 ASICs的主要缺点是,它们的制造需要巨额资本投资——这导致许多公司依赖GPU或FPGAs,它们需要较少的初始资金,只要在开发更有效的数字货币方面没有重大进展,仍然可以提供足够的区块链采矿率,因此它依赖比特币等加密货币来实现财务收益。 然而,目前还不清楚ASICs的使用是否仅用于采矿,或者是否用于其他应用,例如提供相对于GPU和FPGAs的竞争优势。虽然云计算提供商可以向那些根据执行区块链采矿的投资回报预期选择平台的用户提供激励,但如果没有需要这种专用硬件来实现最大效率的加密货币,投资开发专用集成电路就没有什么意义。 这使得使用GPU和FPGAs的加密货币矿商很难理解哪些因素将推动未来的盈利能力,因为大多数加密货币仍然无法预测它们对技术创新的反应速度。 4. 什么是张量处理单元(TPU)? 张量处理单元(TPU)是由谷歌制造的,用于加速机器学习应用。它被设计为在TensorFlow上运行,由称为tensors的多个处理原语构成。张量是向量和矩阵向潜在的更高维度的推广。 谷歌TPU技术的特点 谷歌声称,其第二代Maxwell架构的64位80万亿次浮点运算变体的能效比通用CPU高出9倍。该架构还包括对深度学习推理的特定支持,数据吞吐量比谷歌数据中心使用的第一代TPU高2到3倍。 每个时钟周期能够执行八次混合精度操作,每次操作以16位浮点精度执行,某些情况下以24位整数或32位浮点粒度执行。谷歌支持的这种混合精度类似于半(16位)高斯舍入,但不同于英特尔至强融核协处理器支持的全(24位)舍入到最近位模式。 TPU的计算能力来自神经网络,该网络用于提供最准确的语言和图像识别,以及实时解析结构化数据。它是为推理而设计的,这是一个涉及激活预先训练的ML模型的步骤,通常比训练计算量更大。 张量处理单元(TPU)的容量是多少? 谷歌表示,其第二代TPU每秒可以执行4500张图像的推理(对于ResNet-50),这需要16个高端英伟达K80 GPUs才能达到一台谷歌TPU的性能。谷歌进一步声称,其新TPU架构的32万亿次浮点运算变体提供了比第一代TPU高6倍的性能。 有哪些公司在使用张量处理单元? 一些公司已经在其数据中心部署了张量处理单元,包括电子商务巨头阿里巴巴以及搜索引擎巨头百度和谷歌(Alphabet)。 英特尔还宣布了其首个名为Lake Crest的TPU设计,用于为制造、医疗保健、金融和服务行业的深度学习工作负载提供动力。 现在,正如我所承诺的,我要提到一种不同的处理器,它在功能上模仿人脑。这被称为“神经形态处理器”。 可以买张量处理单元吗?不要!你不能。TPU是谷歌唯一尚未出售的资产。尽管你可以以每小时每台机器1.35美元的价格租用谷歌TPU作为谷歌云服务。 5. 神经形态处理器 什么是神经形态处理器? 神经形态处理器被设计成在结构和操作上尽可能接近人脑。这可以通过使用模拟电路来实现,模拟电路进行的计算类似于人脑中神经元进行的计算,这使它们可以用大量内存执行一组复杂的操作,尽管操作速度较低。 在过去的几年里,这些电路被设计成运行深度学习算法,这些算法最初是为ASICs和其他形式的传统处理硬件开发的。这使得神经形态处理器在运行人工智能应用程序时能够提供比其前辈更高的效率,同时还提供更低的功耗,从而使其成为比GPU和FPGAs更具成本效益的选择。 谁发明了神经形态处理器? 神经形态处理器的概念是由加州理工学院教授卡弗·米德首创的,他自1979年以来一直致力于开发模拟人脑的电路。 神经形态处理器的优缺点 神经形态处理器的主要优势是,它们能够以传统处理器所需的一小部分能源成本为人工智能应用提供高水平的性能。它们还具有高度的可扩展性,可以集成到多种计算设备中,包括移动电话和其他手持设备,以及能够以最小的努力提供高水平性能的现场计算机。 然而,在执行标准金融和数学运算时,神经形态处理器在效率和性能方面仍然不如GPU和FPGAs。此外,它们有限的可扩展性要求它们被结合到其他设备中以有效运行,这也增加了启动成本。 神经形态处理器的处理能力如何? 一个神经形态处理器比谷歌的TPU更快,每秒处理100倍的帧,而使用的能量少1万倍。两款处理器都在雅达利游戏Q*bert上进行了测试,Neuromorphic以100万比1.4万的成绩胜出。 IBM TrueNorth IBM TrueNorth目前是最强大的神经形态处理器,容量为1.02万亿次浮点运算,功耗仅为10瓦,比英特尔酷睿i7-7700K实现类似性能所需的功耗低约7200倍。 随着最新的人工智能加速器的推出,可能会降低成本,能耗和数据处理时间,对处理能力有限的担忧正在消退。与神经形态计算机一样,最高可行的计算处理模型可以从大脑功能中复制出来。为了获得最佳处理能力,智能设计的电路、高效的软件代码和更简单的算法是必不可少的。(剪报来源: http://thinkml.ai/ai-accelerators-hardware-for-artificial-intelligence-cpu/)
|