当前位置: 首页 > news >正文

VLLM性能调优

1. 抢占

显存不够的时候,某些request会被抢占。其KV cache被清除,腾退给其他request,下次调度到它,重新计算KV cache。

报这条消息,说明已被抢占:

WARNING 05-09 00:49:33 scheduler.py:1057 Sequence group 0 is preempted by PreemptionMode.SWAP mode because there is not enough KV cache space. This can affect the end-to-end performance. Increase gpu_memory_utilization or tensor_parallel_size to provide more KV cache memory. total_cumulative_preemption_cnt=1

如果不想被抢占,解决办法:

- 增大gpu_memory_utilization。提高KV cache占用的显存百分比。

- 减少max_num_seqs或max_num_batched_tokens。减少一个batch里的请求、token个数,从而减少KV cache占用。

- 增大tensor_parallel_size。使用多张GPU的TP并行。

可以查看VLLM自带的Prometheus指标,查看抢占的请求数量。或者打开日志disable_log_stats=False。

2. chunked prefill

默认下,prefill优先,prefill和decode不放到相同batch里

chunked prefill打开后,decode优先,decode的token不够时用prefill token来凑:

好处

decode延迟减小;GPU使用率增大;

batch大小:

batch越小,则ITL越小(我的实验也是观察到这个现象)。原因:decode阶段加入的prefill tokens少,就能不怎么变慢。

batch越大,则TTFT越小。原因:prefill的请求可以在更少的batch里完成。

总体来说,batch太小的话,会给吞吐量带来灾难。因为计算不够密集。

VLLM推荐的2个paper:

(https://arxiv.org/pdf/2401.08671 or https://arxiv.org/pdf/2308.16369)

http://www.lryc.cn/news/529333.html

相关文章:

  • ESP32-S3模组上跑通esp32-camera(39)
  • Linux《基础指令》
  • 9.进程间通信
  • Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴
  • 供应链系统设计-供应链中台系统设计(十二)- 清结算中心设计篇(一)
  • Vue.js 单页应用(SPA)开发教程:从零开始构建你的第一个项目
  • Linux C openssl aes-128-cbc demo
  • 你了解哪些Java限流算法?
  • 【漫话机器学习系列】065.梯度(Gradient)
  • BswM(基础软件管理)详解
  • 上位机知识篇---GitGitHub
  • 网站快速收录:提高页面加载速度的重要性
  • Vue.js组件开发-实现全屏背景图片滑动切换特效
  • DeepSeek r1本地安装全指南
  • LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
  • deepseek R1 14b显存占用
  • 无用知识研究:对std::common_type以及问号表达式类型的理解
  • MapReduce概述
  • 循环神经网络(RNN)+pytorch实现情感分析
  • Mac cursor设置jdk、Maven版本
  • WPS数据分析000005
  • CTF从入门到精通
  • Flutter使用Flavor实现切换环境和多渠道打包
  • Springboot如何使用面向切面编程AOP?
  • 51单片机(STC89C52)开发:点亮一个小灯
  • 基于MinIO的对象存储增删改查
  • Ubuntu Server 安装 XFCE4桌面
  • MySQL 存储函数:数据库的自定义函数
  • 代码随想录_栈与队列
  • 【微服务与分布式实践】探索 Sentinel