卷积神经网络加速器:iMAC与NeuroMAX的创新设计
立即解锁
发布时间: 2025-08-31 00:09:42 阅读量: 2 订阅数: 9 AIGC 

### 卷积神经网络加速器:iMAC与NeuroMAX的创新设计
#### 1. 密集CNN加速器概述
密集CNN加速器在卷积神经网络的发展中扮演着重要角色。在神经网络加速器设计中,需要考虑CNN权重和特征图的密集格式表示,以及线性和对数量化的精度比较。
一些近期的设计虽实现了较高的硬件利用率,但由于使用单核、线性处理单元(PE)且面积成本高,无法使每个PE的峰值吞吐量超过1。例如,Vogel等人提出使用任意对数基的加速器设计,但未利用基于对数的PE的低硬件开销,而是依赖线性PE排列;Huan等人提出了针对各种卷积核的可重构设计,使用传播输入数据流方案,但存在高延迟和低硬件利用率的问题;Jo等人提出了用于卷积的重新调度数据流以优化能源效率;Chang和Chang提出了VWA向量式加速器架构,旨在最大化硬件利用率,支持从1×1到5×5的各种内核大小。
工业界著名的密集CNN加速器之一是谷歌张量处理单元(TPU)。自2015年起,TPU被部署在谷歌数据中心。TPUv1基于256×256的PE脉动阵列,支持8位整数精度,但为快速部署未包含稀疏矩阵乘法的架构支持,仅接受密集格式输入。目前TPU已更新到TPUv4i,在支持bf16(脑浮点)精度下,每芯片的峰值万亿浮点运算每秒(TFLOPS)提高了1.5倍。
#### 2. iMAC:基于图像到列和通用矩阵乘法的密集CNN加速器
##### 2.1 背景与动机
在资源受限的系统中,成本效率(即单位成本的性能)是关键指标。卷积神经网络(CNN)的推理任务常需在设备端(如物联网边缘)执行,这是由于与云的通信带宽有限以及安全/隐私问题。然而,物联网设备资源预算紧张,难以满足CNN的响应时间要求。在资源受限的物联网设备中进行CNN推理的主要挑战是找到资源成本和响应时间之间的最佳平衡点。
传统上,CNN推理通常由CPU执行,但CPU在处理数据并行工作负载(如矩阵乘法)时效率低下。即使使用单指令多数据(SIMD)指令,通用CPU提供的SIMD执行通道也有限,限制了矩阵或向量操作中的并行性利用。此外,CPU依赖缓存进行数据传输,当运行权重数量较大的CNN时(即权重大小大于缓存容量),会因缓存未命中导致响应时间变慢和能耗增加。
为提高响应时间和能源效率,可以使用通用矩阵乘法(GEMM)硬件加速器(如脉动阵列)来卸载CNN的卷积操作。GEMM加速器不仅可用于CNN,还可用于许多其他嵌入式/物联网应用,对资源受限的物联网和嵌入式系统具有吸引力。但在执行GEMM之前,需要将输入特征图(IFM)展开为适合GEMM硬件的矩阵或向量,即“im2col”操作。然而,分离的im2col和GEMM执行会导致不可忽视的数据存储和传输开销。例如,执行3×3卷积操作时,IFM转换为多个向量会使数据存储和传输需求增加9倍。此外,使用硬件加速器时,CPU在直接内存访问(DMA)传输和加速器执行期间会闲置。因此,需要找到卷积层操作中的并行性,以高效利用资源受限系统中的硬件资源。
##### 2.2 架构
iMAC硬件加速器将im2col和MAC(通用矩阵乘法和累加)操作结合在一起。传统的基于软件的im2col操作会在执行GEMM之前将IFM展开为多个向量,这会导致数据存储和传输效率低下。因此,iMAC将im2col、GEMM和累加操作集成在一个统一的硬件加速器中。
iMAC加速器的整体架构如下:输入块随机存取存储器(BRAM)中的IFM数据被输送到执行im2col操作的功能单元(FU)。从im2col FU展开的数据被送到Im2colBuffer,与权重BRAM中的权重相乘。由于立即计算MAC操作,无需在内存中维护复制的数据,从而减少了数据传输量和所需的数据存储大小。相乘结果暂时存储在乘法缓冲区(MulBuffer)中,然后累加到输出缓冲区(OutBuffer)。最后,OutBuff
0
0
复制全文
相关推荐







