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

2024-05-13 560 views
5

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

回答

6

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

4

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

8

use_mkldnn=1

8

能试试=0的情况吗?

2

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

7

另外问个问题,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核虚拟机测试)

2

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

1

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

3

@apple2333cream 未公开发布。

7

no, this issue was not fixed, please check.

2

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

哎,感觉到处是坑。

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

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