那年初夏|华人学者提出软件算法架构加速AI实时化,性能超越GPU、FPGA( 三 )


除了CNN网络 , 他们还在RNN上与FPGA硬件加速器ESE和C-LSTM做了对比(如图4所示) 。 即使CoCoPIE不使用任何量化技术 。 CoCoPIE当压缩率高于245倍时 , 有着与ESE相同的推理时间(ESE为82.7us) , 而CoCoPIE的GPU能量效率比ESE高将近40倍 , 比C-LSTM高近12倍 。 因为 , 与ESE的查找表激活算法相比 , CoCoPIE的编译器优化显著提高了并行性和内存性能 , 而ESE的查找表激活算法导致了有限的并行化和不规则的内存访问 。 C-LSTM则存在两个不容忽视的问题 , 一是识别能力不高 , 二是无法利用手机GPU的并行节能运算模式 , 而CoCoPIE框架可以同时确保高识别率、高能量效率、多平台执行 。
他们还将CoCoPIE的测试结果与现有的加速框架进行了对比 , 由于这些框架缺乏像CoCoPIE所使用的“压缩-编译”协同设计方法 , 他们的性能不如CoCoPIE 。 图5为CoCoPIE与TFLite , TVM以及MNN加速框架在普通的三星GalaxyS10手机的CPU和GPU上的性能对比 。 S10拥有最新的高通骁龙(QualcommSnapdragon)855移动平台 , 包含了高通Kryo4858核CPU和高通Adreno640移动GPU 。 结果显示在所有情况下 , CoCoPIE都超越了其它的加速框架 。
CoCoPIE架构中使用了两个关键技术来实现AI应用在手机端的加速 , 即“模型压缩”与“编译器优化” 。
模型压缩技术主要分为两类:1.剪枝(pruning);2.量化(quantization)
剪枝技术意在删除模型中冗余的权重来减少权重的存储量和计算量 , 而量化技术意在降低权重的精度来减少存储和加快计算速度 。
在CoCoPIE架构中他们新提出了“卷积核模式剪枝(kernelpatternpruning)”和“连通性剪枝(connectivitypruning)” , 以便在不损失准确性的情况下实现更高的剪枝倍率和加速效果 。
在编译器优化方面 , CoCoPIE主要使用了以下技术:
1.压缩权重存储(compressedweightstorage)
压缩权重存储格式是专门为CoCoPIE中使用的卷积核模式和连通性剪枝设计的 。 卷积核与输出通道重排结合后 , 这种紧凑的数据结构比传统的CSR(压缩稀疏行)格式能够产生更好的压缩率 。
2.消除负载冗余(loadredundancyelimination)
通过在内核执行代码生成过程中通过分析处理两个寄存器级负载冗余问题 , 解决了基于卷积核模式化剪枝对内存性能的挑战 。 在内存和缓存之间的数据移动已通过高级数据平铺技术进行了优化的前提下 , 这种负载冗余消除有着更加重要的意义 。