卷积神经网络压缩编码技术进展
立即解锁
发布时间: 2025-08-31 00:09:41 阅读量: 11 订阅数: 9 AIGC 

# 卷积神经网络压缩编码技术进展
## 1. 压缩编码方法概述
压缩编码方法主要分为有损压缩和无损压缩两类:
- **有损压缩**:常见技术包括量化和剪枝,在卷积神经网络(CNNs)中广泛应用。
- **无损压缩**:涉及基于熵的编码以及适用于稀疏矩阵或张量的其他编码方法。
## 2. 无损输入特征图压缩
### 2.1 数据传输问题
虽然通过模型压缩和量化可不断减小CNN模型参数大小,但CNN硬件加速仍需通过直接内存访问(DMA)在硬件加速器和内存之间进行大量数据传输。这会带来延迟、内存带宽压力和能耗增加等问题,限制了许多当代CNN加速器在资源受限系统(如嵌入式和物联网设备)中的可行性。具体数据传输开销可分为延迟开销和能量开销,双缓冲可隐藏部分延迟开销,但需要更多片上内存,且在大量数据传输时,数据传输延迟难以完全隐藏,同时数据传输的能量开销无法通过重叠计算和数据传输来消除。因此,在设计资源受限系统的CNN硬件加速器时,需同时考虑计算性能和主内存与CNN加速器之间的数据传输。
### 2.2 输入特征图(IFM)压缩方法
为减少硬件加速器和主内存之间的数据传输开销,提出了一种新颖的IFM压缩方法。该方法利用CNN模型中由整流线性单元(ReLU)激活函数导致的激活稀疏性,在软件端执行,去除IFM中零值元素的传输。
### 2.3 两步输入特征图压缩技术
由于CNN特征图存在大量稀疏性,该技术仅保留非零值元素及其位置元数据,省略零值元素。具体而言,压缩算法维护三个实体:
- **非零元素(NZE)**:每个元素为32位浮点数,存储IFM中的所有非零元素。
- **索引**:每个元素为8位,指示非零元素在IFM块中的位置。
- **计数表(count_table)**:每个块对应一个元素,指示从第一个块到当前块的非零元素累积数量。
压缩算法的具体步骤如下:
1. 将3D张量IFM转换为1D向量格式,并划分为块(本工作中每个块包含256个元素)。
2. 从第一个块开始线性搜索非零元素。
3. 若在块中找到非零元素,更新索引,记录其在块中的位置(即IFM 1D向量索引 % 256),增加当前块的非零元素数量到计数表中,并将该元素存储到NZE中。
4. 完成一个块的搜索后,开始搜索下一个块,并更新下一个计数表条目中的非零元素累积数量。
5. 重复上述步骤,直到遍历完IFM中的所有元素。
以下是不同压缩方案的比较:
| 压缩方案 | 存储数据 | 所需内存 |
| --- | --- | --- |
| 传统一步压缩 | 数据元素 + 索引 | N𝜙 × 4B + N𝜙 × 2B |
| 传统压缩稀疏行(CSR)压缩 | 数据元素 + 列索引 + 行指针 | N𝜙 × 4B + N𝜙 × 1B + 256 × 2B |
| 提出的两步压缩 | 数据元素 + 索引 + 计数表 | N𝜙 × 4B + N𝜙 × 1B + Nc × 2B |
其中,N𝜙表示非零元素的数量,Nc表示块的数量。在N𝜙 > 2 × Nc的条件下,提出的两步压缩方案的压缩比优于传统一步压缩方案。当IFM的最大元素数量为2^16时,最大允许的块数(Nc)为256,只要IFM的稀疏性低于99.2%,该方案就能获得更好的压缩比。与CSR压缩方案相比,两步压缩技术可应用于3D张量,而CSR格式仅适用于2D稀疏矩阵。此外,两步压缩技术将3D IFM张量转换为1D向量格式,可减轻硬件设计复杂度。
### 2.4 评估
应用该压缩技术可显著减少传输数据量和传输延迟。具体表现如下:
- **数据大小**:在IFM稀疏度从50%到90%的范围内,该技术可将IFM数据大小减少34.0 - 85.2%。
- **延迟**:平均可将DMA传输延迟减少41.6%。对于不同的稀疏度,延迟减少效果不同,当输入稀疏度为50%时,延迟减少仅为4.4%;当输
0
0
复制全文
相关推荐










