CPU - 加速器协同调度实现CNN加速
1. CPU - 加速器协同调度概述
在CNN加速中,采用CPU - 加速器协同调度技术。具体做法是将“K”个3D滤波器张量分配给CNN加速器,用于生成“K”个输出通道;将“OC - K”个滤波器张量分配给CPU。在运行时,由CPU执行的协同执行控制模块会启动加速器和CPU针对给定输出通道的协同执行。CONV层操作包含卷积、批量归一化(BatchNorm)和激活。在加速器和CPU分别生成“K”和“OC - K”个2D输出特征图(OFMs)后,将这些OFMs聚合起来,组成完整的3D OFM张量。
2. 基于线性回归的延迟模型
2.1 加速器延迟模型
加速器延迟可分为计算、数据传输和一致性延迟三部分:
- 计算延迟 :
- 首先计算单位延迟$L_{uACC}$,它对应于1PE加速器生成一个OFM元素时的计算延迟,计算公式为$L_{uACC} = \alpha_{comp} \times Size_{FT} + \beta_{comp}$,其中$Size_{FT}$是一个3D滤波器张量中的元素数量。
- 然后计算加速器生成$N_F$个OFMs时的计算延迟$L_{comp}$,公式为$L_{comp} = L_{uACC} \times Size_{OFM} \times \lceil\frac{N_F}{N_{PE}}\rceil$,其中$Size_{OFM}$是一个2D OFM中的元素数量,$N_F$是某一CONV层的输出通道总数,$N_{PE}$是加速器中的处理元素(PE)数量。
- 传输延迟 :传
超级会员免费看
订阅专栏 解锁全文

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



