Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] 吞吐的提升主要是因为重写了GQA的kernel? #1785

Open
CSEEduanyu opened this issue Jun 16, 2024 · 9 comments
Open

[Docs] 吞吐的提升主要是因为重写了GQA的kernel? #1785

CSEEduanyu opened this issue Jun 16, 2024 · 9 comments
Assignees

Comments

@CSEEduanyu
Copy link

CSEEduanyu commented Jun 16, 2024

📚 The doc issue

feature里有提到:[2024/04] TurboMind latest upgrade boosts GQA, rocketing the internlm2-20b model inference to 16+ RPS, about 1.8x faster than vLLM.
是用fused_multi_head_attention替代了flashattn2的kernel嘛?但是attention也只占整个forward的1/3左右,只是这里的优化能有这么大的收益吗?

Suggest a potential alternative/fix

No response

@CSEEduanyu
Copy link
Author

@lzhangzz 大佬能解答一下不咯

@lzhangzz
Copy link
Collaborator

是用fused_multi_head_attention替代了flashattn2的kernel嘛?但是attention也只占整个forward的1/3左右,只是这里的优化能有这么大的收益吗?

这只是说优化完了 RPS 到 16+,本来也不慢的

@CSEEduanyu
Copy link
Author

是用fused_multi_head_attention替代了flashattn2的kernel嘛?但是attention也只占整个forward的1/3左右,只是这里的优化能有这么大的收益吗?

这只是说优化完了 RPS 到 16+,本来也不慢的

额 那整体吞吐能到VLLM的1.8倍 这个优化主要是哪里带来的呀 大佬求解答~

@lvhan028
Copy link
Collaborator

在使用vllm的性能测试脚本的时候,我们发现测试过程中,它的gpu利用率比较低,50%左右
但我们并不清楚是为什么。你可以在vllm社区问下看看。
lmdeploy开发并不是针对vllm做性能调优的,毕竟从一开始,我们的技术框架不一样。所以我们没法回答你“是什么具体原因”使得lmdeploy比vllm快。
我们只能说,我们每个版本加了什么特性,目前的性能是多少,和vllm相比,它的性能目前处在一个什么位置。

@CSEEduanyu
Copy link
Author

CSEEduanyu commented Jun 21, 2024

在使用vllm的性能测试脚本的时候,我们发现测试过程中,它的gpu利用率比较低,50%左右 但我们并不清楚是为什么。你可以在vllm社区问下看看。 lmdeploy开发并不是针对vllm做性能调优的,毕竟从一开始,我们的技术框架不一样。所以我们没法回答你“是什么具体原因”使得lmdeploy比vllm快。 我们只能说,我们每个版本加了什么特性,目前的性能是多少,和vllm相比,它的性能目前处在一个什么位置。

额那你们测的那版vllm可能有问题 vllm推理是纯串行所以满载gpu利用率是在80%多一点 lmdeploy是98% 但是这里也只有20%不到的提升 https://link.zhihu.com/?target=https%3A//docs.google.com/presentation/d/1A--47JAK4BJ39t954HyTkvtfwn0fkqtsL8NGFuslReM/edit%23slide%3Did.g2c91788b9bf_90_531 我看这个vllm的人做的测试 你们的forward随着batch_size的增加 增长率很低 所以这里kernal是否针对大batch做了更高并发的优化呢?我还是感觉主要是kernal的优势

@lvhan028
Copy link
Collaborator

你测试的vllm的性能是多少呢?

@lvhan028
Copy link
Collaborator

https://www.bentoml.com/blog/benchmarking-llm-inference-backends 这是bentoml评估的结果,也提到了gpu利用率低的问题。

@lvhan028
Copy link
Collaborator

Refactor attention and optimize GQA(#1258 #1307 #1116), achieving 22+ and 16+ RPS for internlm2-7b and internlm2-20b, about 1.8x faster than vLLM

这里的 1.8x 是对比的 internlm2-7b,它是 GQA 架构。llama2的MHA架构,大约是 1.4x。

这 3 个PR 是在 0.3.0 版本加入进来的,它们更多的是对代码的重构。LMDeploy 0.3.0 和 LMDeploy 0.2.6 对比,提升的不显著。这也是 @lzhangzz 说的,“本来也不慢的"

@CSEEduanyu
Copy link
Author

CSEEduanyu commented Jun 21, 2024

你测试的vllm的性能是多少呢?

llama2系列 延迟的话都差不多 极限吞吐lm:tgi:vllm=1.6:1.1:1 大概是这个比例 测lm时候是打开promot cache 然后max_batchs_size=256

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants