滚动新闻 →
杜拜航班副驾刺伤机长血染驾舱 乘客联手拯救全机 昆明市区4.3级地震 震感强烈 房屋受损 Token 生成速度受哪些因素影响,GPU、显存、网络和模型结构如何共同决定性能 Google Cloud VPC 是什么,虚拟网络应该如何理解和规划 PHP SaaS 网站如何设计登录系统,哪些细节容易造成安全问题 显卡金手指出现氧化导致接触不良,应该如何安全清洁和重新安装 抗议习近平访美后突发意外 界立建脱险后首发声 美科技巨头签AI自律协议 川普表态拒绝与中共合作! 林志玲当妈也曾不知所措 鼓励妈妈们爱自己 前美国CIA官员:习近平依赖彭丽媛军中人脉 Windows 11 性能监视器怎么用?适合进阶用户的系统诊断工具 广东43岁男用土豆当主食 半年瘦25斤逆转三高 PHP strict_types 怎么开启?严格类型检查对项目开发有哪些帮助 《诗经》为什么不是一本遥远的古代诗集 《本草纲目》对中国传统药物文化的影响 科技高峰会共同承诺 川普令开启超智能时代 围棋中的定式应该怎样学习 西安村民菜地挖出古代经幢 距今八百多年 如何让孩子学会关心父母而不是只会索取 中共正部级高官 证监会前主席易会满被逮捕 景深对视频画面有什么影响 杜拜飞以色列客机突发紧急代码 引发劫机恐慌 拜占庭帝国为什么能够长期延续 小厨房最容易出现哪些空间浪费 大陆网红车商失联跑路 上千购车人面临风险 “赵丽颖身体到底怎么了”冲上热搜 重庆暴雨冲毁铁路涵洞 列车乘客被困7小时 节庆食品为什么能够保存一个民族的文化记忆 旅行前如何制定交通方案 中国空姐被逼向男子跪地道歉 还被要求“踹一脚” 发动机上方渗油维修需要更换什么 为什么同一辆车在不同充电桩充电速度不同 台湾东部海域突发5.9地震 极浅层多地有感 石膏板墙上挂东西需要什么工具 大模型推理为什么存在首 Token 延迟,TTFT 背后的计算过程究竟是什么 Google Cloud DDoS 防护应该怎么做,企业网站需要关注哪些网络安全问题 SaaS 登录状态是怎么保存的,Cookie、Session 和 Token 各有什么区别 男子捡鹅蛋吃 大鹅当场“气死” 美释出4千万桶战略石油储备 压低飙升油价 习访美抗议后界立建失联 昏迷送医曾吐血水

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

发布时间: 2026-09-30 08:00:02    最后更新: 2026-09-30 08:21:46    阅读:2  约19 分钟阅读     

很多人测试本地大语言模型时,会看到一个非常直观的数字,比如每秒生成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