使用ROCm将PP-OCRv5模型部署在AMD显卡上
ROCm™(Radeon Open Compute)是 AMD 推出的开源软件栈,旨在为 GPU 加速计算提供全面支持。它包含驱动程序、编译器、开发工具、库函数和 API,覆盖从底层内核开发到上层应用部署的完整开发流程,广泛适用于高性能计算(HPC)、人工智能(AI)和机器学习等领域。ROCm™ 特别针对生成式 AI 和 HPC 工作负载进行了深度优化,具备良好的生态系统兼容性和代码可移植性,能够
作者:AVNET 李鑫杰
上文介绍了《一键搞定!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
二,搭建ROCm™开发环境
首先,请克隆PP-OCRv5_AMD-ROCm到本地
git clone https://github.com/liebedir/PP-OCRv5-AMD-ROCmcd 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
然后,添加环境变量到~/.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模型并导出为onnx格式。
至此,模型和环境准备完成!
三,编写PP-OCRv5推理程序
PP-OCRv5-AMD-ROCm项目已将推理程序编写完成,各文件功能如下:
执行演示程序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
运行结果,如下图所示:
四,总结
使用AMD 的开发者可以通过ROCm™软件栈将PP-OCRv5模型部署到AMD的CPU、独立显卡或核显硬件平台上。
如果你有更好的文章,欢迎投稿!
稿件接收邮箱:nami.liu@pasuntech.com
更多精彩内容请关注“算力魔方®”!
更多推荐
所有评论(0)