[论文解读] SparCE: Sparsity aware General Purpose Core Extensions to Accelerate Deep Neural Networks
SparCE 提出了一套低开销的微架构扩展和指令集架构(ISA)扩展,应用于通用处理器(GPPs),以利用深度神经网络(DNNs)中的静态和动态稀疏性,加速推理与训练。通过使用稀疏性寄存器文件(SpRF)和稀疏性感知跳过地址(SASA)表,SparCE 在指令获取前动态预识别并跳过冗余指令,使标量处理器的性能提升达 1.11×–1.96×,在 4 路 SIMD ARMv8 处理器上使 6 个图像识别 DNN 的执行时间减少 8%–15%。
Deep Neural Networks (DNNs) have emerged as the method of choice for solving a wide range of machine learning tasks. The enormous computational demands posed by DNNs have most commonly been addressed through the design of custom accelerators. However, these accelerators are prohibitive in many design scenarios (e.g., wearable devices and IoT sensors), due to stringent area/cost constraints. Accelerating DNNs on these low-power systems, comprising of mainly the general-purpose processor (GPP) cores, requires new approaches. We improve the performance of DNNs on GPPs by exploiting a key attribute of DNNs, i.e., sparsity. We propose Sparsity aware Core Extensions (SparCE)- a set of micro-architectural and ISA extensions that leverage sparsity and are minimally intrusive and low-overhead. We dynamically detect zero operands and skip a set of future instructions that use it. Our design ensures that the instructions to be skipped are prevented from even being fetched, as squashing instructions comes with a penalty. SparCE consists of 2 key micro-architectural enhancements- a Sparsity Register File (SpRF) that tracks zero registers and a Sparsity aware Skip Address (SASA) table that indicates instructions to be skipped. When an instruction is fetched, SparCE dynamically pre-identifies whether the following instruction(s) can be skipped and appropriately modifies the program counter, thereby skipping the redundant instructions and improving performance. We model SparCE using the gem5 architectural simulator, and evaluate our approach on 6 image-recognition DNNs in the context of both training and inference using the Caffe framework. On a scalar microprocessor, SparCE achieves 19%-31% reduction in application-level. We also evaluate SparCE on a 4-way SIMD ARMv8 processor using the OpenBLAS library, and demonstrate that SparCE achieves 8%-15% reduction in the application-level execution time.
研究动机与目标
- 在成本和面积受限的嵌入式系统中加速深度神经网络(DNN)的推理与训练,这些系统中定制加速器不切实际。
- 解决在通用处理器(GPP)架构中高效利用静态(剪枝权重)和动态(ReLU 激活特征)稀疏性的挑战。
- 在不引入显著性能开销的前提下,通过在获取前预识别冗余计算,实现早期指令跳过。
- 设计一种最小侵入性、低开销的 GPP 扩展,支持动态和静态稀疏性,且无需应用特定的修改。
提出的方法
- 引入稀疏性寄存器文件(SpRF),用于动态跟踪哪些通用寄存器包含零值,从而实现实时检测零操作数。
- 设计稀疏性感知跳过地址(SASA)表,用于在依赖于零值操作数时,预识别可跳过的指令序列。
- 实现预识别并跳过冗余单元(PSRU),利用 SpRF 和 SASA 数据修改程序计数器,防止冗余指令的获取。
- 在 gem5 模拟器中将 SparCE 扩展集成到 GPP 微架构中,基于 Caffe 的 DNN 工作负载,在标量和 4 路 SIMD ARMv8 处理器上进行评估。
- 使用稀疏矩阵运算和稀疏 BLAS 库作为基线比较,评估在不同稀疏度水平(10%–90%)下的性能提升。
- 在六种最先进的图像识别 DNN 上评估 SparCE,涵盖训练和推理两个阶段。
实验结果
研究问题
- RQ1稀疏性感知扩展能否在通用处理器中有效集成,以在不引入显著面积或性能开销的前提下加速 DNN 执行?
- RQ2基于零值操作数的动态指令跳过在减少 DNN 工作负载中的冗余计算方面有多有效?
- RQ3SparCE 在主流 DNN 上的 GPP 架构中,能在多大程度上同时利用静态(剪枝权重)和动态(ReLU 激活特征)稀疏性?
- RQ4在标量和 SIMD GPP 上,SparCE 能在加速比和执行时间减少方面实现多大程度的性能提升?
主要发现
- 在标量微处理器上,SparCE 在 DNN 的卷积层和全连接层中,针对 10%–90% 的稀疏度水平,实现了 1.11× 到 1.96× 的加速比。
- 在整体应用层面,SparCE 在所评估的 DNN 中使执行时间减少了 19% 到 31%,展示了显著的端到端性能提升。
- 在使用 OpenBLAS 的 4 路 SIMD ARMv8 处理器上,SparCE 实现了 8% 到 15% 的应用级执行时间减少,表明其在向量化执行环境中的有效性。
- PSRU 单元通过预识别跳过条件,成功避免了冗余指令的获取,从而避免了与指令丢弃相关的流水线停顿。
- SparCE 有效利用了动态稀疏性(来自 ReLU 激活)和静态稀疏性(来自权重剪枝),使其适用于广泛范围的现代 DNN。
- 该设计具有最小侵入性和低开销,无需对应用程序或编译器进行任何修改,可无缝集成到现有的基于 GPP 的嵌入式系统中。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。