c++ onnx推理比python慢

用yolov7的onnx模型分别在c++和python上部署,c++要比python慢很多

使用 perf 工具配合 FlameGraph 工具看看比较耗时的操作都有哪些,把结果图发一下。

在C++和python里运行,都有相应的log日志吗?有的话根据日志分析一下哪块操作最耗时。

有几个问题,需要你确认下。
1.cpp和python的推理引擎是否一致?这点很重要,推理引擎不一样结果肯定不同。你不要跟我说一个是opencv,一个是onnxruntime,这肯定是onnxruntime快,人家专门干这个吃饭的。
2.都是cpu还是都是cuda?CPU的速度肯定赶不上GPU。
3.模型是否预热?也就是在模型推理之前先运行两三次之后开始正式计算?一般来说前几次会优化一些东西导致速度慢。
4.cpp下面debug模式还是release?release一般会比debug快上好几倍,这个时间差距很大。python你如果是进入debug运行,速度也慢

楼主的python是不是anaconda的?anaconda自带MKL,MKL会使用你的机器的所有cpu去推理,还是说你用python预测的时候用的是gpu去预测?
如果是cpu推理,那么大概率是因为python用了所有的核,而onnx用的是一个核,几十个干一个,肯定python赢。
如果是gpu推理,那就更不用说了,都不是同类比较,没有意义。

破案了,64位程序比32位快