MNN
MNN copied to clipboard
MNN 2.8.1 CPU耗时比ONNXRuntime多
平台: 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团队为什么会出现这种情况。
感谢!
- 编译 MNN 时打开 MNN_AVX512
- 看下线程数是否一样
- 编译 MNN 时打开 MNN_AVX512
- 看下线程数是否一样
非常感谢回答。 1.已经确认过是打开AVX512的 2.使用CPU时,两者CPU也均是全部占满的,共16核
MNN 并没有针对超多线程(>4)进一步优化。可以测试下单线程和4线程性能。
确实相关。但整体速度依然较慢,我在继续查下吧。
感谢