本节评估一下,通过代码生成操作之后,对于模型的性能提升。
评估下性能
在相同的环境下,分别运行 4th_no_malloc 和 5th_codegen 下的 compile.sh 脚本进行代码编译,然后运行编译后生成的可执行文件 ./resnet。
可以分别获取到权值预加载前后的性能指标。
注意:不同电脑机器不同环境下测出来的性能会有差异,大家只需要比对性能提升的相对值即可。
可以看到和之前的几个优化相比,性能有点提升但不是很明显。
这是因为以下几个原因。
1 之前的代码和 codegen 生成的代码,在利用 g++ 进行编译时都开启了 -Ofast 优化,优化等级很高。编译器已经把很多无用的中间临时变量,分支预测和跳转给优化的很好了,所以 codegen 对于这些地方带来的优化提升并不明显。
2 细心的同学可能发现了,生成的代码和原来的逻辑是一样的,区别最大的地方就在于把原来的一些函数,比如conv函数,拆成了很