类型的人工智能加速度在嵌入式系统中
人工智能的广泛的商业化的最大挑战其计算速度要求实现与一个特定的模型和推理和培训组数据结构。人工智能加速度旨在解决的问题加快人工智能计算和减少所需的模型和数据结构的大小,从而提高计算吞吐量和频率在真实的应用程序中。
这包括两种方法:选择合适的硬件架构,加快人工智能,和设计合适的模型,需要降低计算工作量。前者是传统的人工智能方法加速;它涉及用逐步实现并行计算更大的处理器(最终gpu)为了保持较低的计算时间。后者是新的和正在启用基于软件的方法,减少工作负载不需要更大的处理器。
今天最先进的设备内置AI推理方法和模型训练在云中使用这两种方法一起为推理提供尽可能高的吞吐量。在本文中,我们将重点介绍一些人工智能加速的步骤可以实现在通用的硬件平台和共同语言构建人工智能模型作为一个更大的嵌入式应用的一部分。
人工智能加速发生在硬件和软件
AI加速度模型的目标是双重的:减少大小的模型和数据结构涉及人工智能计算,并加快推理产生有用的结果。同样的概念适用于训练。纵观大多数AI历史,硬件加速是基本的,基本上涉及把计算资源问题,直到成为合理的计算时间。既然这么多研究注意力已经转移到神经网络开发、软件层面也司空见惯,得益于加速技术开源/供应商库和代码示例。
硬件加速 |
|
软件加速 |
|
人工智能在嵌入式系统中,目标是让计算足够快,它可以可靠地实现小微控制器。虽然我们可能没有合理的快速训练在这么小的系统中,像ESP32或Arduino电路板一样简单的事情可以执行快速推理与简单的模型使用上述软件加速的步骤。其他受欢迎的像STM32微控制器有足够的供应商支持实现基于软件的人工智能加速度加快推理任务。
更简单的人工智能推理模型和小型数据结构可以运行一个Arduino只要必要的步骤实现加速度模型。
培训与推理
嵌入式系统实现人工智能的另一边是模型训练,需要处理大量的数据,并根据这些数据建立预测模型。模型训练所需的处理步骤通常在云/执行在边缘而不是在设备上实现。虽然设备内置的培训可以更简单的模型与小输入数据集,训练时间变得太长时间是实际有用的嵌入式设备上用一个小的处理器。
加速度的方法下面通常看着推论,但他们可以应用在培训。
量化
在一个适当的定义,量化是指一组广泛的数学技术,大量的输入转换为一组小的输出。人工智能方面的计算,量化是指近似重量,输入,输出,和较低的中间结果从multiply-accumulate操作精度整数数字。有一个规范化需要转换到一个较低的位深度在神经网络的输入。
量化可以将错误插入人工智能计算的过程,特别是在使用连续信号作为输入。这些信号通常会数字化与ADC所以这些信号已经量化,但是额外的量化会引入新的错误的数字表示输入信号。尽管量化可以应用网络完成后,量化的输入和重定义应该应用开始培训,以确保最高的精度。
修剪
修剪背后的想法是减少模型的总体规模通过删除一些神经元,或整层。量化的副作用,有一个上限的层数和重量超出精度不会改善,因此限制在神经网络参数的数量。
修剪执行通过消除所有的神经网络权重被认为是最重要的。“最不重要”的定义可能包括清除神经元的权重低于某个阈值。通过减少模型大小,计算操作的总数可以减少推理。修剪也可以用来减少训练迭代通过动态调整神经元的数量和层时动态地设计神经网络结构。
稀疏消除
稀疏矩阵和张量是一个属性,在那里他们可能有零个价值元素,因此他们承担多余的或不重要的计算。这些元素可以产生新鲜感输出不增加模型的精度,它们可以从multiply-accumulate删除操作。这涉及到一个简单的逻辑检查贯穿整数值存储在寄存器中。删除这些0张量/矩阵操作减少了总的内存和处理需求培训和推理。
预处理
上述措施在技术上可以考虑预处理模型级别,但是数据集的条目也可以预处理。当应用于数据集时,预处理可以包括多个技术旨在提高推理结果的准确性当模型应用于新数据。如果预处理用于推断,那么相同的预处理应该应用于培训中使用的数据集。这样可以确保最大之间的通信模型,推理结果,训练数据集。
工作流程优化
这个词不是指实际加工做AI-capable中的推理和培训系统。相反,它是指一切系统为了访问和使用一个人工智能模型。这使工作流优化难以概括为“最优工作流程”的确切定义是不同的每个系统,它需要优化多个步骤或过程与计算推理或培训。
简而言之,一个优化的工作流程应该最小化的处理设备必须执行为了捕获数据,预处理,将它传递给一个人工智能模型,执行推理/培训和解释结果。这可能涉及软件和硬件的结合与人工智能的因素。一些例子包括:
- 检查系统处理和标记算法效率的改进
- 实现更有效的标签机制(数据采集)
- 巩固asic所需处理成一个单一的芯片FPGA
- 考虑AI-critical之间的并行处理任务和非关键任务
更多关于人工智能硬件加速
有办法人工智能实现硬件加速。在不太遥远的过去,没有硬件的实现人工智能;一切都运行嵌入式软件,所以真正加快人工智能计算的唯一方法是把更多的计算资源在AI问题和优化模型本身。这意味着更大的/更快的处理器,一个额外的通用处理器,或使用专用的gpu人工智能模型。
人工智能推理加速器芯片组
今天,有硬件平台提供人工智能加速度直接硬件实现。目前市场上有三种选择:
- AI加速器asic
- 新的soc于人工智能核心(相当于# 2)
- fpga
AI加速器芯片供应商和FPGA供应商现在提供工具,允许实例化模型的硬件使用定制的互连面料,大大减少了组合的数量+顺序逻辑步骤在传统人工智能计算。AI加速器芯片,开发人员可以使用开源或卖方提供的库运行驱动程序实现和运行模型与上述软件的步骤。fpga,供应商工具被用来减少TensorFlow + TinyML模型硬件描述语言(VHDL)的实现,所以直接在硅执行模型处理。
一个比较知名的AI加速器芯片和模块生产线珊瑚从谷歌平台。AI加速器芯片,他们创造了“张量处理单元(TPU)”,实现了张量运算所需的逻辑直接在硅。用户可以通过TensorFlow Lite模式芯片以及输入数据的训练,结果会传回一个系统主机处理器用于嵌入式应用程序。
谷歌珊瑚TPU芯片的图像。(图片来源:谷歌]
硬件加速培训
软件和硬件加速加速也在训练中起着重要的作用。在云或边缘,系统将负责培训一般有多个任务执行,所以一个加速器芯片或模块将用于处理数据和训练模式。上述基于软件的人工智能加速度步骤中也使用模型训练可以降低整体的训练时间减少每训练迭代所需的逻辑操作。
考虑到大量训练这些模型所需的数据,和增加频率模型重新训练,专门处理模块AI最意义的培训任务。服务器在数据中心拥有多个任务执行在任何给定的时刻,所以培训专用硬件模块是安装在这些服务器作为PCIe卡插槽。gpu也通常使用,但fpga也高度竞争的专门培训任务在数据中心的环境。
综上所述,这里列出的硬件和软件的方法是非常有效的人工智能加速度。当你准备设计嵌入式系统与人工智能加速度,使用快板PCB设计者,这个行业是最好的PCB设计和分析软件从节奏。快速的用户可以访问一组完整的原理图捕获功能,混合信号在PSpice软件仿真,和强大的CAD功能,等等。