triton同步异步接口询问
Closed this issue · 15 comments
大佬 我根据您的方案部署了qwen14B,但是这么请求时候,貌似是同步接口?多个请求的时只能等一个完成之后,另一个才开始响应
是否有开启inflight-batching功能呢?
是否有开启inflight-batching功能呢?
请问是构建engine的时候开启吗?
这是我使用的build命令
`
python3 build.py --hf_model_dir /root/model_repo
--dtype float16
--remove_input_padding
--use_gpt_attention_plugin float16
--enable_context_fmha
--use_gemm_plugin float16
--output_dir /root/Qwen/14B/trt_engines/fp16/2-gpu
--world_size 2
--tp_size 2
--paged_kv_cache
--use_inflight_batching
`
是否有开启inflight-batching功能呢?
parameters: {
key: "gpt_model_type"
value: {
string_value: "inflight_batching"
}
}这里启用了
了解,stream和非stream模式都试过了吗?
了解,stream和非stream模式都试过了吗?
非stream看不出来是否同时推理了,
stream和非stream接口可以同时推理,先发送非stream请求,然后发送stream请求(立马收到响应)
先发送非stream请求,然后发送stream请求(立马收到响应)
那说明不就是成功了吗
先发送非stream请求,然后发送stream请求(立马收到响应)
那说明不就是成功了吗
但是先发一次stream ,再发一次stream (第二次的 不能立马收到响应)
好的,我待会测试一下。
你也可以试试打印出第一个请求和第二个请求的每个token的响应时间,看看是否所有的第二个请求token响应均在第一个请求之后。
你也可以试试打印出第一个请求和第二个请求的每个token的响应时间,看看是否所有的第二个请求token响应均在第一个请求之后。
确实是,第二个请求响应在第一个回答完毕之后
刚刚看了一下确实和你说的一样,猜测应该是由于前后处理都是单线程导致的。
于是我将group_instance从1换成了10(这个数值可以根据你的cpu核心数设置,建议设置为一半cpu线程数), tensort_llm那边的继续默认是1,相关commit
修改后我开启了两个长文本流请求,两边可以同时响应,说明问题解决。
你也可以测试一下是否如此。
刚刚看了一下确实和你说的一样,猜测应该是由于前后处理都是单线程导致的。 于是我将group_instance从1换成了10(这个数值可以根据你的cpu核心数设置,建议设置为一半cpu线程数), tensort_llm那边的继续默认是1,相关commit 修改后我开启了两个长文本流请求,两边可以同时响应,说明问题解决。 你也可以测试一下是否如此。
大佬我刚在triton那边issue翻看,发现有个人是这么请求的 用的ensemble而不是tensorrt_llm_bls。
我发现ensemble是可以的!
刚刚看了一下确实和你说的一样,猜测应该是由于前后处理都是单线程导致的。 于是我将group_instance从1换成了10(这个数值可以根据你的cpu核心数设置,建议设置为一半cpu线程数), tensort_llm那边的继续默认是1,相关commit 修改后我开启了两个长文本流请求,两边可以同时响应,说明问题解决。 你也可以测试一下是否如此。
我试一下您这种
刚刚看了一下确实和你说的一样,猜测应该是由于前后处理都是单线程导致的。 于是我将group_instance从1换成了10(这个数值可以根据你的cpu核心数设置,建议设置为一半cpu线程数), tensort_llm那边的继续默认是1,相关commit 修改后我开启了两个长文本流请求,两边可以同时响应,说明问题解决。 你也可以测试一下是否如此。
大佬我刚在triton那边issue翻看,发现有个人是这么请求的 用的ensemble而不是tensorrt_llm_bls。 我发现ensemble是可以的!
使用这个的配置 前处理group_instance1 后处理group_instance为10,tensorrt_llm_bls的group_instance为1
按您的思路 已经解决