本节评估一下,通过代码生成操作之后,对于模型的性能提升。
评估下性能
在相同的环境下,分别运行 4th_no_malloc 和 5th_codegen 下的 compile.sh 脚本进行代码编译,然后运行编译后生成的可执行文件 ./resnet。
可以分别获取到权值预加载前后的性能指标。


注意:不同电脑机器不同环境下测出来的性能会有差异,大家只需要比对性能提升的相对值即可。
可以看到和之前的几个优化相比,性能有点提升但不是很明显。
这是因为以下几个原因。
1 之前的代码和 codegen 生成的代码,在利用 g++ 进行编译时都开启了 -Ofast 优化,优化等级很高。编译器已经把很多无用的中间临时变量,分支预测和跳转给优化的很好了,所以 codegen 对于这些地方带来的优化提升并不明显。
2 细心的同学可能发现了,生成的代码和原来的逻辑是一样的,区别最大的地方就在于把原来的一些函数,比如co
本文评估了通过代码生成操作对模型性能的提升。虽然在某些情况下提升不明显,主要原因是编译器的高级优化以及生成代码与原有逻辑相似。然而,代码生成技术在TVM、MLIR等推理框架中被广泛应用,特别是在AI加速器硬件上,能够显著提高性能。推荐对TVM或MLIR感兴趣的人深入研究,以了解更多的优化可能性。
订阅专栏 解锁全文
174万+

被折叠的 条评论
为什么被折叠?



