|CPU推理性能提高数十倍,旷视天元计算图、MatMul优化深度解读( 四 )


|CPU推理性能提高数十倍,旷视天元计算图、MatMul优化深度解读
本文插图

对矩阵 A 进行数据 PACK 是将 A 中 mr 行数据的相同列拷贝到一起 , 如上图中将 A PACK 到 A’ 的步骤 。 重复完所有 A 中的行块便完成了 A 矩阵的数据 PACK 。 B 矩阵的 PACK 操作是 , 将 nr 列数据拷贝到连续的内存地址中 , 它对应上图 B PACK 到 B’ 的过程 。
实验
按照文介绍方式方式 , 天元在 X86 和 ARM 上分别对 MatMul 进行了优化 。 下表展示了 ARM64 上的性能测试结果 , 实验平台为 kirin 980 。
首先 , 对该处理器进行分析可以看到 , 其主频为 2.6 GHz , 每个周期能够进行 16 次乘加计算 , 因此其理论计算峰值为 16*2.6=41.6 Gflops 。
|CPU推理性能提高数十倍,旷视天元计算图、MatMul优化深度解读
本文插图

可以看到 , 经天元优化的 MatMul 计算 , 发挥出了该处理器 90% 以上的计算性能 。
总结
本文以 Batch Norm 为例介绍了推理计算图的具体实现 , 以及 MatMul 在 CPU 上的优化细节 。 作为 CPU 推理优化的基石 , 最优的推理计算图是实现高性能 CPU 推理的前提条件 , 极致性能的 MatMul 计算基础算子将为实现卷积计算中的 Im2col 和 Winograd 提供性能保障 。
在后面的文章中 , 我们将在详细介绍卷积计算中 Im2col 和 Winograd 的优化细节 。
参考文献
1.Anatomy of High-Performance Matrix Multiplication
2.Fusing batch normalization and convolution in runtime
3.Arm? Cortex?-A76 Software Optimization Guide
欢迎访问
MegEngine WebSite:https://megengine.org.cn
【|CPU推理性能提高数十倍,旷视天元计算图、MatMul优化深度解读】MegEngine GitHub(欢迎Star):https://github.com/MegEngine


推荐阅读