[Triton课程笔记] 2.2.2 Python Backend及BLS

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

一、例子

在Python Backend中用pytorch在GPU上运行Resnet50。

二、环境配置

由于原生环境没有pytorch的包,因此需要自己安装,有两种安装方式:

  • 直接继承原生的docker镜像,并在dockerfile中安装需要的包;
  • 如果不能用原生镜像中的python,需要用第二种方式,即创建新的conda环境,安装依赖,重新构建python backend stub,并复制到模型目录;打包conda环境,在配置文件中指定conda包;

三、python backend总结

  • 必须手动在代码中指定运行的设备(如GPU)
  • 参数"group_instance {KIND:gpu}" 不起作用
  • Requests都没有打包成batch,需要自己手动去拼接;
  • 每个Request必须对应一个Response;
  • 如果要避免CPU-GPU拷贝设置参数:FORCE_CPU_ONLY_INPUT_TENSORS;
  • 用于数据传输的共享内存必须足够大
  • 每个实例至少需要65MB
  • 比C++ Backend效率低,特别在循环处理方面;

四、BLS简介

  • 达到动态组合的效果;
  • 通过简单的python代码去连接模型和实现逻辑流,如循环,if-else,数据控制流;
  • BLS就是一种特殊的python backend:
  • 可以在代码中调用其他模型;
  • 配置和python model没区别;
  • 有两种模式:
  • 同步模式;
  • 异步模式;

4.1 BLS的同步模式

例子:

25:25 代码部分

 

posted @ 2024-06-26 15:13  大师兄啊哈  阅读(128)  评论(0编辑  收藏  举报