[Triton课程笔记] 2.2.1 Python Backend

 


课程链接:https://www.bilibili.com/video/BV1De4y1h7WS/?spm_id_from=333.788&vd_source=c2a322357481107ab7f418b1ae9ce618

吐槽一下,英伟达的分视频真的有病,感觉是按照时长硬切,没什么逻辑。

一、大纲

两大部分:

  • Python Backend
  • Business Logic Scripting(BLS)

二、回顾

三、python backend

3.1 为什么需要python backend

  • 预处理、后处理一般用python;
  • 已经用python写好的处理单元,需要放Triton上去;
  • 比C++的更容易实现,无需编译;

3.2 工作原理

组件:

  • Python backend(C++)为代理;
  • Python model(Python)才是真正需要实现的东西,由进程进行管理;
  • 两者通过共享内存进行通信;

通信:

  • Health flag:标志Python stub process是否是否健康;
  • Request MessageQ:消息队列,用来从Python Backend传数据到Python stub process去运行;
  • Response MessageQ:消息队列,用来将Python stub process运行完的结果传输给Python Backend;

3.3 如何实现Python Backend

实现三个关键接口:

  • initialize:初始化操作;
  • excute:执行操作;
  • finalize:销毁操作;

3.4 简单例子

例子1 使用onnxruntime推理:

使用Python Backend 通过onnxruntime去运行Resnet50模型;

例子2,使用pytorch进行处理:

在Python Backend中调用pytorch。

需要先将pb Tensor 转为 pytorch Tensor;

处理完后,再把pytorch Tensor转回pb Tensor;

3.5 PB Tensor Placement

PB Tensor Placement究竟是放GPU还是GPU上?

  • 传给Python backend的Tensor默认复制到CPU上
  • 如果需要保持在GPU上,需要在config文件中设置参数:
    • parameters:{ key: "FORCE_CPU_ONLY_INPUT_TENSORS" value: {string_value: "no"}}
  • 如何查看tensor Placement是否在cpu上:
    • pb_utils.Tensor.is_cpu()
posted @   大师兄啊哈  阅读(245)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示