来源:ST社区
开发者和系统设计人员在为其嵌入式设计增加某种形式的神经网络或深度学习功能时,有多个选择。以前,甚至是现在,设计人员成功地使用GPU和FGPA来满足了深度学习的内存密集型需求。现在,即便是传统的x86 CPU也已经进入了AI应用。
许多开发者发现现有的这些技术并不总是最合适的。因此,在过去几年中,许多初创公司(以及成熟的芯片开发商)开始专注于为AI应用设计和开发芯片。这些芯片是从头开始构建的,可以满足AI算法和运行应用的算力需求。
要知道,对SoC来说,IP模块是提供神经网络功能的另一种选择,但这是另一个话题了。在IP模块方面,主要供应商包括Cadence、Ceva、NXP、Synopsys和VeriSilicon等。
但与所有技术一样,每种解决方案都有其优缺点。总而言之,设计人员需要根据自己特定的应用来选择最佳的技术。AI芯片通常分为三个关键应用领域:云端训练、云端推理和边缘推理。
训练方面的大拿是Nvidia的GPU,它已经成为训练机器学习算法的热门选择。训练过程要分析数万亿个数据样本,GPU的并行计算架构在这方面是一大优势。
云端推理可以构建许多AI应用的机器学习模型,这些任务需要密集的计算而无法部署在边缘设备上。FPGA类的处理器具有低延迟特点,并可执行计算密集型任务,在这些应用方面具有优势。但并非所有AI计算任务都可以在云端完成,无论成熟公司还是初创公司,很多芯片开发商都在开发自己的AI芯片,并为其处理器添加AI功能。
AI Processor Options: benefits and trade-Offs: AI处理器选择:优势和不足
CPUs: CPU
Universal availability in the cloud: 云端通用性好
Flexible across deep learning inference and all other cloud workloads: 深度学习推理与所有其他云端工作负载能连接灵活
Great software tools: 成熟的软件工具
Limitation: Not high enough performance for training: 不足:训练性能不高
GPUs: GPU
Very high performance on both deep learning inference and training: 深度学习训练和推理都表现出色
Wide availability in the cloud: 在云端适用性广
Flexible across deep learning and some other high-performance computing workloads: 深度学习与一些高性能计算负载连接灵活
Great software tools: 成熟的软件工具
Limitation: high power, high cost: 不足:功耗高,成本高
FPGAs: FPGA
High performance on deep learning inference and a few other DSP workloads: 在深度学习推理和一些DSP工作负载中性能优异
Some availability in the cloud: 可用于云端一些应用
Energy efficient: 能效高
Limitation: less mature software, not suited for training: 不足:缺少成熟的软件,不适合训练
AI Chips: AI芯片
Very high performance on deep learning inference and training (depending on chip) : 在深度学习训练和推理方面性能很高(取决于芯片)
Usually very energy efficient and cost effective: 通常能效高,成本低
Limitation: Only very early availability especially in cloud; software usually less mature; often applicable only to deep learning tasks: 不足:还处于早期阶段,特别是在云端;软件不成熟;通常只适用于深度学习任务
那么设计师在将脚踏入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为我们提供了一个粗略的评估,按照应用来划分芯片(来自初创公司和成熟企业)。 “有一种趋势是,针对云端的芯片更具通用性,而针对边缘的芯片更为专用。”
以下是一些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工具、推理引擎,解决方案和设计服务等。
审核编辑 黄昊宇
-
芯片
+关注
关注
453文章
50360浏览量
421646 -
AI
+关注
关注
87文章
30072浏览量
268345
发布评论请先 登录
相关推荐
评论