文章总结: 本文深入探讨了GPU在AI工程中的应用,包括显存容量、芯片结构、数据流、任务分配、部署方案等方面,为工程师提供了解决模型运行慢问题的指导。文章强调了显存、计算能力和带宽的重要性,并介绍了量化、多卡并行和成本取舍等策略。
综合评分: 85
文章分类: AI安全,二进制安全,数据安全,应用安全,网络安全
模型运行慢?AI工程师需要理解的GPU原理
原创
裴伟伟
裴伟伟
洞源实验室
2026年10月5日 08:30
山西
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
你用了一张48GB显存的GPU,加载一个权重占用20GB显存的模型,服务启动成功,输入提示词后,模型输出却以令人怀疑速度一个一个蹦跶出,而监控页面显示设备正在运行,显卡规格表上的算力又足以支撑想象中的性能。这个问题背后其实是工程师在大模型应用中需要具备的显卡认知:显存容量决定模型能否容纳,显存带宽决定数据供给速度,计算能力决定数据到达后的处理速度。三者共同约束模型运行,任何一项指标都无法代替另外两项。
要理解GPU原理,可以沿着模型运行过程展开:先判断模型参数需要多少显存空间,再理解芯片如何组织计算,然后区分训练和推理的资源需求,最后讨论量化、多卡与成本。这样建立的知识结构,能够用于解释本地大模型运行的现象,也能够用于选择合适的显卡硬件。
一、从模型出发:显卡类型与容量需求
显卡包含GPU芯片、显存、供电电路、散热组件和接口,其中GPU芯片承担计算功能。常见的桌面级显卡采用插卡形式(如上图所示),而企业级的数据中心加速器则采用专用模块,因此讨论 GPU 时,需要区分处理芯片、板卡和服务器实例这三个层次。云端租用的算力资源实际上是包含CPU、显卡、系统内存、存储和网络的实例,而大模型的性能受到整套配置的影响。
消费级显卡面向游戏、个人创作和桌面应用,设计需要平衡价格、图形性能与使用体验,可以承担本地模型实验和部分推理工作;专业工作站显卡服务工程设计、渲染和专业制作,产品配置关注专业软件适配、可靠性与工作需求;数据中心加速器面向持续运行、规模化训练和模型服务,设计关注显存容量、带宽、多卡互联与部署条件。
显卡类型的具体配置决定其任务的表现,反之,不同的任务需要选择适合的显卡类型,比如,个人运行小模型,需要考虑显存、软件兼容和设备成本;面向多人提供服务,需要考虑吞吐量、稳定性与扩展方式;训练大型模型,需要考虑计算、存储与通信。
通常,显卡的选型里的显存容量选择从模型参数开始。模型参数是训练过程中学习的数值,包括权重、偏置和其他可学习数值,在模型保存与部署的工程语境中,这些参数常被统称为模型权重。估算权重空间时,需要结合总参数量和各部分采用的数据格式(即量化,牺牲参数精度换取显存空间)。以100亿参数为例,全部采用16位格式时,参数数据约占20GB;采用8位格式时约占10GB;采用4位格式时约占 5GB。这些数字忽略量化元数据、混合精度部分和文件格式等开销,适合建立数量级判断。
MoE(混合专家)模型需要区分总参数与激活参数。总参数决定全部参数的存储规模,激活参数影响处理一个token时的主要参数运算量。一个总参数为400亿、每个token激活40亿参数的模型,保存全部参数需要按400亿计算,就像一个医院里的医生即便是轮班出诊,医院门诊办公室的面积仍应当按照所有医生的数量配置核算。
权重空间之外,推理过程需要KV cache、临时张量及框架运行空间。KV cache保存的是注意力计算中历史token的键(K)和值(V),以减少后续生成中的重复计算,其需求取决于模型结构、上下文长度、并发请求数和缓存格式。如果权重占20GB,缓存与其他运行数据占12GB,那么所需显存约为32GB,24GB的显卡就无法满足上述模型的配置,而48GB的显卡可以。
二、从芯片出发:GPU 内部有哪些部件
显存容量回答的是模型参数能否放下,芯片结构解释了数据如何参与计算。以英伟达常见架构为例,GPU 芯片包含计算集群、片上存储、数据互连、显存控制器以及控制与接口部件;计算集群包含多个 SM,SM 内部包含调度器、执行单元、寄存器、一级缓存和共享内存。
SM(Streaming Multiprocessor,流式多处理器)可以理解为一个配备计算设备、存储资源和任务调度能力的车间。计算集群组织多个车间,二级缓存为多个车间提供共享的数据缓存,片上互联连接这些部件,显存控制器管理与外部显存之间的访问。
SM内部的通用计算单元执行常规算术、比较与逻辑运算,不同指令类型由对应执行通路处理。
Tensor Core(张量核心)是处理特定矩阵乘法与累加的专用单元,其代表性计算形式是 D=A×B+C,模型中的线性变换包含大量矩阵运算,因此张量核心对训练和推理具有重要意义。
SFU(Special Function Unit,特殊函数单元)承担某些特殊数学函数相关运算,例如特定的指数、三角函数、倒数或倒数平方根操作。一个数学函数采用专用指令还是指令组合,取决于架构、编译器和精度要求。
LSU(Load/Store Unit,加载与存储单元)处理数据读取和写回相关指令,为计算提供输入并保存结果。通用计算单元、张量核心和特殊函数相关执行资源负责加工,加载与存储单元参与输入与输出,就像一座工厂如果要采购更强的加工设备,同时需要确认运输系统能够支撑相应的产能。
SM内部的寄存器保存线程使用的变量和中间结果,L1缓存保留部分访问数据,共享内存由程序安排,用于线程块内的数据交换和复用。寄存器像工位手边的材料架,共享内存像任务小队共用的工作台,缓存则通过访问复用减少取料成本。SM外部的L2缓存为多个SM提供数据缓存,片上互连承担内部数据传输,显存控制器组织外部读写。在桌面独立显卡中,显存颗粒位于电路板上,显存控制器位于GPU芯片内部;数据中心加速器中的HBM(High Bandwidth Memory,高带宽内存)可以与处理芯片处在同一封装系统中,但属于独立的存储芯片结构。
三、从任务出发:SM、线程块与Warp如何配合
硬件结构说明设备放在哪里,任务结构说明工作如何分配。当应用发起一个计算内核,也就是在GPU上执行的函数,工作被组织为线程块,线程块中平行执行的32个线程形成一个Warp(在英伟达的架构中)。线程块被安排到SM,Warp的指令由调度器交给相应执行单元,任务与硬件通过这条关系连接起来。
线程是带有编号、执行状态和数据的小任务,物理核心是执行任务的设备。程序发起100万个线程,表达的是100万份工作,而芯片可以通过分批执行处理这些工作,就像工厂中的订单数量与设备数量不一定一一对应,把线程数理解为核心数,相当于要求工厂每接一份订单就安装一条生产线,显然是不现实的。所以,一个Warp执行加法时,各个活跃线程处理各自的数据位置;如果线程进入不同条件分支,硬件需要处理不同路径,部分执行位置在对应阶段闲置,这种情况称为Warp分歧。Warp调度器从具备执行条件的Warp中选择工作,并向执行单元发出指令。一个Warp等待数据时,另一个已经准备好的Warp可以获得执行机会,这种安排用于隐藏延迟(Latency Hiding),避免SM无工可出、无活可做,隐藏延迟依赖当前可执行的任务,但无法消除显存访问的物理耗时,也无法突破数据传输上限。
寄存器、共享内存和硬件限制决定一个SM能够容纳多少线程任务,数据依赖决定哪些任务可以执行。增加并发任务数量需要满足这些条件,任务堆积与性能提升之间不存在固定比例,如果一座工厂中的所有任务都在等待材料输入,那么调度工作面临的就是供应问题,单纯增加工人排班无法解决这个问题。
四、从数据流出发:算力与带宽怎样形成瓶颈
模型权重参与计算,需要经过存储系统到达执行资源。缓存命中能够减少外部显存读取,中间结果保存在寄存器或共享内存中能够支持复用,计算完成后按需要写回。程序组织得当,可以让一次读取服务多次运算,减少单位计算所需的数据搬运。也就是说,计算量与数据传输量共同决定任务需求。如果任务每读取一份数据就进行大量运算,计算能力就是该任务的瓶颈;如果读取大量数据只完成少量运算,则带宽就是整个任务的瓶颈。因此,查看显卡参数表时,算力和显存带宽就相当重要。
假设生成一个token需要读取2GB数据,显存带宽为1000GB/s,那么数据传输时间为2÷1000=0.002秒,即2ms。如果计算本身需要0.2ms,则传输会占据较大耗时。实际上,计算与传输存在重叠计算的部分,缓存、调度和其他访问也会影响总耗时,因此上述示例仅提供分析尺度,实际生成速度需要多轮测试。单步读取的数据量也需要按运行行为估算,模型文件大小、激活参数数量和真实显存流量之间也存在区别。
另外,显卡中的PCIe(Peripheral Component Interconnect Express,外围组件快速互联)带宽与显存带宽属于不同传输链路。前者影响主机与显卡之间的数据传输,后者影响GPU访问自身显存。如果权重驻留显存,生成过程主要使用显卡内部的数据路径;如果部分权重放在系统内存,按需传入显卡,主机连接也会影响模型性能,这就可以解释为什么即便显存不足也可以运行模型,但非常不推荐,实在是性能耗不起。
五、从工作阶段出发:预填充、解码与训练需要什么
语言模型推理包含预填充(prefill)和解码(decode)两个阶段。预填充处理提交的输入,利用矩阵运算组织多个token的计算;普通自回归解码根据已有内容生成下一个token,新结果成为后续步骤的输入条件。两阶段的工作形态不同,瓶颈需要分别判断。
较长输入和较大批次能够让同一份权重服务多个token,形成大量计算,算力成为需要检查的指标。单用户解码每步生成一个新token需要读取相应权重并访问KV cache,显存带宽和缓存访问对速度具有重要影响。模型结构、序列长度、批次和实现方式决定具体约束情况,但这些判断都属于分析方向,不一定适合每种情况。
训练包含前向传播、反向传播和参数更新,需要保存参数、梯度、优化器状态以及供反向传播使用的中间激活值。推理所需显存与全参数训练所需显存需要不同级别的显存容量,也就是说能够进行推理的模型环境配置不一定能够进行模型训练。
六、从部署方案出发:量化、多卡与成本取舍
量化用位数较少的格式近似表示参数,降低权重存储需求,从而减少GPU内部的数据传输压力,也就是,量化是通过保持参数数量原有规模的前提下,改变模型参数数值的精度,从而降低参数存储空间,比如100亿参数的模型参数从16位表示改为4位表示,忽略额外开销情况下,所需的显存空间会从约20GB降至约5GB。
但量化需要处理缩放因子、分组方式、部分参数保留高精度以及数值误差等问题,以及硬件和软件是否支持对应格式,决定计算是否获得收益,另外额外转换和解量化操作会产生开销。
模型参数所需的显存超过单卡容量时,采用张量并行可以拆分同一层的参数与计算,流水线并行可以将不同层分配给不同设备,但跨卡通信、任务分配和等待仍会造成额外的性能消耗。
另外,在计算算力资源的成本时,成本核算应围绕完成工作的平均费用角度,而算力租赁的平均成本。假设配置A每小时3元、持续输出50 token/s,配置B每小时4元、持续输出80 token/s,在相同质量、持续满载且费用按运行时间计算的条件下,生成100万个token,配置A约需5.56小时、花费16.67元,配置B约需3.47小时、花费13.89元,从完成工作的成本角度,显然配置B更加划算,尽管配置A的租赁费用更低。
七、总结:把GPU知识变成一条诊断链路
AI工程师需要掌握的GPU原理,总的来说可以归纳为三个层次:容量层面,要核算全部参数、KV cache 和运行开销;执行层面,要理解SM承载任务、Warp组织执行、各类计算单元承担不同指令;系统层面,要判断显存访问、主机传输和跨卡通信如何影响训练与推理。
面对一个部署任务,分析顺序应从模型和负载开始:确定参数格式、上下文长度与并发需求,建立显存预算;区分预填充、解码和训练,测量计算、搬运与等待;检查软件支持和硬件配置,再比较量化、多卡或批处理方案;最后依据任务质量、用户延迟、吞吐量和实际费用选择配置。
回到文章开头的问题,模型装得下、输出却很慢时,可以沿着任务和数据排查:计算设备在执行什么,数据来自哪里,时间消耗在哪个环节,以及下一项改动能否作用于这个环节。完成这些判断之后,硬件升级才是最后的工程决策,而不是一上来就购买一张价格更高的显卡。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:洞源实验室 裴伟伟
裴伟伟《模型运行慢?AI工程师需要理解的GPU原理》