
PaddleOCR 昆仑 XPU 部署指南基于 PaddlePaddle 的 R200/R300 环境安装与验证全流程【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR昆仑 XPUKunlun Xin Processing Unit是面向 AI 计算场景的高性能处理器PaddleOCR 已支持昆仑 R200/R300 等芯片用户可以在 XPU 设备上完成 OCR 模型的训练与推理。本文基于 paddlepaddle_install_XPU.en.md 展开系统讲解从 Docker 开发环境准备、PaddlePaddle XPU 版安装到环境验证的完整流程并结合仓库源码说明设备切换机制与注意事项。读完本文你将掌握在 X86 与 ARM麒麟两种架构下快速搭建昆仑 XPU 深度学习环境并让 PaddleOCR 在 XPU 上运行的基本能力。1. 支持范围与整体思路PaddleOCR 目前支持昆仑R200 / R300等芯片。考虑到不同服务器环境驱动、固件、系统库差异较大官方强烈推荐使用飞桨官方发布的昆仑 XPU 开发镜像作为基础环境该镜像已经预装了昆仑基础运行环境库XRE即 Kunlun Runtime Environment可以规避大量底层环境兼容性问题。整体安装路径如下拉取昆仑 XPU 开发镜像并启动容器镜像不包含预编译的飞桨安装包仅提供开发环境在容器内通过 pip 安装对应架构的 PaddlePaddle XPU wheel 包运行paddle.utils.run_check()验证飞桨与 XPU 是否就绪安装 PaddleOCR 并切换到 XPU 设备运行。需要注意的是本文档介绍的是基于飞桨PaddlePaddle框架的安装与使用方式如果你计划使用其他推理引擎如 TensorRT、ONNX Runtime 等请参考对应引擎的官方安装与配置文档。2. Docker 环境准备2.1 拉取开发镜像根据宿主机的 CPU 架构选择对应镜像镜像仓库统一为registry.baidubce.com/device/paddle-xpu# X86 架构 docker pull registry.baidubce.com/device/paddle-xpu:ubuntu20-x86_64-gcc84-py310 # ARM 架构麒麟 V10 操作系统 docker pull registry.baidubce.com/device/paddle-xpu:kylinv10-aarch64-gcc82-py310两个镜像的差异主要体现在三个方面基础系统X86 镜像基于 Ubuntu 20.04ARM 镜像基于麒麟 V10Kylin V10后者面向国产化服务器场景编译器分别为 gcc84 与 gcc82Python 版本两者均为 Python 3.10。从仓库的 TIPC 测试脚本 test_tipc/test_train_inference_python_xpu.sh 中可以看到XPU 后端此前长期基于 Python 3.9 运行脚本中有python has been updated to version 3.9 for xpu backend的注释而当前开发镜像已将 Python 升级到 3.10这也是 wheel 包按cp310提供的原因。2.2 启动容器参考如下命令启动容器按需修改--name等参数docker run -it --namexxx -m 81920M --memory-swap81920M \ --shm-size128G --privileged --nethost \ -v $(pwd):/workspace -w /workspace \ registry.baidubce.com/device/paddle-xpu:$(uname -m)-py310 bash各关键参数说明参数含义与建议-it以交互模式进入容器终端便于后续执行安装与验证命令--namexxx为容器命名便于后续docker start/exec管理-m 81920M --memory-swap81920M限制容器内存为 80GB 且不启用 swapXPU 训练大模型时需保证充足内存--shm-size128G扩大/dev/shm共享内存多进程数据加载DataLoader依赖共享内存过小会报 shared memory 错误--privileged特权模式XPU 设备驱动访问需要宿主机设备与内核模块透传--nethost使用宿主机网络避免端口映射问题-v $(pwd):/workspace -w /workspace将当前目录挂载到容器/workspace并设为工作目录便于读写代码与模型$(uname -m)-py310按宿主机架构动态选择镜像 tagx86_64或aarch64注意镜像实际的完整 tag 名称是ubuntu20-x86_64-gcc84-py310与kylinv10-aarch64-gcc82-py310若$(uname -m)-py310方式拉取失败请直接使用 2.1 节中的完整镜像名。3. 安装 PaddlePaddle XPU 版3.1 pip 安装 wheel 包当前官方提供Python 3.10的 wheel 安装包。如果你需要其他 Python 版本可以参照飞桨官方文档自行编译安装XPU 版飞桨需要带有 XPU 编译选项的定制构建。按宿主机架构选择对应安装包# X86 架构 pip install https://paddle-whl.bj.bcebos.com/paddlex/xpu/paddlepaddle_xpu-2.6.1-cp310-cp310-linux_x86_64.whl # ARM 架构 pip install https://paddle-whl.bj.bcebos.com/paddlex/xpu/paddlepaddle_xpu-2.6.1-cp310-cp310-linux_aarch64.whl安装包信息速览字段值飞桨版本2.6.1Python 版本cp310Python 3.10平台linux_x86_64 / linux_aarch64安装方式pip 直接安装远程 wheel无需手动下载3.2 验证安装安装完成后运行以下命令验证飞桨与 XPU 设备是否工作正常python -c import paddle; paddle.utils.run_check()预期输出PaddlePaddle is installed successfully! Lets start deep learning with PaddlePaddle now.看到该输出即说明飞桨 XPU 版安装成功底层 XPU 设备已可以被飞桨正常调用。4. 安装 PaddleOCRXPU 环境就绪后接下来安装 PaddleOCR 本体即安装paddleocrPython 包建议在容器内执行python -m pip install paddleocr如需从源码运行例如使用仓库中的训练/推理脚本与配置可先克隆仓库再安装依赖git clone https://github.com/PaddlePaddle/PaddleOCR cd PaddleOCR python -m pip install -r requirements.txt更完整的安装选项如paddleocr[all]全量依赖可参考 PaddleOCR 安装教程。5. 在 XPU 上使用 PaddleOCR安装完成后PaddleOCR 在 XPU 上的训练与推理方式与 GPU 基本一致只需要把设备参数从 GPU 切换为 XPU 即可。5.1 命令行快速推理# 默认使用 PP-OCRv5 模型--device 指定为 xpu:0 paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --device xpu:0其中--device参数支持cpu、gpu、npu、xpu及带编号的形式如xpu:0在 paddleocr/_common_args.py 中统一解析并透传给底层推理引擎。更多 OCR 产线使用说明见 通用 OCR 产线使用教程。5.2 Python 代码推理from paddleocr import PaddleOCR ocr PaddleOCR(devicexpu:0) result ocr.predict(./general_ocr_002.png) for res in result: res.print() res.save_to_img(output) res.save_to_json(output)5.3 模型微调训练XPU若对预训练模型效果不满意可基于仓库训练脚本在 XPU 上进行微调。参考多硬件使用指南 multi_devices_use_guide.md 中的 XPU 微调示例export FLAGS_use_stride_kernel0 export BKCL_FORCE_SYNC1 export BKCL_TIMEOUT1800 export XPU_BLACK_LISTpad3d,pad3d_grad python3 -m paddle.distributed.launch --devices 0,1,2,3 \ tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_mobile_rec.yml \ -o Global.use_gpuFalse Global.use_xpuTrue其中BKCL_FORCE_SYNC1强制 BKCL百度昆仑通信库同步执行保证多卡通信结果一致BKCL_TIMEOUT1800设置 BKCL 通信超时时间秒避免多卡训练偶发卡死XPU_BLACK_LISTpad3d,pad3d_grad将pad3d及其反向算子加入黑名单改用 CPU 实现规避部分算子在高精度场景下的数值问题Global.use_xpuTrue在配置中显式启用 XPU 设备。6. 源码层面的设备支持机制从仓库源码可以进一步印证 XPU 支持的具体实现方式1设备互斥与编译检查在 tools/program.py 的check_device()函数中训练/评估入口会对各设备开关做互斥与可用性校验。当use_gpu与use_xpu同时为真时会报错提示当设置use_xpuTrue但当前飞桨并非 XPU 编译版时paddle.device.is_compiled_with_xpu()返回 False会提示用户安装 XPU 版飞桨或改回 CPU 运行——这正对应了本文第 3 节必须安装paddlepaddle_xpuwheel 包的原因。2设备选择逻辑在 tools/program.py 中训练脚本会依次读取Global.use_gpu / use_xpu / use_npu / use_mlu等配置项并根据优先级构造device xpu:{0}.format(os.getenv(FLAGS_selected_xpus, 0))即默认使用xpu:0也可通过环境变量FLAGS_selected_xpus指定具体卡号。3TIPC 自动化验证仓库提供了 XPU 专用的端到端测试脚本 test_tipc/test_train_inference_python_xpu.sh脚本会将 TIPC 配置中的use_gpu批量替换为use_xpu、关闭 MKLDNN 与 benchmarkAutoLog 依赖 nvidia-smi并针对rec_r31_sar、rec_mtb_nrtr等模型调整 epoch 与卡数配置最终复用test_tipc/test_train_inference_python.sh完成 XPU 上的训练与推理回归验证。7. 常见问题与注意事项PaddlePaddle is installed successfully未出现多为 XPU 驱动/XRE 未正确加载确认容器以--privileged启动且宿主机已安装对应版本的昆仑驱动与 XRE 库开发镜像默认已包含。报错 your paddle is not compiled with xpu说明当前安装的是 CPU 版飞桨需要按第 3 节重新安装 XPU 版 wheel 包并在配置中将use_xpu置为 True。多卡训练卡死或结果不一致检查是否设置了BKCL_FORCE_SYNC1与合理的BKCL_TIMEOUT值。精度异常可尝试将pad3d、pad3d_grad等算子加入XPU_BLACK_LIST强制回退到 CPU 实现如需其他 Python 版本请参考飞桨官方文档自行编译 XPU 版安装包。以上即昆仑 XPU 上搭建 PaddleOCR 环境并完成验证的完整流程。安装完成后PaddleOCR 的检测、识别、文档解析等能力均可通过--device xpu:0或代码中的devicexpu:0无缝切换到昆仑芯片上运行。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考