稀疏CNN加速器的最新进展与原位解压缩卷积加速器实现
立即解锁
发布时间: 2025-08-31 00:09:42 阅读量: 9 订阅数: 14 AIGC 

### 稀疏CNN加速器的最新进展与原位解压缩卷积加速器实现
#### 1. 稀疏矩阵乘法硬件架构
稀疏矩阵乘法(SpMM)在众多新兴应用中频繁使用,因此出现了多种相关的硬件架构。常见的矩阵乘法方法有内积法、外积法和行积法,下面分别介绍不同方法及其相关架构。
##### 1.1 内积法相关架构
内积法是一种广为人知且直观的矩阵乘法方法。
- **SparTen架构**:采用内积法,引入了带位掩码的高效内连接(标记非零元素位置),通过按位与操作识别无效操作,还提出了基于排序的贪婪负载均衡技术用于处理单元(PE)。
- **SIGMA架构**:同样基于内积法,引入了点积引擎(Flex - DPE),利用树状拓扑和前向加法器网络支持灵活互连,采用基于位图的格式作为压缩数据格式,但仅加载的操作数矩阵采用压缩格式,流矩阵采用密集格式。
不过,内积法本质上需要索引匹配(或内连接),这对于具有成本效益的硬件设计和实现并不理想。
##### 1.2 外积法相关架构
为了去除复杂的索引匹配过程,提出了一些外积法相关架构。
- **SpArch架构**:利用外积法进行稀疏矩阵乘法,采用压缩矩阵表示法压缩行中的非零元素,使用基于霍夫曼树的调度器,在生成部分结果矩阵时,先产生非零元素较少的矩阵,以提高内存使用效率并减少内存带宽需求。
- **SPAGHETTI架构**:也采用外积法,输入矩阵和输出矩阵使用不同的压缩格式(输入为CSR和压缩稀疏列,输出为COO坐标格式),但COO格式未排序,难以原位使用,且外积法通常需要大量的部分结果矩阵存储空间。
##### 1.3 行积法相关架构
为了弥补内积法和外积法的不足,提出了行积法相关架构。
- **MatRaptor架构**:基于行积法,采用新的压缩格式——通道循环稀疏行(C2SR),利用矩阵A每行乘法可并行的特点,先进行行乘法,再通过主队列和辅助队列进行排序和累加。
- **Gamma架构**:同样基于行积法,利用行级并行性,采用Fiber缓存存储非零元素及其坐标。
- **另一种行积法架构**:采用广泛用于表示SpMM的CSR格式,硬件加速器对CSR格式的操作数矩阵进行乘法运算,生成CSR格式的输出矩阵,提出的负载均衡技术可提高PE之间的并行性。
#### 2. 原位解压缩和卷积的CNN加速器
为了减少数据传输开销,实现CNN加速,采用了一种硬件/软件协同设计方法。该加速器基于无损压缩输入特征图(IFM),不会造成精度损失。
##### 2.1 整体流程
- **软件部分**:使用压缩技术将未压缩的IFM转换为压缩格式,然后通过直接内存访问(DMA)发送到硬件加速器的片上内存,权重数据不压缩,直接发送到硬件加速器。
- **硬件部分**:硬件加速器使用权重和压缩后的IFM执行卷积层操作。
```mermaid
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(输入特征图IFMs):::process --> B(IFM压缩):::process
C(权重):::process --> D(硬件加速器):::process
B
```
0
0
复制全文
相关推荐







