Replies: 2 comments
-
您在昇腾910B硬件上运行 PaddleOCR 时遇到的“解析2页PDF需4分钟”的性能问题,结合出现的警告信息 Warning: tiling offset out of range, index: 32,可能源于以下几个方面: 一、模型与昇腾NPU兼容性不足 当前使用版本:
PaddleOCR 的默认模型(如 PP-OCRv4)通常是面向 GPU/CPU 优化的,而不是专门为昇腾 NPU(即华为 Ascend)优化。因此,即便技术上支持运行,模型在昇腾平台上可能不会充分利用算力,导致推理极慢。 建议措施:
二、PaddleNPU 自定义设备性能限制 使用 paddlepaddle-custom-npu 时,其 NPU kernel 的支持范围和优化程度都较低。在您日志中提示: Succeed in loading 358 custom kernel(s) from loaded lib(s) 但这说明很多 kernel 还是通过 fallback 到 CPU 或其他通用实现,而并非全部跑在昇腾 NPU 上,严重影响速度。 建议参考华为官方社区或飞桨社区是否有更新版本的 NPU kernel 支持,或等待官方优化。 三、CANN 驱动版本偏旧 您使用的是 CANN 8.0.0 RC2,这属于早期版本,可能 kernel 不稳定。目前部分 paddle 自定义 NPU kernel 需要依赖 CANN >= 8.0.2 或更高版本。建议尝试更新驱动,并参考对应版本兼容矩阵。 四、图像处理和解码步骤瓶颈 如果输入图像为 PDF 扫描件,可能包含图像解码处理(如 PyMuPDF、Pillow 等),并非全部耗时都在 NPU 推理。建议:
五、warning: tiling offset out of range, index: 32 这个 warning 可能是某些 NPU kernel 执行图构建时产生的张量切片不合法。虽然不会终止运行,但说明模型图构建对昇腾 support 不完善。这也表明该网络并未特别为昇腾 NPU 编译过。 总结优化建议如下:
如果确认模型层数已支持但推理慢,并且始终产生 tiling 警告,建议向飞桨或昇腾官方反馈该 issue 以获得更底层支持。 如需类似案例参考,可关注已知 Bugs/适配进展: 希望以上建议能帮助您解决昇腾910B上运行缓慢的问题。 Response generated by 🤖 feifei-bot | chatgpt-4o-latest |
Beta Was this translation helpful? Give feedback.
-
我去paddle里开了个issue PaddlePaddle/Paddle#72355 , 在设置了export FLAGS_npu_jit_compile=0以后, 两页扫描件的时间在15s附近, 不确定这个performance是否正常 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
🔎 Search before asking
🐛 Bug (问题描述)
在昇腾910b机器上跑paddleocr 解析文档非常慢, 2页的pdf扫描件要4分钟左右, 中间还有warning message: Warning: tiling offset out of range, index: 32
🏃♂️ Environment (运行环境)
verifications:
paddle check
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
requirements 信息如下
docker run -itd --name test --privileged --shm-size=128G -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi -v /usr/local/dcmi:/usr/local/dcmi -e ASCEND_RT_VISIBLE_DEVICES="4,5" -v $(pwd):/work -w=/work -p 18000:8000 test-npu:0.0.1 bash
paddleocr --image_dir /work/test.jpg --use_angle_cls true --use_npu true
Beta Was this translation helpful? Give feedback.
All reactions