Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
sdcb opened this issue Jul 11, 2023 · 14 comments
Closed

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

sdcb opened this issue Jul 11, 2023 · 14 comments
Assignees
Labels
intel related needs investigation this issue needs investigation to either narrow down, or clarify status/close triaged this issue has been looked, and triaged.

Comments

@sdcb
Copy link
Contributor

sdcb commented Jul 11, 2023

注:这个问题是#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识别模型也正常。

@magicleo
Copy link

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

@yaomichael
Copy link

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

@sdcb
Copy link
Contributor Author

sdcb commented Jul 12, 2023

use_mkldnn=1

@yaomichael
Copy link

能试试=0的情况吗?

@yaomichael
Copy link

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

@sdcb
Copy link
Contributor Author

sdcb commented Jul 12, 2023

另外问个问题,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
Copy link
Contributor Author

sdcb commented Jul 12, 2023

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

@apple2333cream
Copy link

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

@sdcb
Copy link
Contributor Author

sdcb commented Aug 3, 2023

@apple2333cream 未公开发布。

Copy link
Contributor

github-actions bot commented Jan 3, 2024

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 github-actions bot added the stale label Jan 3, 2024
@sdcb
Copy link
Contributor Author

sdcb commented Jan 6, 2024

no, this issue was not fixed, please check.

@jcyrss
Copy link

jcyrss commented Jan 11, 2024

我遇到了一样的问题, 在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准确。

哎,感觉到处是坑。

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

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

@LLee233
Copy link

LLee233 commented May 13, 2024

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

@UserWangZz
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
intel related needs investigation this issue needs investigation to either narrow down, or clarify status/close triaged this issue has been looked, and triaged.
Projects
None yet
Development

No branches or pull requests

9 participants