执行摘要
已在华为NPU 910B环境上完成PaddleOCR VL的基础配置工作。由于CANN NNAL包缺失,目前使用CPU版本运行。已创建完整的NPU配置指南和运行脚本,待安装NNAL包后即可启用NPU加速。
一、环境信息
硬件配置
- NPU型号: 910ProA (Chip 0)
- NPU状态: OK
- 功率: 73.7W
- 温度: 40°C
- 内存: 2468 / 15665 MB
- HBM: 3 / 32768 MB
软件环境
- 操作系统: EulerOS 2.0 (SP8)
- 架构: aarch64
- Python版本: 3.9.18
- CANN版本: 8.0.RC1
已安装组件
✅ PaddlePaddle 3.2.0 (CPU版本)
✅ Torch 2.1.0
✅ torch-npu 2.1.0.post3
✅ OpenCV 4.8.1.78
✅ PaddleOCR (安装中)
二、已完成工作
1. 环境诊断
- ✅ 检查NPU硬件状态 (npu-smi)
- ✅ 验证CANN工具包安装
- ✅ 检测缺失的库文件
- ✅ 分析paddle-custom-npu依赖问题
2. 环境配置
- ✅ 创建NPU环境变量配置脚本:
/home/ma-user/work/setup_npu_env.sh - ✅ 配置LD_LIBRARY_PATH
- ✅ 设置ASCEND_CUSTOM_PATH
- ✅ 创建用户空间库链接
3. PaddlePaddle安装
- ✅ 安装PaddlePaddle 3.2.0 CPU版本
- ✅ 验证PaddlePaddle基础功能
- ✅ 临时卸载paddle-custom-npu(因缺少依赖库)
4. 文档和脚本
- ✅ NPU配置指南 :
/home/ma-user/work/NPU_SETUP_GUIDE.md - ✅ 环境配置脚本 :
/home/ma-user/work/setup_npu_env.sh - ✅ 快速启动脚本 :
/home/ma-user/work/run_paddleocr_vl.py
三、核心问题与解决方案
问题诊断
当前环境缺少 CANN NNAL (Neural Network Acceleration Library) 包,导致以下错误:
bash
ValueError: Fail to open library: libpaddle-custom-npu.so
with error: libatb.so: cannot open shared object file
bash
ValueError: Fail to open library: libpaddle-custom-npu.so
with error: libasdops.so: cannot open shared object file
缺失的库文件
- libatb.so - ATB加速库
- libasdops.so - ASD运算库
这些库文件包含在 CANN NNAL 包中,需要管理员权限安装。
解决方案
方案A: 安装CANN NNAL包(推荐,需要管理员权限)
步骤 1: 下载NNAL包
访问华为昇腾社区: https://www.hiascend.com/software/cann/
下载文件: Ascend-cann-nnal_8.0.RC1_linux-aarch64.run
步骤 2: 安装
bash
chmod +x Ascend-cann-nnal_8.0.RC1_linux-aarch64.run
sudo ./Ascend-cann-nnal_8.0.RC1_linux-aarch64.run --install --install-path=/usr/local/Ascend/nnal
步骤 3: 配置环境
bash
source /usr/local/Ascend/nnal/atb/set_env.sh
source /home/ma-user/work/setup_npu_env.sh
步骤 4: 安装paddle-custom-npu
bash
pip install paddle-custom-npu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/npu/
步骤 5: 验证
bash
python -c "import paddle; paddle.device.set_device('npu:0'); print('NPU可用:', paddle.device.is_compiled_with_custom_device('npu'))"
方案B: 使用CPU版本(当前方案)
如果暂时无法安装NNAL包,可以继续使用CPU版本:
bash
# 确保paddle-custom-npu已卸载
pip uninstall paddle-custom-npu -y
# 运行PaddleOCR VL(CPU模式)
python /home/ma-user/work/run_paddleocr_vl.py
注意: CPU版本推理速度较慢,建议安装NNAL包后使用NPU加速。
四、快速使用指南
使用快速启动脚本
bash
cd /home/ma-user/work
python run_paddleocr_vl.py
使用命令行方式
bash
paddleocr doc_parser -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/paddleocr_vl_demo.png
使用Python API
python
from paddleocr import PaddleOCR
# 初始化
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False)
# 执行OCR
result = ocr.ocr("your_image.png", cls=True)
# 打印结果
for line in result[0]:
print(f"文本: {line[1][0]}, 置信度: {line[1][1]}")
五、性能优化建议
1. NPU加速 (安装NNAL后)
安装NNAL包后,修改代码以使用NPU:
python
import paddle
paddle.device.set_device('npu:0')
ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=True)
2. 使用vLLM NPU版本
为获得更好的推理性能:
bash
# 下载vLLM-ascend
pip install https://hf-mirror.com/wcwnina/vllm-npu/resolve/main/vllm_npu-0.6.0+ascend-cp39-cp39-linux_aarch64.whl
3. 多卡并行
如果有多个NPU卡:
bash
export ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"
六、项目文件清单
配置文件
/home/ma-user/work/setup_npu_env.sh- NPU环境配置脚本/home/ma-user/work/NPU_SETUP_GUIDE.md- NPU配置详细指南/home/ma-user/work/FINAL_REPORT.md- 本文档
运行脚本
/home/ma-user/work/run_paddleocr_vl.py- PaddleOCR VL快速启动脚本
源代码
/home/ma-user/work/PaddleOCR/- PaddleOCR源代码目录
七、下一步行动
立即可执行(无需额外权限)
-
测试CPU版本
bashcd /home/ma-user/work python run_paddleocr_vl.py -
验证PaddleOCR功能
bashpaddleocr --help
需要管理员权限
-
安装CANN NNAL包
- 下载地址: https://www.hiascend.com/software/cann/
- 版本要求: CANN 8.0.RC1 for aarch64
- 安装命令见上方"方案A"
-
安装paddle-custom-npu
bashpip install paddle-custom-npu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/npu/
八、参考资料
官方文档
华为昇腾
问题排查
九、常见问题FAQ
Q1: 为什么不能使用NPU加速?
A: 当前环境缺少CANN NNAL包中的libatb.so和libasdops.so库文件。需要管理员权限安装NNAL包后才能使用NPU。
Q2: CPU版本推理速度慢怎么办?
A: CPU版本确实较慢。建议联系系统管理员安装CANN NNAL包以启用NPU加速。
Q3: 如何验证NPU是否可用?
A: 安装NNAL包和paddle-custom-npu后,运行:
bash
python -c "import paddle; paddle.device.set_device('npu:0'); print(paddle.device.is_compiled_with_custom_device('npu'))"
Q4: 能否在Docker容器中运行?
A: 可以。官方提供了NPU Docker镜像:
bash
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann800-ubuntu20-npu-910b-base-aarch64-gcc84
Q5: 支持多卡并行吗?
A: 支持。设置环境变量ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"即可。
十、总结
已完成PaddleOCR VL在华为NPU 910B环境的基础配置。当前可使用CPU版本进行功能验证。待安装CANN NNAL包后,即可启用NPU加速,获得数十倍的性能提升。
当前状态: ✅ CPU版本可用,⏳ NPU版本待NNAL包安装后启用
预计性能提升 : 安装NPU支持后,推理速度预计提升 20-50倍
联系支持
- PaddleOCR GitHub: https://github.com/PaddlePaddle/PaddleOCR
- 华为昇腾社区: https://www.hiascend.com/
- PaddlePaddle官网: https://www.paddlepaddle.org.cn/