Skip to content

[TPU] [Perf] Improve Memory Usage Estimation #15671

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

Merged
merged 1 commit into from
Mar 28, 2025
Merged

[TPU] [Perf] Improve Memory Usage Estimation #15671

merged 1 commit into from
Mar 28, 2025

Conversation

robertgshaw2-redhat
Copy link
Collaborator

@robertgshaw2-redhat robertgshaw2-redhat commented Mar 28, 2025

SUMMARY:

  • TPU uses ~3GB loading Llama-8B + compiling XLA graphs, which is captured in peak memory
  • This 3GB was not being used for KV cache as a result
  • Tweak heuristic to be 2% of weights instead

This improves performance 4%, since we are able to fit more items in the batch

MODEL=meta-llama/Llama-3.1-8B-Instruct

VLLM_USE_V1=1 vllm serve $MODEL --max-model-len 2048 --disable-log-requests
  • this pr:
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 8.22
  • main
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 7.89

Signed-off-by: Robert Shaw <robshaw@redhat.com>
Copy link

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run fastcheck CI which starts running only a small and essential subset of CI tests to quickly catch errors. You can run other CI tests on top of those by going to your fastcheck build on Buildkite UI (linked in the PR checks section) and unblock them. If you do not have permission to unblock, ping simon-mo or khluu to add you in our Buildkite org.

Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging.

To run CI, PR reviewers can either: Add ready label to the PR or enable auto-merge.

🚀

@mergify mergify bot added v1 tpu Related to Google TPUs labels Mar 28, 2025
@robertgshaw2-redhat robertgshaw2-redhat changed the title updated [TPU] [Perf] Improve Memory Usage Estimation Mar 28, 2025
@bvrockwell
Copy link
Contributor

SUMMARY:

  • TPU uses ~3GB loading Llama-8B + compiling XLA graphs, which is captured in peak memory
  • This 3GB was not being used for KV cache as a result
  • Tweak heuristic to be 2% of weights instead

This improves performance 4%, since we are able to fit more items in the batch

MODEL=meta-llama/Llama-3.1-8B-Instruct

VLLM_USE_V1=1 vllm serve $MODEL --max-model-len 2048 --disable-log-requests
  • main:
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 8.22
  • this pr
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 7.89

@robertgshaw2-redhat this is great, thanks for the simple tweak, but is the throughput result reversed in this comment?

@robertgshaw2-redhat
Copy link
Collaborator Author

SUMMARY:

  • TPU uses ~3GB loading Llama-8B + compiling XLA graphs, which is captured in peak memory
  • This 3GB was not being used for KV cache as a result
  • Tweak heuristic to be 2% of weights instead

This improves performance 4%, since we are able to fit more items in the batch
MODEL=meta-llama/Llama-3.1-8B-Instruct

VLLM_USE_V1=1 vllm serve $MODEL --max-model-len 2048 --disable-log-requests
  • main:
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 8.22
  • this pr
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 7.89

@robertgshaw2-redhat this is great, thanks for the simple tweak, but is the throughput result reversed in this comment?

yep, I updated the summary

1 similar comment
@robertgshaw2-redhat
Copy link
Collaborator Author

SUMMARY:

  • TPU uses ~3GB loading Llama-8B + compiling XLA graphs, which is captured in peak memory
  • This 3GB was not being used for KV cache as a result
  • Tweak heuristic to be 2% of weights instead

This improves performance 4%, since we are able to fit more items in the batch
MODEL=meta-llama/Llama-3.1-8B-Instruct

VLLM_USE_V1=1 vllm serve $MODEL --max-model-len 2048 --disable-log-requests
  • main:
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 8.22
  • this pr
python3 benchmark_serving.py --model $MODEL --dataset-name random --random-input-len 1000 --random-output-len 100

>> Throughput: 7.89

@robertgshaw2-redhat this is great, thanks for the simple tweak, but is the throughput result reversed in this comment?

yep, I updated the summary

@yaochengji yaochengji added the ready ONLY add when PR is ready to merge/full CI is needed label Mar 28, 2025
Copy link
Collaborator

@yaochengji yaochengji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! It's a simple modification but just works!

I double checked and confirm there's no such reset peak memory size support.
I submitted a feature request in the pytorch/xla project for the this functionality. pytorch/xla#8900

@mgoin mgoin enabled auto-merge (squash) March 28, 2025 15:31
@mgoin mgoin merged commit 038bede into main Mar 28, 2025
48 checks passed
@mgoin mgoin deleted the memory-profiling branch March 28, 2025 17:37
simpx pushed a commit to simpx/vllm that referenced this pull request Mar 28, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
lengrongfu pushed a commit to lengrongfu/vllm that referenced this pull request Apr 2, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
kylesayrs pushed a commit to neuralmagic/vllm that referenced this pull request Apr 2, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
Signed-off-by: Kyle Sayers <kylesayrs@gmail.com>
Alex4210987 pushed a commit to LeiWang1999/vllm-bitblas that referenced this pull request Apr 5, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
Signed-off-by: xinyuxiao <xinyuxiao2024@gmail.com>
lulmer pushed a commit to lulmer/vllm that referenced this pull request Apr 7, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
Signed-off-by: Louis Ulmer <ulmerlouis@gmail.com>
nishith-fujitsu pushed a commit to nishith-fujitsu/vllm that referenced this pull request Apr 9, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
lk-chen pushed a commit to lk-chen/vllm that referenced this pull request Apr 29, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
shreyankg pushed a commit to shreyankg/vllm that referenced this pull request May 3, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
RichardoMrMu pushed a commit to RichardoMrMu/vllm that referenced this pull request May 12, 2025
Signed-off-by: Robert Shaw <robshaw@redhat.com>
Co-authored-by: Robert Shaw <robshaw@redhat.com>
Signed-off-by: Mu Huai <tianbowen.tbw@antgroup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready ONLY add when PR is ready to merge/full CI is needed tpu Related to Google TPUs v1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants