硬件如何撬动移动端AI万亿美元市场? 华人学者新研究实现移动端神经网络180倍加速( 三 )


卷积核与输出通道重排(filter kernel reorder)通过将具有相同长度和模式的卷积核组合在一起 , 解决了模式化剪枝带来的两个挑战 , 即密集的控制流指令以及线程分散(thread divergence)和负载不均衡(load imbalance) 。 由于卷积核模式数量相对有限 , 可以通过适当的卷积核内核重新排序将具有相似模式的内核进行编组 , 从而显著减少控制流指令并提高指令级并行度 。 此外 , 如果不同的线程处理不同的输出通道 , 则由于每个输出通道中的内核具有相似的计算工作量 , 因此可以正确解决线程分散和负载不均衡的问题 , 从而增强了线程级并行度 。
压缩权重存储(compressed weight storage)格式是专门为我们的卷积核模式和连通性剪枝设计的 。 与卷积核与输出通道重排结合后 , 这种紧凑的数据结构比传统的CSR(压缩稀疏行)格式能够产生更好的压缩率 。
消除负载冗余(load redundancy elimination)通过在内核执行代码生成过程中通过分析处理两个寄存器级负载冗余问题 , 解决了基于卷积核模式化剪枝对内存性能的挑战 。 在内存和缓存之间的数据移动已通过高级数据平铺技术进行了优化的前提下 , 我们的负载冗余消除有着更加重要的意义 。
参数自动调整(parameter auto-tuning)专门测试关键性能参数的不同配置 , 包括将数据放置在各种GPU/CPU存储器上 , 不同的数据平铺大小以及每个处理单元上每个DNN层的循环置换的策略 。
总而言之 , 压缩编译协同设计方法允许编译器将剪枝后的内核视为特殊模式 , 不仅可以实现模型的高精度与高压缩率 , 还可以有效地将卷积核模式转换为硬件上的性能提升 。
软硬件及压缩编译协同设计与其它软件算法的性能对比
为了验证我们的中心论点 , 即软件仍然主导AI时代 , 我们需要回答的关键问题是 , 在现有的设备上 , 「压缩-编译」联合设计方法是否优于专用的硬件加速器 。 我们在三星Galaxy S10智能手机上部署了「压缩-编译」联合设计的框架 , 并将其性能与在ASIC和FPGA上实现的硬件加速器进行了比较 。
硬件如何撬动移动端AI万亿美元市场? 华人学者新研究实现移动端神经网络180倍加速
图片

结果总结在上图中:首先 , 使用专用ASIC硬件(包括Google的云TPU-V2和Edge TPU , NVIDIA Jetson AGX Xavier , Cambricon MLU-100 , Eyeriss等)上对性能和能效进行比较的结果 。 与DeePhi的FPGA解决方案ESE在准确性和能效上的比较结果 。 这是对相同网络模型的公平比较 , 并且我们的解决方案未采用权重量化(quantization) 。
我们可以清楚地看到 , 我们在现有的移动设备上的解决方案在能效方面始终优于代表性的ASIC / FPGA解决方案 。 这种独特的现象归因于三个原因:
智能手机本身具有超高的能量效率 。 智能手机计算芯片是使用最先进的技术(例如7nm , 11nm技术)构建的 , 并且是技术进步的关键驱动力 , 而FPGA / ASIC解决方案则基于28nm或40nm技术 , 而这些技术本身就不那么节能 。 同样 , ARM(用于移动CPU)和高通(Qualcomm)(用于移动GPU)尤其擅长高效电路/系统设计 。
虽然现有的移动编译器框架对不同神经网络的支持有限(例如 , 不支持RNN或大规模DNN) , 但我们的编译器可以支持所有主要类型的神经网络 , 从而释放了移动设备的全部潜力 。
由于基于软件的解决方案具有高度的灵活性 , 因此我们的方法在不同的DNN基准上始终保持高性能 。 相反 , 可以清楚地看到 , 当前的ASIC / FPGA解决方案针对特定的DNN类型/大小进行了优化 , 因此缺乏通用性 。 具体而言 , 边缘TPU针对小型DNN优化 , 而Cambricon MLU-100针对大型DNN优化 。
下一个问题就是在相同的硬件条件下 , 我们的方法能否超出现有的其它软件优化算法 , 也即压缩编译协同设计方法是否具有显著的优越性 。


推荐阅读