Skip to content

鲲鹏920+昇腾300I Pro卡运行出错 No allocator found for the place, Place(npu:0) #75696

@yhz0120

Description

@yhz0120

请提出你的问题 Please ask your question

背景:paddle主仓库2.6分支适配、使用昇腾300I Pro卡,用于OCR功能
需求:cpp代码中 EnableCustomDevice("npu"),期待OCR可以使用NPU设备
工作环境:实体宿主机已安装Ascend 25.2.0 Driver + ubuntu2004容器内已安装Ascend 8.2.RC2 Toolkit
实际报错:cpp编译生成的二进制提示找不到npu设备,见下

terminate called after throwing an instance of 'phi::enforce::EnforceNotMet'
  what():  (NotFound) No allocator found for the place, Place(npu:0)
  [Hint: Expected iter != allocators.end(), but received iter == allocators.end().] (at /workdir/external/paddle/src/paddle/paddle/fluid/memory/allocation/allocator_facade.cc:347)

已做验证1:编译2.6分支代码时,可以确认cmake已启用了WITH_CUSTOM_DEVICE=ON选项
已做验证2:不添加 EnableCustomDevice("npu") 代码时,即使用cpu模式运行,OCR可以正常识别图片内的文本
已做验证3:验证容器内部可以正确使用npu设备,见下

1. pip 从阿里安装paddlepaddle 2.6.0 版本
2. 根据 https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/npu/README_cn.md 文档编译生成 paddle-custom-npu 安装包,并成功安装
3. 设置 ASCEND_RT_VISIBLE_DEVICES 相关环境变量后,python代码可以识别到npu设备,健康检查、推理工运行也ok

请协助支持cpp代码如何正确使用NPU设备,或者我使用的代码分支是否有误?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions