作者:贸泽电子 Mark Patrick
我们之前讨论过,训练过程是机器学习的第一阶段,而推理则紧随其后,为机器学习的第二阶段。在训练阶段,算法会生成新模型或把预训练模型重新调整用于特定应用,并帮助模型学习其参数。在推理阶段,会根据学习得到的参数对新数据进行预估和决策。
学习需要大量的时间、计算能力和电力,相反,推理阶段需要较少的处理能力,并且也消耗较少的功率。但是,正如之前部分“解析人工智能:训练”所述,对于物联网设备,中央云中的传统计算方式可能会占用大量资源。处在网络边缘的每个物联网节点都收集大量数据,从而使边缘到云端(以及相反从云端到边缘)的数据传输既昂贵又缓慢。“边缘计算”可以直接执行大多数计算,并且仅在完全必要时才将相关信息传输回云端(反之亦然),从而无需依靠基于云的服务器来进行所有处理。虽然在网络边缘进行计算可以减少数据传输成本和时间,但该模型也具有某些缺点。例如,网络边缘的物联网设备需要大量的处理能力来满足学习和推理需求,这与物联网设备要求的高能效原则背道而驰。这正是AI边缘计算加速器能够解决的问题。
AI加速器
基于软件和硬件的AI加速器都可加快机器学习。硬件加速可以针对训练、推理或两者兼有。在某些情况下,硬件加速器可以降低功耗。而在其他情况下,硬件加速器可以提高处理能力。目前有几种主要类型的芯片或处理器可用于硬件加速,这些包括中央处理器(CPU)、图形处理器(GPU)、现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)、视觉处理器(VPC)和神经形态(neuromorphic)集成电路。除了硬件加速器之外,市场上的解决方案还包括基于软件的方式,例如机器学习框架可用于改善AI软件开发和优化系统性能。
CPU和GPU
CPU是AI传统上使用的硬件加速器。尽管CPU一般被设计为通用型器件,但它们通常不足以支持模型生成和推理所需的大量计算。因此,包括ARM(通过DynamIQ产品)和三星(通过Exynos 9系列)等公司已经开始创建AI专用芯片。在ARM和三星等公司选择继续使用AI专用CPU的同时,其他公司则正在转向GPU。
GPU起源于视频游戏行业,专为处理海量数据集而构建,非常适合用于机器学习。由于GPU具有比CPU更多的单片处理单元和更高的吞吐量,以及更高的并行处理能力,因此能够显著减少计算时间。此外,GPU的单个处理单元比CPU所使用的多个单元更加小巧,从而使GPU更适合于需要小巧和灵活解决方案的空间受限物联网设备。可提供AI专用GPU的公司包括AMD(Radeon Instinct)、NEC(SX-Aurora)、NVIDIA(DGX)和高通(Adreno)等。
FPGA
尽管CPU和GPU拥有相当大的处理能力,并且对于加速学习和推理非常有效,但它们却需要花费大量时间和能量在内存和处理之间传输数据。由于CPU和GPU的电路密度相当高,因此经常会由于过热而导致系统故障。对于位于远端的物联网设备,高能耗和潜在系统故障是难以接受的缺点,需要找到一种方法可以将某些任务转移到更节能的硬件上,这一点非常必要。
基于可编程逻辑的FPGA 是一种能够在生产后由客户或设计人员现场重新配置的一种器件。虽然 FPGA 通常不如 CPU 或 GPU 强大,但通过芯片自身内部计算而不是数据传输,能够为某些计算(如乘法、加法、集分、微分和指数等)提供快速处理。尽管FPGA提供了更大的灵活性,但它往往相当笨重,因此要实现物联网设备的小型化是此类芯片的一大挑战。能够提供面向AI应用芯片的主要公司包括NVIDIA(TensorRT)和Xilinx。此外,微软也正在使用FPGA芯片来加速推理,英特尔目前正在扩展其FPGA产品组合。
SoC
SoC包含有多个电子器件的组合(微处理器、微控制器、数字信号处理器、片上存储器、硬件加速器等)。由于多个组件集成到单一半导体基底,SoC比微控制器芯片功能更加强大。在智能手机中,SoC可以集成视频、音频和图像处理功能。ARM已经开发了机器学习处理器和对象检测处理器,这些处理器能够在未来集成到SoC中。隶属华为集团的海思(HiSilicon)半导体部已经得到ARM的IP授权,以创建最初用于手机和平板电脑的SoC。此外,HiSilicon正在为华为制造昇腾芯片(Ascend)。SoC领域的另一大厂商是Arteris,该公司正在开发一种片上网络互连交换矩阵技术(FlexNoC),许多移动和无线公司都在使用该技术。由于Arteris在知识产权方面占据主导地位,因此对该市场有更宏观的掌握。可能很快会有其他公司在AI SoC市场发挥重要作用,这些包括英特尔(通过其Movidius子公司)、恩智浦、瑞萨、东芝、德州仪器和意法半导体等。
ASIC、VPU和神经形态芯片
ASIC 专为加速深度学习算法中的训练而构建,包括 Google 的Edge TPU和英特尔的 Nervana都是此类ASIC芯片。视觉处理单元(VPU)旨在加速机器视觉任务,并运行卷积神经网络(CNN)等机器视觉算法,因此 VPU 视频处理功能不同于 GPU,GPU不提供相同类型的专用任务处理。英特尔的Movidius Myriad芯片、Google的Pixel视觉内核、微软的HoloLens、Inuitive的NU系列和Mobileye的EyeQ等都是一些视觉处理单元例证。
无论是数字芯片还是模拟芯片都各有不足:数字电路精准,但耗能巨大,而模拟电路则具有低延迟和低能耗,但精度不够。因此,研究人员正在寻找一些新方法,结合数字和模拟芯片的技术优势,同时回避两者的弱点。受人脑的启发,神经形态芯片的设计在本质上采用数字架构,但采用模拟电路进行混合信号处理。IBM 的 TrueNorth 是一个神经形态处理器,面向传感器数据模式识别和智能等应用。此外,哥伦比亚大学、斯坦福大学的"硅片中的大脑(Brains in Silicon)"项目以及DARPA支持的密歇根大学IC实验室都在从各个方面研究神经形态系统的实现。
机器学习框架
AI 加速器还包括软件。例如,机器学习框架可以是接口、程序库或工具,有助于降低与机器学习相关的复杂性,以便开发人员能够更快、更轻松地构建模型并优化性能。此类框架采用如Python 或 Java等特定语言构建,一些深受市场欢迎的开源机器学习框架来自亚马逊(AWS)、Apache、Caffe2、Keras、Theano、微软(Azure)和Google(TensorFlow)等厂商。此外,一些公司还提供内部平台。例如,英特尔的 OpenVINO 工具包是一个软件和硬件加速器,可优化CNN模型的推理。另外,高通的Snapdragon是一个移动平台和软件加速器,IBM则有Watson机器学习加速器平台,而华为最近推出了MindSpore AI框架。
AI 起步
贸泽电子(Mouser)现在可提供各种硬件,能够帮助客户构建实现AI的初始模块。英特尔的即插即用Neural Compute Stick 2 可以帮助工程师尽早实现对深度神经网络进行原型设计,它采用公司自身的 Movidius X VPU 提供极具吸引力的能效和性能组合,能够达到4TOPS。高度紧凑的AAEON UP AI 核心处理模块基于小型 PCI Express格式,主要面向工业计算。它还配备了英特尔Movidius VPU,其中采用 Myriad 2 2450,具有 512Mb DDR 内存,以及 12 个VUW 可编程SHAVE内核和专用视觉加速器。Gumstix的 Aerocore 2 板 采用阵列式NVIDIA Jetson TX1和TX2 CUDA内核,使其具有强大的并行处理能力,还包括ARM Cortex-M4微控制器和众多外设,特别适用于物体识别、生产线检测等多种机器视觉应用。
展望未来
目前NVIDIA在工业AI应用中仍然占据主导地位,大多数新加入厂商都专注于IoT AI领域。GreenWave 和Reduced Energy Microsystems处于低功耗芯片领域,而 Mythic 和Syntiant正在开发基于电池供电的处理器。与上述情况类似,Wiliot正在制造一种蓝牙芯片,可由周围环境中的无线电辐射供电。在巨大的并行数据处理市场,有Vathys、Graphcore、Cerebras和Wave Computing等厂商。与此同时,Hailo Technologies 和Horizon Robotics等公司正在开发用于自动驾驶汽车的专用芯片。在深度学习领域,BrainChip已经成功开发出第一个尖峰式(spiking)神经处理器,Thinci推出了流式图形处理器,Gyrfalcon 正在开发一种具备专有AI处理内存(APiM)技术的深度学习处理器。最后,在Groq,曾经设计Google TPU的前Google公司设计师正在开发一种超低延迟芯片。随着在机器学习领域取得惊人的进展,物联网边缘计算仍存在许多技术挑战,软件和硬件开发人员都在不断努力,以便在卓越的处理性能和更高的能效等方面实现最佳的平衡。