开拓者和系统设计职员在为其嵌入式设计增加某种形式的神经网络或深度学习功能时,有多个选择。以前,乃至是现在,设计职员成功地利用GPU和FGPA来知足了深度学习的内存密集型需求。现在,即便是传统的x86 CPU也已经进入了AI运用。
许多开拓者创造现有的这些技能并不总是最得当的。因此,在过去几年中,许多初创公司(以及成熟的芯片开拓商)开始专注于为AI运用设计和开拓芯片。这些芯片是从头开始构建的,可以知足AI算法和运行运用的算力需求。
要知道,对SoC来说,IP模块是供应神经网络功能的另一种选择,但这是另一个话题了。在IP模块方面,紧张供应商包括Cadence、Ceva、NXP、Synopsys和VeriSilicon等。
但与所有技能一样,每种办理方案都有其优缺陷。总而言之,设计职员须要根据自己特定的运用来选择最佳的技能。AI芯片常日分为三个关键运用领域:云端演习、云端推理和边缘推理。
演习方面的大拿是Nvidia的GPU,它已经成为演习机器学习算法的热门选择。演习过程要剖析数万亿个数据样本,GPU的并行打算架构在这方面是一大上风。
云端推理可以构建许多AI运用的机器学习模型,这些任务须要密集的打算而无法支配在边缘设备上。FPGA类的处理用具有低延迟特点,并可实行打算密集型任务,在这些运用方面具有上风。但并非所有AI打算任务都可以在云端完成,无论成熟公司还是初创公司,很多芯片开拓商都在开拓自己的AI芯片,并为其处理器添加AI功能。
图1:不同芯片架构的上风与不敷
那么设计师在将脚踏入AI深水之前首先须要回答哪些问题?我与硅谷创业家兼技能专家Chris Rowen进行了交谈。做为BabbleLabs公司和Cognite Ventures的首席实行官,他列出了以下问题。
问题一:理解你的终极运用需求
对付任何设计,第一个问题该当都是:你的运用需求是什么?接下来是“我有一个须要完成的详细任务吗?”,有时这很清楚。Rowen表示, “如果我是一名系统设计师,要开拓一个安全摄像头,我会非常关心芯片对视频流交叉部分的处理,包括工具检测、工具识别、工具跟踪等,清楚知道少数几个与终极运用特殊干系的任务。”
下一个问题是,运用是在云端还是在边缘设备中运行。这将决定工程师须要考虑设计的方向和选择什么样的芯片。
“终极运用显然很主要,” Rowen说道。“如果在云端运行,问题将是,‘它是用于演习神经网络,还是在一个已经演习过的网络上仅用于推理?’。如果它在边缘运行,那么想要运行的特定运用集是什么?”
Rowen表示,大多数新的芯片都是为边缘视觉运用而设计的,这些芯片紧张针对推理运用,以各种不同的形式进行成像或视频剖析。音频,尤其是语音处理是越来越主要且快速增长的一个子种别。
以是,首先要确定是在云端还是边缘。若在云端,是演习还是推理?若在边缘,它是通用的(运用不愿定)还是视觉处理,或其他专门的运用(比如语音处理)?
问题二:软件支持
软件工具也有助于区分不同的芯片。“如果它是一个演习芯片,它是否支持各种演习环境,包括TensorFlow、PyTorch和其它框架,由于运用和软件开拓团队会利用许多主要的演习环境,”Rowen说道。他认为Nvidia是当今演习芯片的黄金标准和主导供应商。
“在推理方面,你怎么才能更好地将预先演习好的模型与芯片自身的特性逐一对应。如果有像神经网络交流格式(NNEF)这样的标准,这个问题就很随意马虎回答了。“NNEF是Khronos Group推广的一个标准,可以更随意马虎地标准化映射工具。
“常日情形下,相对付将运用映射到其他新的处理引擎所涉及到的软件,这些神经网络的繁芜性并不算高,”Rowen阐明道。 “纵然这些工具并不完美,人们常日也可以找到一种方法,利用不太繁芜的工具将现有神经网络映射到视觉芯片、音频芯片,或者其它边缘处理芯片。”
无论软件是不是最关键的,设计职员都该当考虑硬件的价格、性能和功耗,这就带来了下一个问题。
问题三:内存哀求
任何芯片选择都有一个长期存在的问题,那便是本钱和性能。对付神经网络,这个问题便是芯片采取什么片上存储器,以及可以供应多大的存储器带宽?
“有些神经网络非常耗费内存,”Rowen说。 “当然,常日在云端进行的演习过程是内存密集型的,须要大量的片上内存和非常高的内存带宽。”
他补充说,视目标运用不同,推理过程常日占用的内存较少,可能也不须要太高的片外带宽。
这就带来了一个问题。区分一个芯片是通用,还是针对特定运用的一个指标,便是芯片设计职员是否集成了大量片上存储资源和片外存储器带宽。但是,如果设计职员不知道他们的目标运用是什么,可能就会在内存带宽方面过度配置,这就会大幅增加芯片本钱。
“过度配置将增加本钱,因此通用芯片险些总是比专用芯片更昂贵,由于他们必须确保可以知足各种需求,”Rowen说。利弊权衡包括本钱、功耗和物理尺寸等。
Rowen认为,如果设计职员可以轻微缩小需求范围,以便降落一些本钱和功耗,系统级的性能可能会有大幅提升。“通用和专用[芯片]之间的差异可能高达一个数量级。”
问题四:性能------延迟与吞吐量
性能的终极定义是芯片可以多快地运行神经网络运用,这里的两个干系指标是吞吐量和延迟,要明确系统优化是针对增加吞吐量,还是针对减少延迟。
Rowen表示,在云端,重点常日是吞吐量,而延迟每每在实时边缘系统中非常主要。例如,如果你在为自动驾驶运用开拓一款芯片,延迟更为主要,而且是一个关键的安全问题,他补充道。
“幸运的是,对付很多神经网络运用来说,所能达到的性能与芯片的乘积运算速率之间存在很强的干系性,”Rowen阐明道。 “打算资源的利用率有一些变革,但在最大略的水平上,只要问‘在给定精度下每秒乘积-累加多少次’或‘每瓦多少次乘积-累加’,就可以大致知道该芯片的性能。”
一样平常来说,现在GPU是云端神经网络演习的主导力量,而普通x86处理器是云端推理的最常见平台,由于它在单个芯片上可以灵巧地运行包括深度学习和传统软件在内的完全运用,Rowen表示。
在大多数情形下,边缘没有太多的演习事情要做。它紧张针对视频或音频等特定用例进行推理。
Rowen为我们供应了一个粗略的评估,按照运用来划分芯片(来自初创公司和成熟企业)。 “有一种趋势是,针对云真个芯片更具通用性,而针对边缘的芯片更为专用。”
图2:在x轴上:0表示最适宜边缘设备(汽车、电话和物联网等); 5表示最适宜云端。 在y轴上:0意味
以下是一些AI增强型芯片和平台的简要先容,展示了目前市场上从移动端到企业级运用的各种神经网络办理方案:
Gyrfalcon Lightspeeur AI芯片:这是初创企业Gyrfalcon技能公司推出的超低功耗和高性能AI芯片。Lightspeeur 2801S智能矩阵处理器基于APiM架构,利用内存作为其AI处理单元。该公司流传宣传,“这个基于APiM架构的方案,有28000个并行神经打算核,真正支持片上并行与原位打算,不须要利用外部存储单元,成功战胜了由存储器带宽而导致的性能瓶颈,在效率能耗比方面表现卓越,达到 9.3Tops/Watt,无论在演习模式还是推理模式下均可供应高密度打算性能。”
该公司声称其算术逻辑单元(ALU)的利用效率为77%,运行卷积神经网络(CNN)效率会更高。
Gyrfalcon供应交钥匙(Turnkey)参考设计,包括USB加密狗、多芯片线路板和系统开拓套件。其目标运用包括移动边缘打算、基于AI的IoT,消费类便携设备、智能监控视频、AR/VR产品、人脸检测/识别、自然措辞处理、支持深度学习的设备、AI数据中央做事器,以及自动驾驶等。
华为麒麟970:这是华为消费业务奇迹部的首个移动AI打算平台,采取专用神经处理单元(NPU),可将云端AI与本机AI处理有机结合。麒麟970包括一个八核CPU和新一代12核GPU。
“与四核Cortex-A73 CPU集群比较,麒麟970新的异构打算架构可实现高达25倍的性能提升,以及50倍的效率提高,”华为表示。这意味着该芯片组以更低的功耗,更快地供应相同的AI打算任务。基准图像识别测试表明,麒麟970每分钟可处理2,000张图像。
除了在自己的手机中利用新的AI芯片组外,华为还将移动AI定位为开放平台,为开拓职员和互助伙伴供应技能。
英特尔Nervana神经网络处理器(NPP):英特尔Nervana NNP专为深度学习而设计,没有标准的缓存层次构造,其片上存储器由软件管理。 “更好的内存管理使该芯片能够实现海量打算的高利用率,”英特尔流传宣传。 “这可以为深度学习模型供应更快的演习韶光。”
除了新的存储器架构外,英特尔还开拓了一种新的数字格式Flexpoint,它可以显著提高芯片的并行度,同时降落每次打算的功耗。英特尔表示,由于单个芯片的神经网络打算紧张受功耗和内存带宽的限定,因此Flexpoint可为神经网络任务供应更高的吞吐量。英特尔这一新设计的目标是“得到高打算利用率并支持多芯片互连的真实模型并行性”。
英特尔Movidius VPU:英特尔正在与微软互助,将微软Windows ML与英特尔的Movidius视觉处理单元(VPU)相结合来推动边缘AI推理。英特尔Movidius Myriad X VPU是一款专门用于加速边缘AI运用的芯片,它声称是业界首款具有专用神经打算引擎的系统级芯片办理方案,可用于边缘深度学习推理的硬件加速。 “这款第三代VPU可以高速和低功耗运行深度神经网络,以减轻其它硬件的特定AI处理包袱,”英特尔表示。
英特尔还会针对通用机器学习和推理连续优化其Xeon可扩展处理器和数据中央加速器。
联发科技NeuroPilot AI平台:NeuroPilot平台专为AI边缘打算而设计,可供应一系列的硬件和软件、AI处理单元和NeuroPilot软件开拓套件(SDK)。它所支持的主流AI框架包括Google TensorFlow、Caffe、Amazon MXNet和Sony NNabla,并且在操作系统方面支持Android和Linux。
联发科技表示,该平台“使AI更靠近芯片组级别,适用于边缘打算设备,即深度学习和智能决策须要更快完成的场景”,首创了一个从边缘到云真个AI打算方案稠浊体。
Nvidia Tesla V100 GPU:与上一代产品比较,Nvidia的深度学习打算平台性能提升了10倍。全新的NVIDIA Tesla V100还将内存提升了一倍(到32 GB内存),以处理内存密集型的深度学习和高性能打算任务,此外还添加了一个名为NVIDIA NVSwitch的全新GPU互贯串衔接构。该公司表示,这可以使多达16个Tesla V100 GPU同时以每秒2.4太字节(TB)的速率进行通信,Nvidia还更新了软件堆栈。 Tesla V100 32GB GPU适用于全体NVIDIA DGX系统产品家族。
NPX面向边缘处理的机器学习(ML)环境:
为证明利用现有的CPU可以在边缘运行机器学习模型,NXP半导体公司推出了嵌入式AI环境,可让设计职员基于NXP的产品系列支配机器学习,从低本钱微掌握器到i.MX RT处理器,直到高性能运用场置器。NXP表示,ML环境供应了简便的交钥匙方案,可让设计职员选择精确的实行引擎(Arm Cortex内核或高性能GPU/DSP)和工具,以便在其上支配机器学习模型(包括神经网络)。
此外,NXP还表示,该环境包括一些免费软件,许可用户导入他们自己演习过的TensorFlow或Caffe模型,将它们转换为优化的推理引擎,并将它们支配在NXP从低本钱的MCU到i.MX,以及Layerscape处理器办理方案上。
“在嵌入式运用中履行机器学习,统统都要平衡本钱和终极用户体验,”恩智浦AI技能卖力人Markus Levy在一份声明中表示。 “例如,许多人仍旧感到惊异,纵然在低本钱MCU上,他们也可以支配具有足够性能的推理引擎。另一方面,我们的高性能稠浊交叉和运用场置用具有足够的处理资源,可在许多客户运用中运行快速推理和演习。随着AI运用的扩大,我们将连续通过下一代专用机器学习加速器来推动这一领域的增长。”
NXP的EdgeScale套件供应了一套基于云的工具和做事,用于物联网和边缘打算设备的安全制造与注册。该办理方案为开拓职员供应了一套安全机制,供他们在运用中利用主流的云打算框架,远程支配和管理无限数量的边缘设备。NXP的互助伙伴生态系统还包括ML工具、推理引擎,办理方案和设计做事等。
Qualcomm骁龙845:高通的第三代AI移动平台据称在AI性能上比上一代SoC提升了3倍。
除了支持Google TensorFlow和Facebook Caffe / Caffe2框架外,骁龙神经处理引擎(NPE)SDK现在还可以支持Tensorflow Lite和新的开放式神经网络交流(ONNX)标准,可让开发职员轻松选择自己喜好的AI框架,包括Caffe2、CNTK和MxNet等。此外,它还支持谷歌的Android NN API。骁龙845目标运用包括智好手机、XR耳机和始终联网的PC等。
为了安全起见,骁龙845现在还供应了一个硬件隔离子系统,即安全处理单元(SPU),它为高通的移动安全方案增加了“在现有层上的安全阀门特性”。
高通的AI Engine包括几个硬件和软件组件,其设备端AI处理性能已经在骁龙845上表示出来,将支持包括845、835、820和660在内的移动平台。 AI Engine支持Snapdragon系列核心硬件架构,即Hexagon矢量处理器、Adreno GPU和Kryo CPU。其软件组件包括Snapdragon神经网络处理引擎、Android神经网络API和Haxagon神经网络。
由于采取了异构打算,骁龙845的新架构带来了显著的性能改进。例如,高通声称新的相机和视觉处理架构在视频捕捉、游戏和XR运用方面,功耗比上一代降落了30%,新的Adreno 630也让图形处理性能和功效提升高达30%。
三星Exynos 9系列:2018年初,三星电子发布了最新的高端运用场置器(AP)Exynos 9系列,紧张面向AI运用和富媒体内容。这款移动处理器是三星的第三代定制CPU(2.9 GHz),内置超高速千兆LTE调制解调器和深度学习增强的图像处理功能模块。
该处理器采取新的八核CPU,个中四个是第三代定制内核,频率可以达到2.9 GHz,其余四个针对效能进行了优化。“通过扩展流水线并改进高速缓存的架构,单核性能提升了两倍,多核性能也比其前代产品提高了约40%,”三星表示。
该芯片还增加了一些新功能,包括通过神经网络深度学习来增强用户体验,并通过单独的安全处理单元来提高安全性,以保护个人数据安全,比如面部、虹膜和指纹信息。Exynos 9系列的9810目前已经量产。
这些只是目前已经上市的一些AI处理器。然而,通过Rowen提出的这四个问题,希望开拓职员可以为其特定的嵌入式AI项目找到最得当的AI芯片。