在传统卷积中,每条输入通道都需要对一个特定内核执行运算,随后通过将所有通道的结果组合在一起来获取结果。
在逐通道可分离卷积中,通过 2 个步骤来执行运算:逐通道卷积和逐点卷积。对于每个特征映射都会单独执行逐通道卷积,如下图左侧所示。下一步是执行逐点卷积,它与内核大小为 1x1 的传统卷积相同。逐通道卷积的并行度是像素并行度的一半。
在 DPUCZDX8G 中,逐通道卷积是由于 ALU 引擎配合池化一起执行的。ALU 并行范围介于 1 到 PP 之间,建议设为 PP/2。
图 1. 逐通道卷积和逐点卷积
ALU 并行 | LUT | FF | 块 RAM | DSP |
---|---|---|---|---|
1 | 44212 | 88250 | 255 | 662 |
2 | 46599 | 92380 | 255 | 678 |
4 (推荐)
|
51388 | 98525 | 255 | 710 |
8 | 60751 | 111329 | 255 | 774 |