24、卷积神经网络加速中的CPU - 加速器协同调度技术

卷积神经网络加速中的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[输出结果]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值