{{ title }}
{{ errorMessage }}


{{ errorMessage }}





{{ registerSuccessMessage }}
首页>技术应用> 正文 
投稿
高效使用TinyML的随机计算架构
  2022-01-12   

                                  文章译自Embedded Computing Design

作者:Abhishek Jadhav   自由职业者技术作家

2022年1月11日

神经网络是一种流行的机器学习模型,但它要求更高的能源消耗和更复杂的硬件设计。随机计算是平衡硬件效率和计算性能之间权衡的有效方法。然而,由于算术单元的低数据精度和不精确性,随机计算见证了低精度的ML工作负载。

为了解决与传统随机计算方法有关的问题,并通过更高的精度和更低的功耗来提高性能,正在进行的研究提出了一种改进的基于块的随机计算架构。随着输入层中块的引入,通过利用高数据并行性可以减少延迟。更重要的是要确定所需的块的数量,全局优化方法负责处理这个问题。

现有的方法包括增加比特流的长度以提高数据精度,甚至使用指数级比特来获得精确的结果。然而,这引入了较长的计算延迟,这对TinyML应用来说是不合理的。因此,为了处理这个不断上升的计算延迟,比特流被分成了几个块,然后并行地执行。结合块内算术单元和输出修订(OUR)方案,缓解了块间不准确的问题,提供了高计算效率。

基于块的随机计算架构

研究提供了一个新颖的架构,其中输入被划分为块,并使用优化的块内算术单元并行执行乘法和加法。此外,当涉及到TinyML应用的延迟-功率权衡时,所提出的模型是一个无可挑剔的架构。

[图片来源:研究论文]

该架构分为以下几个部分:

区块划分

如上图所示,输入的比特流被划分为 "k "值块。提出的想法是,为比特流选择一个好的块数并不保证是最优的,但可以采用近似的方式。如果选择块的数量有误,就会矛盾地产生大的错误。在确定来自输入比特流的正负部分的两个平均值的概率时,存在复杂的计算。查看研究论文 "BSC:基于块的随机计算以实现准确和高效的TinyML",以了解更多关于块划分的启发式策略的细节。

区块内计算

缓解传统加法器所面临的问题,在OR加法器中遭遇相关问题,在分离加法器中遭遇溢出问题。新的修改后的架构设计在输入之间带有XNOR+AND门,以消除双极计算的相关性。下图说明了块内计算的情况。

[图片来源:研究论文]

每个输入位都在并行计数器(PC)中,对正负部分(Ap, An)进行单独处理。有两个专门的累加器用于处理有符号的位。在输入位被取走后,在累加器之间发生减法,如正负部分所说明的那样。目标是得到所有输入的累积1的数量。此外,通过比较取暂时输出的一位(Sop, Son),在多个'n'周期后,计算符号位,并根据签名位Ap和An选择Sop和Son的输出结果。

这种新的基于累加器的符号-幅度格式的加法器利用uNSADD加法器的优势,比较输出以及输入中的真实累加1,以确定输出位。这种方法消除了相关性和快速溢出问题的影响。

区块间输出修正方案 

即使块内加法器解决了相关和溢出问题,但块内除法引入了一个新的块间不准确误差。这种情况不会发生在乘法器上,因为输入是XNOR和AND的。但是对于加法器来说,输出中的1的数量会偏离产生的不准确度。输出修正方案在并行的块内计算阶段后添加或删除1,而不引入任何额外的延迟来解决这些块间不准确的错误。

基于块的新型随机计算架构旨在提高随机计算算术电路的准确性,同时降低计算延迟和能源效率。根据研究结果,该方法实现了比现有方法高10%以上的精度,并节省了6倍以上的功率。

https://www.embeddedcomputing.com/technology/ai-machine-learning/stochastic-computing-architecture-for-efficient-use-of-tinyml



分享到:
  点赞
  收藏
  打印
评论(0)
已输入0字
最新文章
 2022-06-08