开发者社区 > 博文 > 记录TritonServer部署多模型到多GPU踩坑
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

记录TritonServer部署多模型到多GPU踩坑

  • 13****
  • 2023-09-27
  • IP归属:北京
  • 11520浏览

    一、问题是怎么发现的

            部署chatglm2和llama2到一个4*V100的GPU机器上遇到问题

           config.pbtxt

           中设置模型分别在指定gpu上部署实例配置不生效

           如以下配置为在gpu0上部署本模型,部署count=1个实例,在gpu1上部署本模型,部署count=2个实例

           instance_group [
               {
                 count: 1  
                 kind: KIND_GPU
                 gpus: [ 0 ]
               },

                { count: 2

               kind: KIND_GPU

               gpus: [ 1 ] }
         ]

         部署时发现,所有模型实例都会被部署到gpu0上面, 由于gpu只有16g显存,在部署第一个模型实例成功后,第二个模型实例也会往gpu0上进行加载,最终导致cuda out of memery.

         网上搜索发现有人遇到同样的问题,链接: https://github.com/triton-inference-server/server/issues/6124

         
                       

               

    二、问题带来的影响

    三、排查问题的详细过程

            大佬回答解决方案:

           

    四、如何解决问题

           1.在model.py手动获取config.pbtxt配置的gpu编号gpus:[0]

           instance_group [

           {

             count: 1

             kind: KIND_GPU

             gpus: [ 0 ]

           }

         ]

           2.设置可用的GPU编号

            os.environ["CUDA_VISIBLE_DEVICES"] = str(device_id)      

           3.启动成功

           

    五、总结反思:是否可以更快发现问题?如何再次避免等。

           triton启动的使用使用 nvidia-smi -l 2 监控显卡想显存, 可以发现所有模型都在往第一个gpu,gpu[0]内加载,发现配置config.pbtxt不生效