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)
相关文章:
VLLM性能调优
1. 抢占 显存不够的时候,某些request会被抢占。其KV cache被清除,腾退给其他request,下次调度到它,重新计算KV cache。 报这条消息,说明已被抢占: WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…...
ESP32-S3模组上跑通esp32-camera(39)
接前一篇文章:ESP32-S3模组上跑通esp32-camera(38) 一、OV5640初始化 2. 相机初始化及图像传感器配置 上一回继续对reset函数的后一段代码进行解析。为了便于理解和回顾,再次贴出reset函数源码,在components\esp32-camera\sensors\ov5640.c中,如下: static int reset…...
Linux《基础指令》
在之前的Linux《Linux简介与环境的搭建》当中我们已经初步了解了Linux的由来和如何搭建Linux环境,那么接下来在本篇当中我们就要来学习Linux的基础指令。在此我们的学习是包括两个部分,即指令和关于Linux的基础知识;因此本篇指令和基础知识的…...
9.进程间通信
9.进程间通信 **1. 进程间通信(IPC)概述****2. 无名管道(Pipe)****3. 有名管道(FIFO)****4. 信号通信(Signal)****5. 练习与作业****6. 信号的应用****7. 总结** 1. 进程间通信&…...
Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴
目录 背景 解决gpedit.msc打不开 解决复制粘贴 剪贴板的问题 启用远程桌面剪贴板与驱动器 重启RDP剪贴板监视程序 以上都不行?可能是操作被Win11系统阻止 最后 背景 远程桌面无法复制粘贴,需要查看下主机策略组设置,结果按WinR输入…...
供应链系统设计-供应链中台系统设计(十二)- 清结算中心设计篇(一)
概述 在之前的文章中,我们通过之前的两篇文章中,如下所示: 供应链系统设计-供应链中台系统设计(十)- 清结算中心概念片篇 供应链系统设计-供应链中台系统设计(十一)- 清结算中心概念片篇 说…...
Vue.js 单页应用(SPA)开发教程:从零开始构建你的第一个项目
单页应用(SPA,Single Page Application)是现代前端开发的主流模式。Vue.js 是一个非常适合构建 SPA 的框架,它通过 Vue Router 实现页面导航,通过组件化开发和状态管理实现复杂的交互功能。本篇教程将带你了解 SPA 的基…...
Linux C openssl aes-128-cbc demo
openssl 各版本下载 https://openssl-library.org/source/old/index.html#include <stdio.h> #include <string.h> #include <openssl/aes.h> #include <openssl/rand.h> #include <openssl/evp.h>#define AES_KEY_BITS 128 #define GCM_IV_SIZ…...
你了解哪些Java限流算法?
大家好,我是锋哥。今天分享关于【你了解哪些Java限流算法?】面试题。希望对大家有帮助; 你了解哪些Java限流算法? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java 中常用的限流算法主要有以下几种,它们广泛应用于处理流量控…...
【漫话机器学习系列】065.梯度(Gradient)
梯度(Gradient) 在数学和机器学习中,梯度是一个向量,用来表示函数在某一点的变化方向和变化率。它是多变量函数的一阶偏导数的组合。 梯度的定义 设有一个标量函数 ,它对 是可微的,则该函数在某一点的…...
BswM(基础软件管理)详解
BswM(基础软件管理)详解 BswM(Basic Software Manager) 是 AUTOSAR BSW 的核心模块之一,负责协调基础软件(BSW)各模块的行为,根据系统状态、规则或事件动态配置其他模块。其设计目标…...
上位机知识篇---GitGitHub
文章目录 前言Git&GitHub是什么?GitGitHub Git和GitHub的区别定位功能使用方式开源协作 Git常用命令操作1. 配置2. 仓库操作3. 文件操作4. 分支与合并5.远程操作6.撤销更改7.查看历史 GitHub常用操作1.创建仓库2.Fork仓库3.Pull Request4.Issue跟踪5.代码审查 G…...
网站快速收录:提高页面加载速度的重要性
本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/32.html 网站快速收录中,提高页面加载速度具有极其重要的意义。以下从多个方面详细阐述其重要性: 一、提升用户体验 减少用户等待时间:页面加载速度直接…...
Vue.js组件开发-实现全屏背景图片滑动切换特效
使用 Vue 实现全屏背景图片滑动切换特效的详细步骤、代码、注释和使用说明。 步骤 创建 Vue 项目:使用 Vue CLI 创建一个新的 Vue 项目。准备图片资源:准备好要用于背景切换的图片,并将它们放在项目的合适目录下。编写 HTML 结构࿱…...
DeepSeek r1本地安装全指南
环境基本要求 硬件配置 需要本地跑模型,兼顾质量、性能、速度以及满足日常开发需要,我们需要准备以下硬件: CPU:I9内存:128GB硬盘:3-4TB 最新SSD,C盘确保有400GB,其它都可划成D盘…...
LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
文章目录 一、关于 LitGPT二、快速启动安装LitGPT高级安装选项 从20多个LLM中进行选择 三、工作流程1、所有工作流程2、微调LLM3、部署LLM4、评估LLM5、测试LLM6、预训练LLM7、继续预训练LLM 四、最先进的功能五、训练方法示例 六、项目亮点教程 一、关于 LitGPT LitGPT 用于 …...
deepseek R1 14b显存占用
RTX2080ti 11G显卡,模型7b速度挺快,试试14B也不错。 7B显存使用5.6G,14B显存刚好够,出文字速度差不多。 打算自己写个移动宽带的IPTV播放器,不知道怎么下手,就先问他了。...
无用知识研究:对std::common_type以及问号表达式类型的理解
先说结论: 如果问号表达式能编译通过,那么std::common_type就能通过。因为common_type的底层依赖的就是?: common_type的实现里,利用了问号表达式:ternary conditional operator (?:) https://stackoverflow.com/questions/14…...
MapReduce概述
目录 1. MapReduce概述2. MapReduce的功能2.1 数据划分和计算任务调度2.2 数据/代码互定位2.3 系统优化2.4 出错检测和恢复 3. MapReduce处理流程4. MapReduce编程基础参考 1. MapReduce概述 MapReduce是面向大数据并行处理的计算模型、框架和平台: 1. 基于集群的高性能并行…...
循环神经网络(RNN)+pytorch实现情感分析
目录 一、背景引入 二、网络介绍 2.1 输入层 2.2 循环层 2.3 输出层 2.4 举例 2.5 深层网络 三、网络的训练 3.1 训练过程举例 1)输出层 2)循环层 3.2 BPTT 算法 1)输出层 2)循环层 3)算法流程 四、循…...
深度图还能这样用?Metashape导出数据在Unity3D/B3DM格式转换中的妙用
深度图跨界应用:从Metashape到Unity3D的B3DM格式转换实战指南 当摄影测量遇上游戏开发,深度图的价值远不止于三维重建。在Metashape中生成的深度图数据,经过巧妙转换后能在Unity3D中实现令人惊艳的效果。本文将带你探索这条从专业建模软件到…...
丹青识画与Unity引擎结合:打造沉浸式虚拟博物馆体验
丹青识画与Unity引擎结合:打造沉浸式虚拟博物馆体验 想象一下,你漫步在一个精心构建的虚拟博物馆里,墙上挂着梵高的《星月夜》、达芬奇的《蒙娜丽莎》。你被一幅画深深吸引,举起手机(在虚拟世界里)&#x…...
OpenClaw我的龙虾怎么识别不了图片
问题现象 图片发送给龙虾,要么一直说没收到图片,要么提示不支持,要么提示安装OCR工具,要么就是识别出来的完全牛头不对马嘴。 解决方案 这里面涉及三个因素: 模型是否支撑图片识别配置中的input是否配置了image聊天渠道…...
3个魔法时刻:如何让Switch手柄在PC上获得新生
3个魔法时刻:如何让Switch手柄在PC上获得新生 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mirro…...
Java线程池中如何用TransmittableThreadLocal避免变量丢失?附完整Demo
Java线程池中TransmittableThreadLocal的实战应用与避坑指南 在Java高并发编程中,线程池是提升性能的利器,但线程复用机制却给上下文传递带来了挑战。当我们在父线程设置变量,子线程却无法获取时,这种"断链"现象常让开发…...
生成式 AI 赋能下钓鱼攻击的技术异化与防御体系构建
摘要 生成式人工智能在文本创作、语义理解与内容生成领域的快速落地,在提升生产效率的同时,也被不法分子用于网络钓鱼攻击的智能化升级。路透社与哈佛大学联合测试显示,主流大语言模型在特定提示词绕过机制下可生成高仿真钓鱼邮件,…...
Windows 10/11防火墙设置:如何快速开启ICMP协议实现Ping功能(详细图文)
Windows系统ICMP协议配置全指南:从基础原理到高阶应用 在IT运维和开发工作中,网络连通性测试是最基础却又最频繁的需求之一。想象一下这样的场景:你正在部署一个关键服务,却发现客户端无法连接到服务器;或是远程协助同…...
rg -n 是什么意思?
关于 -n (Line number) 的原始英文说明在 rg --help 中,它是这样描述的:-n, --line-number Show line numbers. This is enabled by default when searching in a terminal.核心翻译: 显示行号。当在终端(terminal)中搜…...
WinForm实战:OxyPlot图表控件鼠标悬停显示坐标值(附完整代码)
WinForm实战:OxyPlot图表控件鼠标悬停显示坐标值(附完整代码) 在数据可视化应用中,实时交互功能往往能显著提升用户体验。当开发者需要在WinForm平台快速实现专业级图表时,OxyPlot.WindowsForms.Plot控件凭借其轻量级和…...
基于向量数据库的AI知识管理:开源工具如何实现知识处理效率提升300%
基于向量数据库的AI知识管理:开源工具如何实现知识处理效率提升300% 【免费下载链接】open-notebook An Open Source implementation of Notebook LM with more flexibility and features 项目地址: https://gitcode.com/GitHub_Trending/op/open-notebook 副…...
