Paddle Inference部署推理(七)

七:Paddle Inference推理 (python)API详解

6. 使用 IPU 进行预测

API定义如下:

复制代码
# 启用 IPU 进行预测
# 参数:ipu_device_num - 所需要的 IPU 个数
# 参数:ipu_micro_batch_size - 计算图输入的 batch size,用于根据输入 batch size 进行全图 Tensor shape 推导,仅在动态输入 batch size 的情况生效
# 参数:ipu_enable_pipelining - 使能 IPU 间数据流水
# 参数:ipu_batches_per_step - 在使能数据流水的条件下,指定每次跑多少 batch 的数据,如果关闭数据流水,该值应设置为 1
# 返回:None
paddle.inference.Config.enable_ipu(ipu_device_num = 1,
                                   ipu_micro_batch_size = 1,
                                   ipu_enable_pipelining = False,
                                   ipu_batches_per_step = 1)



# 配置 IPU 构图参数
# 参数:ipu_enable_fp16 - 使能 float16 模式,将 float32 计算图转换为 float16 计算图
# 参数:ipu_replica_num - 设置实例个数,举例 ipu_device_num = 2,表示单个实例需要 2 个 IPU 运行,设置ipu_replica_num = 8,表示总共有 8 个相同实例,所以总共需要 16 个 IPU
# 参数:ipu_available_memory_proportion - 设置 matmul / conv OP 可使用的内存比例,取值 (0.0, 1.0],比例越高,计算性能越好
# 参数:ipu_enable_half_partial - matmul OP 中间结果以 float16 存储于片上
# 参数:ipu_enable_model_runtime_executor - 使能model_runtime executor,设置为false时使用popart executor
# 返回:None
paddle.inference.Config.set_ipu_config(ipu_enable_fp16 = False,
                                       ipu_replica_num = 1,
                                       ipu_available_memory_proportion = 1.0,
                                       ipu_enable_half_partial = False,
                                       ipu_enable_model_runtime_executor = False)



# 配置 IPU Custom Ops 和 Patterns
# 参数:ipu_custom_ops_info - 设置 Paddle Op 和 IPU Custom Op 信息,需要给定 Paddle Op name,IPU Custom Op name,Op Domain 和 Op Version。例如:[["custom_relu", "Relu", "custom.ops", "1"]]
# 参数:ipu_custom_patterns - 开启或关闭特定 IPU pattern,需要给定 Pattern name 和 Pattern 状态。例如:{"AccumulatePriorityPattern", false}
# 返回:None
paddle.inference.Config.set_ipu_custom_info(ipu_custom_ops_info = None,
                                            ipu_custom_patterns = None)



# 从文件载入 IPU 配置信息
# 参数:config_path - 指定文件路径
# 返回:None
paddle.inference.Config.load_ipu_config(config_path)

代码示例:

复制代码
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer

# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")

# 启用 IPU,并设置单个实例所需要的 IPU 个数为 1
config.enable_ipu(1)

# 使能 float16 模式
config.set_ipu_config(True)
相关推荐
RoyLin2 小时前
沉睡三十年的标准:HTTP 402、生成式 UI 与智能体原生软件的时代
人工智能
needn4 小时前
TRAE为什么要发布SOLO版本?
人工智能·ai编程
毅航4 小时前
自然语言处理发展史:从规则、统计到深度学习
人工智能·后端
前端付豪4 小时前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
ursazoo4 小时前
写了一份 7000字指南,让 AI 帮我消化每天的信息流
人工智能·开源·github
_志哥_8 小时前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试
YongGit9 小时前
OpenClaw 本地 AI 助手完全指南:飞书接入 + 远程部署实战
人工智能
程序员鱼皮10 小时前
斯坦福大学竟然开了个 AI 编程课?!我已经学上了
人工智能·ai编程
星浩AI10 小时前
Skill 的核心要素与渐进式加载架构——如何设计一个生产可用的 Skill?
人工智能·agent
树獭非懒11 小时前
告别繁琐多端开发:DivKit 带你玩转 Server-Driven UI!
android·前端·人工智能