目 录
使用ROCm将PP-OCRv5模型部署在AMD显卡上 1
1.1 ROCm™工具套件简介 1
1.2 搭建ROCm开发环境 1
1.3 编写PP-OCRv5推理程序 5
1.4 总结 6
使用ROCm将PP-OCRv5模型部署在AMD显卡上
上文介绍了《一键搞定!PP-OCRv5模型转ONNX格式全攻略》,本文将使用ROCm™在AMD® CPU、独立显卡、集成显卡上优化并部署__飞桨PP-OCRv5__模型。
ROCm™工具套件简介
ROCm™(Radeon Open Compute)是 AMD 推出的开源软件栈,旨在为 GPU 加速计算提供全面支持。它包含驱动程序、编译器、开发工具、库函数和 API,覆盖从底层内核开发到上层应用部署的完整开发流程,广泛适用于高性能计算(HPC)、人工智能(AI)和机器学习等领域。
ROCm 特别针对生成式 AI 和 HPC 工作负载进行了深度优化,具备良好的生态系统兼容性和代码可移植性,能够帮助开发者快速将基于 CUDA 等平台的现有项目迁移至 AMD 平台。无论是以卷积神经网络(CNN)为核心的预测式 AI 模型(Predictive AI),还是以 Transformer 架构为主的生成式 AI 模型(Generative AI),ROCm 均提供了高效的运行支持。
此外,ROCm 不仅支持 AMD Radeon 独立显卡(dGPU),还兼容集成在部分 AMD CPU 中的核显(iGPU),使得开发者能够在多样化的硬件环境中灵活部署 AI 模型,实现本地化高效推理与训练
下表展示PP-OCRv5 Server版模型,经过ROCm™优化后,在AMD HX370上运行的性能。性能测试代码和的图片来自于开源项目:
https://github\.com/liebedir/PP-OCRv5-AMD-ROCm
测试平台
OS: Ubuntu 22.04.1 LTS; CPU: AMD HX370; Model: PP-OCRv5-Server
推理方式
ONNXRuntime
CPUExecutionProvider
ONNXRuntime
ROCmExecutionProvider
模型格式
*.onnx
*.onnx
推理时间
![ROCm性能对比]
![测试平台]
![ROCm架构]
(/images/cases/ROCm部署PP-OCRv5到AMD/图片3.png)(/images/cases/ROCm部署PP-OCRv5到AMD/图片2.png)(/images/cases/ROCm部署PP-OCRv5到AMD/图片1.png)
2.55s
1.88s
复现方式
https://github\.com/liebedir/PP-OCRv5-AMD-ROCm
搭建ROCm开发环境
首先,请克隆PP-OCRv5_AMD-ROCm到本地:
git clone https://github\.com/liebedir/PP-OCRv5-AMD-ROCm

cd PP-OCRv5-AMD-ROCm
接着,安装ROCm:
wget https://repo.radeon.com/amdgpu-install/6.4.3/ubuntu/jammy/amdgpu-install_6.4.60403-1_all.deb
sudo apt install ./amdgpu-install_6.4.60403-1_all.deb
sudo apt update
sudo apt install “linux-headers-$(uname -r)” “linux-modules-extra-$(uname -r)”
sudo apt install amdgpu-dkms
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
sudo apt install rocm
![安装ROCm]
![配置环境变量]
(/images/cases/ROCm部署PP-OCRv5到AMD/图片7.png)(/images/cases/ROCm部署PP-OCRv5到AMD/图片6.png)
然后,添加环境变量到~/.bashrc,该环境变量与核显的架构相关,11.0.0适用于RDNA3架构核显,其他架构请参考https://github\.com/liebedir/PP-OCRv5-AMD-ROCm:
vi ~/.bashrc
export HSA_OVERRIDE_GFX_VERSION=11.0.0

最后,重启计算机。
完成计算机重启后,创建python虚拟环境并安装onnxruntime-rocm
conda create -n ocr-rocm python==3.10
pip3 install onnxruntime-rocm
-f https://repo.radeon.com/rocm/manylinux/rocm-rel-6.4.2/
至此,模型和环境准备完成!
编写PP-OCRv5推理程序
PP-OCRv5-AMD-ROCm项目已将推理程序编写完成,各文件功能如下:
文件名
功能
predict_base.py
载入并编译模型到指定硬件设备
predict_cls.py
方向分类模型的预处理和推理
predict_det.py
检测模型的预处理和推理
predict_rec.py
识别模型的预处理和推理
predict_system.py
PP-OCRv5模型的预处理和推理工作流水线
cls_postprocess.py
方向分类模型的后处理
det_postprocess.py
检测模型的后处理
rec_postprocess.py
识别模型的后处理
imaug.py
图像增强函数
utils.py
工具函数和预设参数
执行演示程序main.py,并指定模型路径和推理硬件设备:
python main.py —image_dir images/paddleocr_structure.png \
—det_model_dir ../PP-OCRv5_server_det_infer/inference.onnx \
—det_model_device GPU \
—rec_model_dir ../PP-OCRv5_server_rec_infer/inference.onnx \
—rec_model_device GPU
运行结果,如下图所示:
![运行结果]
(/images/cases/ROCm部署PP-OCRv5到AMD/图片11.png)
总结
使用AMD 的开发者可以通过ROCm软件栈将PP-OCRv5模型部署到AMD的CPU、独立显卡或核显硬件平台上。