高效CNN加速器:NeuroMAX的技术解析
1. 背景与现有设计局限
在神经网络加速器设计领域,许多现有设计虽在硬件利用率上表现出色,但因采用单核心、高面积成本的线性处理单元(PE),难以将每个PE的峰值吞吐量提升至更高水平。例如,部分引擎的数字信号处理(DSP)成本极高,需要1200多个DSP块。一些改进设计虽有进步,但仍存在不足,如Huan等人提出的可重构设计,采用传播输入数据流方案,却导致高延迟和低硬件利用率。
2. 对数映射(Log Mapping)
2.1 线性与对数量化原理
许多训练好的神经网络的权重和输入激活值呈非均匀分布。当将32位浮点(fp32)、非均匀分布的值映射到定点、线性量化的值时,对于小位宽会引入大量量化噪声。
大多数硬件平台使用定点算术进行数据处理,定点数用有符号Qm.n格式表示,其中m表示整数部分,n表示小数部分,可表示的值范围为$range_{lin} = [-2^{m - 1}, 2^{m - 1} - \epsilon]$,$\epsilon = 2^{-n}$为步长。
线性量化器将fp32值四舍五入到最接近的$\epsilon$倍数,然后进行裁剪:
[x_q = clip\left[\left(round\left(\frac{x}{\epsilon}\right)\right) \cdot \epsilon, -2^{m - 1}, 2^{m - 1} - \epsilon\right]]
其中,
[clip(x, min, max) =
\begin{cases}
max, & x \geq max \
NeuroMAX CNN加速器技术解析
超级会员免费看
订阅专栏 解锁全文
14万+

被折叠的 条评论
为什么被折叠?



