@snuffles
2019-08-22T00:58:21.000000Z
字数 1170
阅读 1682
roborock
todo::https://zhuanlan.zhihu.com/p/28226956
浮点峰值那些事儿
在这多种多样的设备中都保持一个高效的Inference性能,其实是一件很有挑战的事情
各大设备厂商的Inference框架性能都比较不错),比如Intel的OpenVINO,ARM的ARM NN,NV的TensorRT等
但是不统一,业务想要统一的框架
我们能不能做一个基于编译优化思想的推理框架呢
https://zhuanlan.zhihu.com/p/75203171
3.1 在上文中,我们发现我们加入了一些限定参数,比如bn,而到底这个参数应该设为多少,其实就应该让机器告诉我们。于是TVM引入了一个东西,叫做AutoTVM,用机器学习来解决机器学习的问题。
3.2 我认为是我们可以再进行一次tile。如我们现在把一个1024变为了32x32,我们符合了Cache,但是我们其实可以分为类似4x32x8,这样的话,我们用4个核,每个核我们同时取32x8的小方块,最里层的8我们使用SIMD一次做完。同时在s[C]向CC(即Cache)拷贝数据的时候,我们也可以添加s[C].unroll与s[C].vectorize,从而拷贝的更快。
FMA,以及后文所提到的优化技术,如内存布局、并行、Blocking、更好的Cache命中率