alipay / PainlessInferenceAcceleration

Creative Commons Attribution 4.0 International
283 stars 18 forks source link

可以批(batch)推理吗?比如一次推理256个输入?满级压榨GPU!^_^ #2

Closed janelu9 closed 8 months ago

zheyishine commented 8 months ago

部分模型支持batch推理的,比如glm和llama, 可以参考glm_batch_example.py和llama_batch_example.py, 我们也有计划将所有的模型支持batch推理。但是在batch过大的时候,推理的效率并不会提升,主要是推理瓶颈从带宽瓶颈转为flops瓶颈,而lookahead会进一步加剧flops瓶颈。

janelu9 commented 8 months ago

部分模型支持batch推理的,比如glm和llama, 可以参考glm_batch_example.py和llama_batch_example.py, 我们也有计划将所有的模型支持batch推理。但是在batch过大的时候,推理的效率并不会提升,主要是推理瓶颈从带宽瓶颈转为flops瓶颈,而lookahead会进一步加剧flops瓶颈。

假设我一张40g显存的卡,序列按常规单步生成最多能可以batch256个,用lookahead最多能batch多少?

zheyishine commented 8 months ago

部分模型支持batch推理的,比如glm和llama, 可以参考glm_batch_example.py和llama_batch_example.py, 我们也有计划将所有的模型支持batch推理。但是在batch过大的时候,推理的效率并不会提升,主要是推理瓶颈从带宽瓶颈转为flops瓶颈,而lookahead会进一步加剧flops瓶颈。

假设我一张40g显存的卡,序列按常规单步生成最多能可以batch256个,用lookahead最多能batch多少?

应该也能到230左右,lookahead额外的显存消耗在极限情况下也会小于10%,一般只增加1%左右