卷积神经网络加速中的CPU - 加速器协同调度技术
1. 引言
卷积神经网络(CNNs)在人工智能和计算机视觉领域取得了革命性的进展,但随着模型规模和计算需求的不断增加,在资源受限的边缘设备上部署CNN面临着巨大挑战。为了提高CNN在边缘设备上的推理性能和能效,CPU - 加速器协同调度技术应运而生。
2. CPU - 加速器协同调度技术原理
2.1 任务分配
该技术利用生成不同CNN输出特征图操作的独立性,将输出通道分配给加速器和CPU。通过这种方式,与仅使用加速器执行相比,可以进一步提高性能。
2.2 负载均衡
为了实现加速器和CPU之间的负载均衡,采用了基于线性回归的延迟模型。该模型可以估计卷积层在CPU和加速器上的执行时间,从而以负载均衡的方式分配输出通道,充分利用加速器和CPU的资源。
3. 实验结果分析
3.1 空闲时间比例
| 平台 | PE2 | PE4 | PE8 |
|---|---|---|---|
| Ultra96 | 部分层如Layer 0为2.22%等 | 部分层如Layer 0为3.04%等 | 部分层如Layer 0为6.85%等 |
| Zed | 部分层如Layer 0为2.81%等 | 部分层如Layer 0为2.79%等 | 部分层如Layer 0为7.16%等 |
| ZCU104 | 部分层如Layer 0为0.14%等 | 部分层如Layer 0为1.63%等 | 部分层如Layer 0为6.00%等 |
| ZCU106 | 部分层如Layer 0为0.13%等 | 部分层如Layer 0为1.64%等 | 部分层如Layer 0为5.97%等 |
表格中粗体单元格表示CPU空闲时间(即CPU比加速器完成得快的情况),下划线单元格表示加速器空闲时间(即加速器比CPU完成得快的情况)。结果显示,平均空闲时间仅为1.61%(最大空闲时间为7.16%),这表明该技术几乎完全消除了空闲时间,使CPU和加速器得到了充分利用,从而最大化了吞吐量。
3.2 能量消耗
使用HPM - 300A功率计测量平台级功率,确定了协同调度技术的能量消耗。与仅使用CPU(CPU_ONLY)和仅使用加速器(ACC_ONLY)相比,CPU + ACC协同调度方法在不同加速器和不同数量处理单元(PE)的情况下,能量分别降低了48.0 - 79.8%和14.9 - 49.7%。虽然CPU + ACC的功率消耗比CPU_ONLY和ACC_ONLY有所增加,但由于执行时间的减少,整体能量消耗大幅降低。
3.3 Tiny Darknet CNN推理案例研究
使用Tiny Darknet模型进行CNN推理,比较了CPU_ONLY、ACC_ONLY和CPU + ACC三种情况下的每一层延迟。由于目标平台是资源受限的边缘设备,在ACC_ONLY和CPU + ACC中使用了2PE CNN加速器。
| CNN层编号 | 描述 | CPU_ONLY(秒) | ACC_ONLY(秒) | CPU + ACC(秒) |
|---|---|---|---|---|
| Layer 0 | 3 × 3 CONV | 1.283221 | 1.057395 | 0.736854 |
| Layer 1 | 2 × 2 max pooling | 0.073256 | 0.073281 | 0.073755 |
| … | … | … | … | … |
| 总计 | - | 24.838871 | 22.665831 | 12.511788 |
结果表明,CPU + ACC比CPU_ONLY和ACC_ONLY的CNN推理延迟分别降低了49.6%和44.8%,性能提升了1.81× - 1.99×。需要注意的是,在Layer 6中,ACC_ONLY的延迟比CPU_ONLY略高,这是由于片上内存(BRAM)大小有限,需要两次触发加速器,导致数据传输延迟增加。
4. 现代CNN加速器设计因素
4.1 混合精度支持
CNN加速器需要在模型精度、计算复杂度和数据传输量之间进行平衡。为了降低计算复杂度和数据传输量,广泛使用低精度权重和特征图。现代CNN加速器设计致力于在单个加速器中支持混合精度,如8位整数、16位和32位浮点类型等,以提高计算效率。
4.2 内存/存储架构
随着权重和特征图大小的不断增长,有效利用存储和内存带宽对于提高性能变得越来越重要。现代CNN加速器采用3D堆叠内存来提供高带宽内存,并考虑近内存或内存内处理,以减少内存和加速器之间的数据传输量。
4.3 数据特性
许多当代CNN加速器都考虑了数据稀疏性。跳过产生零值的无效操作可以大大提高CNN加速器的性能和能效。
5. 未来CNN加速器设计的前瞻性方法
5.1 利用新技术
利用新的内存单元或逻辑技术将是未来CNN加速器的一个有前景的研究方向。例如,使用电阻式随机存取存储器(ReRAM)可以轻松实现内存内计算概念;使用单磁通量子(SFQ)逻辑可以获得比传统逻辑基CNN加速器更好的性能,据报道,SFQ基神经处理单元(NPU)的性能比现有NPU提高了23倍。
5.2 安全和隐私考虑
CNN可能涉及处理安全或隐私敏感数据。传统加密方法需要在进行CNN操作之前解密数据,这可能无法保护用户隐私。同态加密可以在加密数据上进行操作,是实现安全和隐私保护的CNN的一个很好的候选方案。
综上所述,CPU - 加速器协同调度技术在提高CNN在边缘设备上的推理性能和能效方面具有显著优势。同时,现代CNN加速器设计需要综合考虑多种因素,并探索新的技术和方法,以满足不断增长的计算需求和应用场景。
graph LR
A[输入数据] --> B[CPU - 加速器协同调度]
B --> C{负载均衡}
C -->|CPU| D[CPU执行部分任务]
C -->|加速器| E[加速器执行部分任务]
D --> F[合并结果]
E --> F
F --> G[输出结果]
graph LR
A[现代CNN加速器设计] --> B[混合精度支持]
A --> C[内存/存储架构优化]
A --> D[数据特性利用]
B --> B1[不同精度组合]
C --> C1[3D堆叠内存]
C --> C2[近内存/内存内处理]
D --> D1[稀疏性处理]
6. 相关技术回顾
6.1 数据压缩技术
- 输入特征图(IFM)压缩 :利用CNN模型中的激活稀疏性,由ReLU激活函数导致的零值元素在IFM中较多。通过软件端的压缩方法,去除IFM中零值元素的传输,实现了无损压缩。实验表明,该方法使IFM数据传输的数据大小和延迟分别降低了34.0 - 85.2%和4.4 - 75.7%。
- 权重压缩 :引入基于算术编码的5位权重压缩方法,并设计了用于快速高效运行时权重解码(解压缩)的硬件。对于剪枝后的5位量化权重,该技术的压缩比相比未压缩的32位浮点(FP)权重提高了57.5× - 112.2×,平均使内存数据传输能量降低了89.2%(剪枝权重最高可降低99.1%)。
6.2 加速器架构
- 密集CNN加速器 :接受IFM和权重作为密集矩阵,将卷积操作转换为密集矩阵乘法。常见的实现架构有 systolic 阵列和乘法累加(MAC)阵列。
- iMAC CNN加速器 :适用于资源受限系统,将卷积层所需的更细粒度操作卸载到加速器硬件,而非整个卷积层操作。在配备Zynq - 7020片上系统的ZED平台上进行原型设计,通过实验验证了其在硬件利用方面的效果。
- NeuroMAX加速器 :一种密集加速器,采用多线程处理元素(PE)核心和高效的2D权重广播数据流方案,可充分利用处理引擎的多级并行性,使硬件利用率接近100%。与最近提出的现代CNN密集加速器设计相比,吞吐量提高了77.4%,延迟降低了47%,PE数量减少了28%,同时功耗和查找表(LUT)数量分别至少降低了27%和29%。
-
稀疏CNN加速器
- 基于IFM稀疏性的加速器 :利用IFM的稀疏性提高性能、降低能耗和减少加速器与片外主内存之间的数据传输。先压缩IFM,再进行卷积层操作,根据稀疏程度和滤波器大小,性能比基于CPU的卷积层执行提高了1.1× - 22.6×,能耗降低了47.7 - 97.4%,成本效率平均提高了1.9×。
- Sparse - PE核心 :用于稀疏CNN的多线程、通用点积核心,利用权重和激活的双边稀疏性,采用稀疏二进制掩码格式,复杂度较低。设计了新颖的低成本电路,可跳过大量涉及零数据的计算,仅进行涉及非零数据的计算,在输入激活和权重稀疏度高达60%时,硬件利用率仍能保持在85%以上。与之前的密集和双边稀疏CNN加速器相比,速度分别提高了12×、4.2×、2.38×和1.98×。
- Phantom加速器 :一种新颖的多线程、灵活的神经计算核心,扩展了Sparse - PE的设计。Phantom - 2D加速器使用Phantom核心的2D阵列和新颖的数据流,支持CNN的所有层,包括单位和非单位步长卷积以及全连接(FC)层。采用两级负载平衡策略,减少计算线程的空闲时间,提高吞吐量。与等效的密集CNN架构、SCNN、SparTen和Eyeriss v2相比,性能分别提高了12×、4.1×、1.98×和2.36×,并保持了SparTen的能效。
6.3 硬件/软件(HW/SW)协同设计与调度
- HW/SW协同设计概述 :回顾了资源受限系统中HW/SW协同设计的最新进展,以认知物联网架构为例进行了说明。
- iMAC加速器的HW/SW协同设计 :专注于软件级支持,有效划分和分配输入通道给iMAC加速器,利用卷积层操作的并行性。实验结果显示,与仅使用CPU相比,实现了1.3× - 2.0×的加速和19.4 - 44.3%的能耗降低,在资源受限系统的CNN推理中实现了响应时间、能量和成本之间的平衡。
7. 总结
随着人工智能在边缘设备的发展,卷积神经网络加速变得至关重要。CPU - 加速器协同调度技术通过合理分配输出通道和负载均衡,显著提高了CNN在边缘设备上的推理性能和能效。同时,现代CNN加速器设计需要综合考虑混合精度支持、内存/存储架构和数据特性等因素,并不断探索利用新技术和解决安全隐私问题的方法。未来,随着技术的不断进步,CNN加速器将在更多领域得到广泛应用,为人工智能的发展提供更强大的支持。
| 技术类型 | 优势 | 应用场景 |
|---|---|---|
| CPU - 加速器协同调度 | 提高性能、降低能耗、减少空闲时间 | 边缘设备CNN推理 |
| 数据压缩技术 | 减少数据传输、降低内存占用 | 所有CNN应用 |
| 密集CNN加速器 | 高效执行密集矩阵乘法 | 数据密集型CNN任务 |
| 稀疏CNN加速器 | 利用数据稀疏性提高性能 | 数据稀疏的CNN任务 |
| HW/SW协同设计与调度 | 平衡资源利用、优化性能 | 资源受限系统 |
graph LR
A[CNN推理任务] --> B[数据压缩]
B --> C[选择合适加速器架构]
C -->|密集数据| D[密集CNN加速器]
C -->|稀疏数据| E[稀疏CNN加速器]
D --> F[HW/SW协同设计与调度]
E --> F
F --> G[CPU - 加速器协同调度]
G --> H[输出结果]
超级会员免费看
825

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



