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)
相关推荐
nuise_9 分钟前
朴素贝叶斯法
人工智能·机器学习·概率论
ehiway27 分钟前
FPGA+GPU+CPU国产化人工智能平台
人工智能·fpga开发·硬件工程·国产化
天天爱吃肉821830 分钟前
碳化硅(SiC)功率器件:新能源汽车的“心脏”革命与技术突围
大数据·人工智能
萧鼎1 小时前
利用 OpenCV 进行棋盘检测与透视变换
人工智能·opencv·计算机视觉
神秘的土鸡1 小时前
使用Open WebUI下载的模型文件(Model)默认存放在哪里?
人工智能·llama·ollama·openwebui
梦里是谁N2 小时前
【deepseek之我问】如何把AI技术与教育相结合,适龄教育,九年义务教育,以及大学教育,更着重英语学习。如何结合,给出观点。结合最新智能体Deepseek
人工智能·学习
小白狮ww2 小时前
国产超强开源大语言模型 DeepSeek-R1-70B 一键部署教程
人工智能·深度学习·机器学习·语言模型·自然语言处理·开源·deepseek
风口猪炒股指标2 小时前
想象一个AI保姆机器人使用场景分析
人工智能·机器人·deepseek·深度思考
Blankspace空白2 小时前
【小白学AI系列】NLP 核心知识点(八)多头自注意力机制
人工智能·自然语言处理
Sodas(填坑中....)3 小时前
SVM对偶问题
人工智能·机器学习·支持向量机·数据挖掘