PaddleOCR icon indicating copy to clipboard operation
PaddleOCR copied to clipboard

PaddleOCR v4模型使用Mkldnn在非AVX512 CPU上变得非常慢

Open sdcb opened this issue 1 year ago • 13 comments

注:这个问题是https://github.com/PaddlePaddle/PaddleOCR/issues/10337 的重开,它未得到解决或解答,且被关闭了,这个问题和PaddleInference 2.5准确率下降的问题是不同的问题。

  • 系统环境/System Environment:Windows 10
  • Paddle: 2.5.0/2.4.2 with mkldnn
  • PaddleOCR: ppocr-v4 识别模型

AVX512 CPU上速度正常,速度大约是1.3s 在其它CPU上奇慢无比,速度大约是60秒~100秒 (虚拟机CPU都是4核)

LFOV6P1M3% Z@$(DB5TM7HB

使用Openblas或者Onnx速度都正常,使用ppocr-v3识别模型也正常。

sdcb avatar Jul 11 '23 06:07 sdcb

已经有V4模型了?请问模型地址在哪?

magicleo avatar Jul 12 '23 06:07 magicleo

请问部署的时候,Flags_use_mkldnn 是保持为0(缺省值)吗?

yaomichael avatar Jul 12 '23 06:07 yaomichael

use_mkldnn=1

sdcb avatar Jul 12 '23 06:07 sdcb

能试试=0的情况吗?

yaomichael avatar Jul 12 '23 07:07 yaomichael

另外问个问题,use_mkldnn=1,但是pcrv3的话,速度也是正常的(1-2s)? 换句话说PCRv4和v3的差别就能导致这个性能降级?

yaomichael avatar Jul 12 '23 08:07 yaomichael

另外问个问题,use_mkldnn=1,但是pcrv3的话,速度也是正常的(1-2s)? 换句话说PCRv4和v3的差别就能导致这个性能降级?

对的,在我另一台电脑上(CPU i9-9880h),基于v4模型,使用openblas性能很快(8秒),使用onnx性能很快(2秒),使用mkldnn性能很慢(33秒),使用gpu性能也很快(0.1秒-使用3080ti) 同时如果使用v3模型和mkldnn,性能也很快(0.5秒) 如果基于v4和mkldnn,且CPU支持AVX512F,则性能回归很快(如上面的示例,1.3s vs 95s,基于Azure 4核虚拟机测试)

sdcb avatar Jul 12 '23 11:07 sdcb

换言之,这个问题和ppocr-v4、mkldnn、AVX512F同时相关。

sdcb avatar Jul 12 '23 11:07 sdcb

ppocr-v4识别模型能下载了吗,请问有下载地址吗?

apple2333cream avatar Aug 03 '23 00:08 apple2333cream

@apple2333cream 未公开发布。

sdcb avatar Aug 03 '23 08:08 sdcb

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Jan 03 '24 02:01 github-actions[bot]

no, this issue was not fixed, please check.

sdcb avatar Jan 06 '24 15:01 sdcb

我遇到了一样的问题, 在Python解释器(3.10),PaddlePaddle(2.5.2), PaddleOCR(2.7.0.3) 版本一样的情况下,同样的一张图, 都使用ch_PP-OCRv4 ,enable_mkldnn=True

在我的一个AMD 7840U(支持 AVX-512) 笔记本上识别速度是 0.2秒, 而在另一个AMD 5600U(不支持 AVX-512) 笔记本上识别速度是 13秒, 如果改为 ch_PP-OCRv3, 则为0.3秒左右

enable_mkldnn=False差别不大,都是2-3秒左右。

假定这个问题确实是由CPU是否支持AVX-512造成的, 我查了一下 消费级CPU, Intel 自从 2019年9月发布的 10代酷睿就支持了。 AMD则比较晚,2023年的 Zen 4 才支持。

是不是百度测试团队用的都是 Intel的CPU?

为兼容用户使用的老电脑,我退回使用ch_PP-OCRv3,但是版本3好像又有enable_mkldnn=True时,预测不准确的问题

我只能退回使用ch_PP-OCRv2,但是v2识别确实不如v4准确。

哎,感觉到处是坑。

百度做这个产品的到底有没有靠谱的测试团队啊?

我非常感谢百度免费分享这样的产品,但是不测试好就发布出来,这。。。。。

jcyrss avatar Jan 11 '24 12:01 jcyrss

@sdcb Hi, 请问你在进行推理的时候是否都是用的官方推理库?我们这边check了一下,发现官方的推理库都是用带avx512的机器生成的。在这种情况下,如果在非avx512机器上用官方推理库,可能就会导致这种情况,类似#11597。针对这个issue我们已经提了PR,等merge之后应该就能解决了。

LLee233 avatar May 13 '24 08:05 LLee233

该issue长时间未更新,暂将此issue关闭,如有需要可重新开启。

UserWangZz avatar May 16 '24 02:05 UserWangZz