MNN icon indicating copy to clipboard operation
MNN copied to clipboard

MNN 2.8.1 CPU耗时比ONNXRuntime多

Open Zekegao opened this issue 1 year ago • 2 comments

平台: x86

CPU: Intel® Xeon(R) CPU E5-2620 v4 @ 2.10GHz × 16

Github版本: 2.8.1

编译方式:

g++ (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
-- MNN BUILD INFO:
-- 	System: Linux
-- 	Processor: x86_64
-- 	Version: 2.8.1
-- 	Metal: OFF
-- 	OpenCL: ON
-- 	OpenGL: OFF
-- 	Vulkan: OFF
-- 	ARM82: OFF
-- 	oneDNN: OFF
-- 	TensorRT: OFF
-- 	CoreML: OFF
-- 	NNAPI: OFF
-- 	CUDA: OFF
-- 	OpenMP: OFF
-- 	BF16: 
-- 	ThreadPool: ON
-- 	Hidden: TRUE
-- 	CUDA PROFILE: OFF
-- WIN_USE_ASM: 
-- x86_64: Open SSE
-- MNN_AVX512:ON

问题描述:

测试unimatch模型在x86中的耗时过程中,发现在CPU上,使用MNN推理,要比ONNXRuntime慢一倍多。 确认了均没有在GPU上运行

  • ONNX2MNN命令: --optimizeLevel=1 --optimizePrefer=2 --fp16
  • MNN平均约:2.5s
  • ONNXRUNTIME平均约:1.2s
  • ONNXRUNTIME版本:1.16.3
  • 模型是https://github.com/fateshelled/unimatch_onnx 中的gmstereo-scale2-resumeflowthings-sceneflow-48020649_1x3x480x640_sim.onnx

请教下MNN团队为什么会出现这种情况。

感谢!

Zekegao avatar Jan 30 '24 09:01 Zekegao

  1. 编译 MNN 时打开 MNN_AVX512
  2. 看下线程数是否一样

jxt1234 avatar Feb 05 '24 02:02 jxt1234

  1. 编译 MNN 时打开 MNN_AVX512
  2. 看下线程数是否一样

非常感谢回答。 1.已经确认过是打开AVX512的 2.使用CPU时,两者CPU也均是全部占满的,共16核

Zekegao avatar Feb 06 '24 08:02 Zekegao

MNN 并没有针对超多线程(>4)进一步优化。可以测试下单线程和4线程性能。

jxt1234 avatar Mar 15 '24 02:03 jxt1234

xx 确实相关。但整体速度依然较慢,我在继续查下吧。 感谢

Zekegao avatar Mar 20 '24 10:03 Zekegao