linux x86_64 平台, 多线程情况下, mnn 和推理速度不如 onnx,有可能是什么原因?
- MNN 版本:MNN-2.9.0
- 平台:linux x86_64, Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
- 使用 工程中 release.sh 编译 pymnn
- 开启的编译选项
CMAKE_ARGS="-DMNN_BUILD_CONVERTER=on -DMNN_BUILD_TRAIN=ON -DCMAKE_BUILD_TYPE=Release -DMNN_BUILD_SHARED_LIBS=OFF -DMNN_SEP_BUILD=OFF -DMNN_USE_THREAD_POOL=OFF -DMNN_OPENMP=ON -DMNN_BUILD_OPENCV=ON -DMNN_IMGCODECS=ON -DMNN_BUILD_TORCH=ON -DMNN_VULKAN=ON -DMNN_AVX512=ON -DMNN_BUILD_DEMO=ON -DMNN_BUILD_BENCHMARK=ON MNN_-DAVX512_VNNI=ON"
多线程情况下(thread_num>=2时), mnn 和推理速度不如 onnx,有可能是什么原因?
| onnx_inference_cost(s) | mnn_inference_cost(s) | thread_num |
|---|---|---|
| 0.50s | 0.47s | 1 |
| 0.29s | 0.31s | 2 |
| 0.24s | 0.28s | 3 |
| 0.19s | 0.22s | 4 |
相关模型发一下吧,有可能是 featuremap 尺寸较小。不利于 mnn 并行。AVX512 上多线程并行需要以 48 * numberThread 的 featuremap 尺寸
@jxt1234 你好,这个模型:已发送至邮箱 [email protected]
改用 openMP 线程池试试。 https://github.com/alibaba/MNN/issues/2854
@jxt1234 你好,编译 pymnn 时,已设置为关闭内部线程池,开启
OPENMP -DMNN_USE_THREAD_POOL=OFF -DMNN_OPENMP=ON
Marking as stale. No activity in 60 days.