滚动新闻 →
Windows 11 管理员权限是什么?安装和修改系统时经常会遇到 MySQL TEXT 和 VARCHAR 有什么区别?存储文章内容时应该如何选择 欧阳修为什么不仅是一位文学家 陈皮与岭南饮食文化 印尼种植园惊现疑似中国火箭残骸 铝板坠落引关注 英国派遣台风战机支援沙特防御 胡塞袭击致也门军营伤亡激增 临摹古人书法究竟应该临什么 美国30所高校完成安全审查 80余项涉外科研合作被叫停 美国国会官员警告台海局势因海警船行动升级 赵薇五年后首度公开亮相 新加坡发型秀引关注 泽连斯基在挪威与美欧代表会晤,探讨对乌援助方案 如何教育孩子学会与别人合作 为什么有些视频文件特别大 川普中期选举冲刺:4亿美元投入拉票 7州7日行程 纽约提前投票启动 州检察长警示AI假讯息 台湾国安局:网络攻击激增 不排除中共介入选举 靖康之变究竟改变了什么 法国暴动背后54组织牵涉左翼势力 旧房厨房太小应该优先改哪里 北方面食文化为什么如此丰富 电竞选手遭裸检引争议 京城大师赛主办方致歉 在加拿大奥肯那根湖畔,葡萄成熟的季节刚刚好 新能源汽车为什么需要轻量化 国家数据集团成立引争议,舆论质疑垄断风险 美国房贷之外还需要考虑哪些长期住房支出 闲聊研究揭示其潜在心理益处 为什么小额长期支出也会影响家庭财富 游艇的折旧速度通常受到哪些因素影响 FBI突袭纽约华人区老人中心 白宫设反欺诈奖项 一个演员的报价究竟是谁决定的 当一座城市成为成功的尺度 加拿大修改报税需要多长时间 古迹遭焚 法女痛斥:移民问题在毁掉我们国家 湖北男子创新招领方式,用身份证数字解谜寻主 美国成文宪法为何如此重要 ‘90后’程序员北漂困境:高薪时代落幕,被迫离京谋生 中国生猪价格暴跌引发养猪场大规模倒闭潮 平安保险办公室持刀劫持案疑因拒赔大病保险引发 中国艺人巴黎遭遇连环盗窃 易梦玲行李失窃引关注 维京人是否曾经真正踏上美国大陆

Token 生成速度受哪些因素影响,GPU、显存、网络和模型结构如何共同决定性能

发布时间: 2026-09-30 08:00:02    最后更新: 2026-10-20 18:53:08    阅读:79  约19 分钟阅读     

Token 生成速度受哪些因素影响,GPU、显存、网络和模型结构如何共同决定性能
图片说明:示意图   图片来源:Public Domain(公有领域)
很多人测试本地大语言模型时,会看到一个非常直观的数字,比如每秒生成20 Token、40 Token或者100 Token,然后自然地认为显卡越快,Token生成速度就一定越高。实际情况没有这么简单。

大语言模型推理并不是一个单纯的GPU算力问题。模型参数需要存放在显存或者其他内存层级中,矩阵计算需要计算单元参与,生成过程中还要维护KV Cache,多个GPU之间可能需要通信,而在线服务还会受到Batch、并发请求、上下文长度、调度策略以及CPU和网络延迟影响。

因此,“每秒多少Token”只是最终表现,背后可能对应完全不同的瓶颈。

理解Token生成速度,首先需要把LLM推理拆成两个阶段,也就是Prefill和Decode。两者使用的硬件资源和性能瓶颈并不完全一样。

一、Prefill和Decode决定了为什么同一块GPU表现会完全不同

用户输入一段提示词后,模型首先需要处理整个输入上下文,这个阶段通常称为Prefill。

例如用户一次输入5000个Token,模型需要处理这批输入并建立后续生成所需要的状态,其中包括KV Cache。

Prefill通常具有较高的计算并行度,因此GPU Tensor Core等计算资源更容易得到充分利用。在很多情况下,Prefill更接近计算密集型工作负载。

进入生成阶段以后,情况发生变化。

模型通常一次生成一个或者少量Token,每生成新的Token,都需要利用已经存在的KV Cache来完成后续计算。

这个阶段就是Decode。

Decode阶段的计算规模和Prefill不同。对于很多模型和典型Batch配置来说,Decode更容易受到显存带宽、KV Cache访问、内存容量以及调度效率影响。

因此一块GPU可以在Prefill阶段显示很高的计算利用率,但在Batch较小的Decode阶段,GPU利用率看起来并不高,Token生成速度却已经接近当前工作负载能够达到的水平。

这也是为什么不能简单看到“GPU利用率只有50%”就断定GPU没有发挥性能。

二、GPU算力当然重要,但不是唯一决定因素

现代GPU通常拥有大量CUDA Core、Tensor Core以及非常高的FP16、BF16、FP8等矩阵计算能力。

Transformer中的线性层和注意力计算都包含大量矩阵运算,因此GPU计算能力会直接影响推理性能。

但是理论算力并不等于实际Token生成速度。

例如两张GPU理论FP16算力差距很大,如果当前模型的Decode阶段主要受HBM访问限制,那么更高的理论TFLOPS并不能按照相同比例转化成更高的Token/s。

这属于典型的计算受限和内存受限差异。

计算受限时,提高Tensor Core计算能力可能明显提高性能。

内存受限时,更高的显存带宽、更加紧凑的数据表示以及更好的缓存访问模式可能更加重要。

所以评价一张GPU是否适合LLM推理,不能只看TFLOPS或者TOPS,还应该同时看显存容量、HBM带宽、支持的数据类型、互联带宽以及软件栈。

三、显存带宽为什么会影响Decode速度

LLM模型包含大量参数。

以70B参数模型为例,如果使用16-bit浮点数,仅参数本身就需要大约140GB的存储空间,不包括KV Cache、运行时缓冲区以及其他开销。

如果采用8-bit或者更低精度表示,参数占用可以显著降低。

但是量化并不是简单地“把所有数字除以2”。

不同量化方案可能采用不同的分组方式、缩放参数以及计算路径,有些方案还需要在特定层保持较高精度。

因此实际显存占用和性能提升需要根据具体模型、量化格式和推理框架测试。

对于Decode来说,如果GPU需要反复从HBM读取大量模型权重,而每次生成的Token带来的计算量相对有限,就可能形成典型的内存带宽瓶颈。

这时候GPU计算单元可能没有完全饱和,但HBM已经承担了大量数据搬运。

因此“GPU利用率不高”与“显存带宽已经成为瓶颈”可以同时成立。

四、KV Cache是长上下文推理中的重要资源

Transformer生成文本时,不需要每次都从头重新计算所有历史Token。

模型会把注意力机制中的Key和Value保存下来,这部分缓存就是KV Cache。

随着上下文不断增长,KV Cache也会增长。

其实际占用取决于模型层数、KV头数量、每个头的维度、数据精度以及当前活跃序列长度等因素。

因此不能简单说“70B模型生成512个Token就一定需要100GB KV Cache”。

KV Cache并不是由参数量直接决定的。

两个参数量都接近70B的模型,如果一个使用标准多头注意力,另一个使用Grouped-Query Attention或者Multi-Query Attention,两者的KV Cache占用可能出现很大差异。

这也是现代LLM架构设计中GQA等技术的重要意义之一。

减少KV头数量可以在一定程度上降低KV Cache的容量和访问压力。

五、上下文越长,性能问题越复杂

假设一个模型正在处理非常长的上下文。

随着上下文增长,KV Cache会越来越大。

这会带来两个问题。

第一个问题是容量。

GPU显存必须能够容纳模型参数、KV Cache以及推理运行时所需的其他缓冲区。

第二个问题是访问成本。

即使KV Cache能够放进GPU显存,随着缓存规模扩大,注意力计算仍然需要处理越来越多的历史Token。

因此长上下文不仅影响显存容量,也会影响计算量、内存访问以及最终的Token生成延迟。

当KV Cache无法全部留在高速GPU显存中时,如果推理系统需要把部分状态放到CPU内存甚至其他存储层级,性能可能进一步下降。

不过现代推理框架通常会通过Paged KV Cache、缓存管理以及调度策略尽可能避免低效的数据搬运。

六、不要把Decode阶段简单说成O(n²)

原稿把Transformer自注意力的O(n²)复杂度直接等同于每个Token生成过程,这是一个常见但过于粗略的说法。

对于Prefill阶段,输入序列中的Token之间需要进行注意力计算,序列长度增长确实会显著增加注意力相关计算量。

但在使用KV Cache进行自回归Decode时,新生成的Query通常只需要与已经缓存的Key和Value进行注意力计算,而不是每次都从头计算完整的历史序列。

因此Decode阶段随着上下文长度增长,计算和内存访问仍然会增加,但不能简单描述成“每生成一个Token都重新执行完整的O(n²)注意力”。

理解这一点对于分析长上下文推理性能非常重要。

七、Batch Size会直接改变Token生成速度

单用户、单序列推理和高并发服务的性能完全不同。

如果一次只服务一个请求,GPU可能没有足够大的矩阵计算规模来充分利用计算资源。

增加Batch或者并发序列以后,可以把多个请求的计算组合起来,从而提高GPU计算资源利用率和整体吞吐量。

但是Batch并不是越大越好。

随着Batch增大,KV Cache占用、调度复杂度、显存压力以及单个请求等待时间也可能增加。

对于在线聊天服务,用户关心的是TTFT、ITL和P99延迟。

TTFT是Time to First Token,也就是用户发送请求之后等待第一个Token出现的时间。

ITL通常表示生成Token之间的时间间隔。

而服务端还会关注tokens/s、requests/s以及P50、P95、P99延迟。

如果一味增加Batch导致GPU吞吐量提高,但用户等待时间明显增加,那么对于在线服务来说未必是优化。

八、GPU利用率不是Token速度的直接答案

很多监控软件都会显示GPU utilization。

这个指标非常有用,但不能单独拿来判断LLM推理性能。

例如Decode阶段可能受到HBM访问限制,GPU计算单元并没有持续满负荷运行。

这时GPU利用率可能低于某个计算密集型任务,但Token/s已经达到当前工作负载的瓶颈。

反过来,GPU利用率很高,也不意味着用户体验一定好。

如果Batch非常大,GPU可能获得很高吞吐量,但单个请求的延迟可能明显增加。

因此LLM性能测试应该同时观察GPU计算利用率、HBM带宽、显存容量、KV Cache占用、SM或Tensor Core活动、Token吞吐量以及用户侧延迟。

九、多GPU推理时,GPU之间怎么通信非常重要

当模型无法放入一张GPU时,就需要采用模型并行、张量并行、流水线并行或者其他分布式策略。

这时候问题从“单GPU性能”扩展成“多GPU协同性能”。

如果采用Tensor Parallelism,一个模型层中的计算可能被拆分到多张GPU上。

这些GPU需要在计算过程中交换数据。

GPU之间的互联方式就变得非常重要。

在同一台服务器内部,NVLink、NVSwitch等高速互联可以提供远高于普通PCIe链路的GPU间通信能力。

如果跨服务器,则通常需要依靠InfiniBand或者高性能以太网/RoCE等网络。

因此同样是8张GPU,放在一台具有高速GPU互联的服务器中,与分散在不同服务器中通过网络连接,实际推理性能可能完全不同。

十、网络并不是所有LLM推理的瓶颈

原稿把网络通信描述得过于普遍。

如果模型完全运行在一台服务器的一张GPU上,那么用户电脑到服务器之间的网络延迟通常不会决定GPU内部的Token计算速度。

网络主要影响请求进入服务器、结果返回以及分布式推理中的跨节点通信。

如果采用跨服务器Tensor Parallelism,网络就可能成为关键因素。

但如果模型使用的是数据并行,也就是每张GPU或者每台服务器各自运行完整模型,不同请求被分配到不同实例,那么跨GPU同步需求可能与模型并行完全不同。

因此看到“多GPU”不能直接推断存在严重网络通信瓶颈,必须先确认具体并行方式。

十一、不要把AllReduce当成推理中的默认通信方式

AllReduce在分布式训练中非常重要,因为训练过程中需要同步梯度。

推理阶段并不需要同步梯度,因此通信模式与训练明显不同。

模型并行推理更常见的是根据具体并行策略进行All-Gather、Reduce-Scatter、点对点通信以及其他集合通信操作。

例如Tensor Parallelism中的某些计算阶段需要在GPU之间交换中间结果。

NCCL可以负责GPU集合通信,而底层可能使用NVLink、PCIe、InfiniBand或RoCE等不同互联路径。

因此讨论“推理网络通信”时,不能简单用“训练需要AllReduce,所以推理也主要依靠AllReduce”来解释。

十二、网络带宽和延迟必须结合通信规模来看

假设网络是100Gbps。

这只是链路理论带宽,并不能直接告诉你某个模型的Token生成速度。

实际通信效率还受到消息大小、消息数量、网络拓扑、拥塞、协议栈、DMA、GPU Direct RDMA、交换机配置以及通信计算重叠程度影响。

同样,100微秒延迟也不能单独判断系统一定慢。

如果某项通信每次只发生一次,那么100微秒可能影响有限。

如果某个模型每生成一个Token都需要进行多次跨节点通信,那么这部分延迟就可能不断累积。

因此网络性能应该放在具体并行算法和通信模式中分析。

十三、模型结构本身也决定了硬件怎么被使用

不同模型架构对GPU资源的需求并不一样。

传统Dense Transformer在每次推理时需要执行大量模型参数对应的计算。

MoE,也就是Mixture of Experts,则只激活部分专家,因此可以在保持较大总参数规模的同时降低每个Token实际参与计算的参数数量。

但是MoE并不是免费获得性能。

Token需要经过Router分配给不同专家。

如果专家分布在不同GPU甚至不同服务器上,就可能产生额外的数据交换。

因此MoE性能不仅取决于“每个Token激活多少参数”,还取决于专家布局、负载均衡、通信方式以及推理框架。

十四、量化到底为什么可以提高推理效率

量化最直接的作用之一,是降低模型参数的存储需求。

例如FP16模型参数使用16-bit表示,而某些INT8、FP8或更低比特量化方案可以使用更紧凑的数据表示。

模型变小之后,一方面更容易放入GPU显存,另一方面在特定硬件和推理框架上,可以减少内存带宽压力,并使用对应的低精度计算路径。

但量化并不等于“精度越低,速度一定越快”。

不同GPU对FP16、BF16、FP8、INT8、INT4等格式的硬件支持不同。

推理框架也必须提供高效kernel。

某种量化格式如果需要大量额外转换操作,实际速度提升可能并不明显。

同时,量化可能影响模型输出质量,因此需要结合任务进行验证。

十五、CPU也可能成为瓶颈

虽然LLM主要计算发生在GPU上,但CPU并不是无关紧要的。

请求解析、Tokenization、调度、数据准备、网络处理以及部分缓存管理工作仍然可能由CPU承担。

如果同时运行大量并发请求,而CPU核心数不足,或者Tokenization成为瓶颈,就可能出现GPU等待CPU提交工作的情况。

这时GPU利用率可能下降,但增加GPU数量并不能解决根本问题。

因此高性能推理服务器需要同时观察CPU使用率、CPU核心分布、NUMA布局、PCIe拓扑、内存带宽以及GPU利用率。

在多GPU服务器中,GPU连接到哪个CPU NUMA节点同样可能影响数据传输效率。

十六、推理框架的效率可能比换一张GPU更重要

现代LLM推理并不是简单调用一个模型文件然后让GPU运行。

推理框架会负责Kernel选择、KV Cache管理、Batch调度、量化、张量并行、流水线并行以及通信。

不同框架和不同版本的Kernel实现可能产生明显性能差异。

FlashAttention等优化可以减少注意力计算中的中间内存访问。

Paged KV Cache可以改善大量动态请求下的KV Cache管理。

Continuous Batching可以在不同请求陆续到达时动态组合正在运行的序列,从而提高GPU利用率。

这些优化往往比单纯增加一个“GPU利用率”指标更能说明推理系统是否设计合理。

十七、Token速度应该怎么测

如果要认真比较两套LLM推理系统,不应该只运行一句话然后看终端显示的Token/s。

至少应该记录输入Token数量、输出Token数量、TTFT、ITL、总生成时间、吞吐量、并发数以及P50、P95、P99延迟。

还应该固定模型版本、量化方式、上下文长度、采样参数以及最大输出长度。

否则一个系统使用短Prompt、另一个系统使用长上下文,直接比较Token/s没有太大意义。

同样需要区分Prefill吞吐量和Decode吞吐量。

有些系统第一个Token出来很快,但后续Token生成速度一般。

有些系统首Token延迟比较高,但连续生成速度非常快。

对于聊天机器人,这两种性能特征对用户体验的影响并不相同。

十八、实际排查时怎样判断到底哪里出了问题

如果Token生成速度很低,可以先观察GPU计算利用率和HBM活动。

如果GPU计算单元长期高负载,同时显存带宽并未明显成为瓶颈,那么更高的计算能力或者更好的Kernel可能有帮助。

如果GPU计算利用率不高,但HBM带宽已经非常繁忙,则需要重点检查模型权重访问、KV Cache以及数据精度。

如果显存容量接近极限,则应该检查模型量化、KV Cache容量、Batch以及上下文长度。

如果单GPU运行正常,多GPU运行明显变慢,则需要检查GPU互联拓扑、Tensor Parallelism、通信量以及NCCL性能。

如果跨服务器运行明显慢于单机运行,则进一步检查InfiniBand或RoCE链路、交换机、NUMA、RDMA以及通信计算是否能够重叠。

如果GPU利用率长期很低,同时CPU负载很高,则需要检查Tokenization、请求调度、数据准备和应用层代码。

如果Batch增加以后吞吐量提高但P99延迟急剧增加,则说明系统可能已经从追求吞吐量转向牺牲在线服务延迟。

这才是工程上真正有价值的性能分析。

十九、Token生成速度没有一个固定的“最佳配置”

不同模型、不同GPU、不同上下文长度以及不同业务场景,对硬件的需求完全不同。

一个小型7B模型运行在单张消费级GPU上,主要问题可能是Kernel效率和单序列Decode性能。

70B级模型运行在多张数据中心GPU上,问题可能转变成HBM容量、KV Cache管理和GPU间通信。

如果进一步扩展到多服务器推理,网络拓扑、RDMA、交换机以及通信计算重叠就可能成为重要因素。

而在线AI服务与离线批处理又是两种不同的优化目标。

在线聊天通常更关注TTFT、ITL和P99延迟。

离线批量生成则更关注总Token吞吐量。

因此没有一个“Batch越大越快”“GPU利用率越高越好”或者“网络带宽达到100Gbps就足够”的通用答案。

Token生成速度本质上是一个系统级指标。

GPU计算能力决定可以做多少计算,HBM带宽决定大量模型数据和缓存数据能够多快被访问,显存容量决定模型和KV Cache能否在合适的存储层级中运行,模型架构决定需要进行多少计算以及多少通信,CPU和调度系统决定GPU能否持续获得工作,而多GPU和多服务器场景中的互联则决定这些计算资源能否高效协同。

所以,当一台机器从每秒20 Token提升到每秒40 Token时,最有价值的问题不是简单问“换什么显卡”,而是先确认当前瓶颈究竟是计算、HBM带宽、显存容量、KV Cache、CPU调度、GPU互联还是网络通信。

只有先确定瓶颈,再选择量化、Kernel优化、Batch调整、KV Cache管理、GPU升级或者网络升级,性能优化才有明确方向。对于LLM推理来说,最昂贵的错误往往不是硬件不够快,而是花钱升级了一个根本没有成为瓶颈的部分。

喜欢这篇报道?

使用下面的功能,方便以后继续阅读和分享 MNewsTV

设为 Google 新闻首选来源 让 Google 新闻优先显示 MNewsTV 的最新报道 ›
★ 我的收藏 查看已经收藏的文章
关于文章收藏 收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。 删除收藏请进入「我的收藏」进行管理。
分享这篇报道

捐助(Paypal): https://www.paypal.me/observeccp
订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP