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)
相关推荐
IT_陈寒7 分钟前
SpringBoot自动配置坑了我一周,原来问题这么蠢!
前端·人工智能·后端
糯米导航20 分钟前
实践教程|搭建电商 AI 无限画布,实现百款商品主图自动化批量生成
运维·人工智能·自动化
朴马丁1 小时前
从制造到智造:PLM如何赋能企业研发创新
大数据·运维·人工智能·食品行业·流程行业plm·化工新材料行业·新能源材料行业
武子康1 小时前
GAIA、Cosmos、Genie 等视频模型纷纷自称"世界模型",为什么说视觉逼真度不构成决策证据?
人工智能·llm·agent
上海锝秉工控1 小时前
普通编码器:基础信号处理与数据转换核心岗
人工智能·信号处理
chenyuhao20241 小时前
第一章_自动驾驶中的社会交互
人工智能·机器学习·自动驾驶
洛阳泰山1 小时前
别再为做 AI 去学 Python 了!MaxKB4j:纯 Java 造的企业级 RAG + 工作流引擎,开箱即用
人工智能·开源·agent
fthux2 小时前
GitZip Pro:给GitHub仓库“瘦身”的魔法剪刀手
人工智能·chrome·ai·语言模型·开源·github·open source
武子康2 小时前
Video VAE 不是末端编解码器:5 维-潜网格-主模型 Token 的“表示合同“
人工智能·llm·agent
Sunlly2 小时前
Transcript 不是 Context:用五组实验拆解 OpenClaw 的上下文生命周期
人工智能