如何在飞桨 x 昆仑芯上部署PP-OCR模型 | 洞见AI硬件

部署”桨”坛栏目聚焦AI硬件部署,分享多款厂商硬件部署方案及教程,帮助开发者们实现模型训练与推理的一体化开发和多硬件设备间的无缝切换。

本期让我们将目光聚焦到飞桨与AI芯片公司——昆仑芯的适配合作。昆仑芯在实际业务场景中深耕AI加速领域已十余年,是一家在体系结构、芯片实现、软件系统和场景应用均有深厚积累的AI芯片企业。

自飞桨2.0版本之后,飞桨对昆仑芯一代XPU上的训练和推理已有较完善支持。本文以飞桨文字识别套件PaddleOCR中的PP-OCR模型为例,演示了如何使用昆仑芯AI加速卡进行部署的推理加速,开发者可参考下文中的详细步骤进行体验。

PP-OCR在昆仑芯上

部署示例

1.软硬件环境准备

  • CPU架构要求:x86、arm。比如:Intel、海光等

  • AI加速卡:昆仑芯一代AI加速卡 – K200

  • 操作系统要求:centos、ubuntu、kylin

  • 驱动要求:昆仑芯驱动3.8版本以上

  • Docker(建议版本):docker18.09

2.解决方案技术栈

本解决方案从上层到下层包含以下核心模块:

  • 飞桨文字识别套件PaddleOCR

  • 飞桨深度学习框架;飞桨服务化部署框架Paddle Serving

  • 基础环境与昆仑SDK环境

  • 系统层与底层硬件,其中包括昆仑芯K200 AI加速卡,一张K200包含两个计算单元

cc27253cf19cd1d4d511f3f920ade07f.png

如果没有输出,说明没有找到卡,可能pcie链路有问题。建议换插槽、重启机器,反复尝试,直到lspci有输出。

(2)确保runtime和驱动安装正常:因驱动需要跟客户目标机器内核版本完全对应,可以先通过如下命令检查内核版本,并把内核版本信息同步给昆仑芯接口人以便提供对应的runtime和驱动。

输出类似下图所示:

9339e626c73ed39514f0c70a679db5bd.png

上图显示,这台机器上有两个计算单元(pd),分别是/dev/xpu0和/dev/xpu1(K200有两个计算单元,K100有一个计算单元)。部分字段意义:

675c300131b24c1c62d45545640f434e.png

执行命令:

会输出类似如下图信息:

7e4ea6c66d88f13dafaf6cd3b9ff11b1.png
  • 基于昆仑XPU + Paddle Serving的PP-OCR服务化部署

(1)启动serving server:首先进入ocr_infer_paddle2.2_lite_multi_xpu_serving/PaddleOCR目录,执行

(2)查看serving 进程:

serving 正常启动,会看到如下进程信息:

如何在飞桨 x 昆仑芯上部署PP-OCR模型 | 洞见AI硬件

RPC Client发送请求的具体代码可参考脚本“pipeline_rpc_client.py”中内容:

若执行正常终端输出识别结果如下:

a53cab1eb1071b16b66750655447b99b.png

至此,飞桨PP-OCR模型已经可以在昆仑芯AI加速卡K200上运行。开发者也可以根据自己的应用需求,训练模型进行部署。

昆仑芯AI加速卡

K200介绍

采用昆仑芯1代芯片,256 TOPS@INT8 算力,HBM 16GB 高速显存,512GB/s 访存带宽可广泛支持自然语言处理、计算机视觉、语音以及传统机器学习等各类人工智能任务万片级别规模落地,并经过了互联网核心算法对稳定性、可用性、可靠性和鲁棒性的考验,业界领先。下图是K200参数介绍。

280dfc29410746db32f80ae15e84bf76.gif

关注公众号,获取更多技术内容~

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92163 人正在系统学习中

来源:飞桨PaddlePaddle

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月21日
下一篇 2021年11月21日

相关推荐