假设你要同时开两家餐厅,招牌菜都是同一道——大语言模型。第一家叫 GPU:它请来一万名厨师站在开放式厨房里,菜单(线程)一到,谁空谁接,忙起来门口排长队,闲下来厨师面面相觑。优点是能一次性办一千人的宴席(高吞吐),缺点是单独一个客人那盘菜什么时候上,全看运气(延迟波动)。第二家叫 LPU:它把后厨改成一条寿司传送带,五个站点各干一件事,开业前就把时刻表排死(静态编译),每个盘子以固定速度前进,单点一份寿司 30 秒必到,误差不超过一秒。缺点是传送带只认寿司,想临时炒个菜?没辙。 这两家餐厅,就是今天的主角:GPU 与 LPU。GPU 靠大规模线程并行加动态调度赢得高吞吐,LPU 靠确定性数据流加静态编译赢得低延迟。本文用“厨房”这个比喻贯穿始终,从架构、调度、延迟、编程、能效、场景、生态七个维度全面对比,帮你搞清楚:什么任务该去哪家餐厅吃饭。
掌握 GPU 与 LPU 的取舍逻辑,才能为推理服务选对引擎、控住延迟预算与成本——这是大模型落地时代越来越稀缺的硬技能。
可视化演示
双模式对比LPU与GPU:架构对比(LPU确定性数据流vs GPU多SM并行调度)和性能对比(延迟/吞吐/batch/编程/能效五维度评分)。
本节配有交互动效(进入视口后自动加载,约 3KB)。
架构对比 LPU:确定性数据流+静态编译+SRAM近存计算 GPU:SIMT多线程+动态调度+HBM高带宽 LPU: low_latency | GPU: high_throughput LPU追求极低延迟,GPU追求高吞吐量。
架构设计哲学
老板要开一家能天天量产同款 AI 大菜的中央厨房,两位设计师各交一份图纸。A 图纸是开放式大排档:一百名厨师每人一小灶,谁拿到单谁煮,追求“同一时间出锅的菜最多”。B 图纸是寿司传送带:只有五六个站点,每个站点只做切鱼、捏米、摆盘中的一个动作,追求“每道菜的节奏完全可控”。前者是 GPU,后者是 LPU。
GPU 的架构哲学从显卡时代就定型了:用海量简单小核心(上千个 CUDA core)堆出高吞吐,靠运行时调度器把任务塞给空闲核心。LPU 则信奉另一套信条——算数很便宜,搬数据才是瓶颈,于是把芯片设计成一条数据流流水线,并采用哈佛架构(指令存储与数据存储分开)避免取指令和数据搬运抢同一条路,让每个时钟周期都有确定的数据到达乘加单元。
两者都受“内存墙”约束:芯片算得再快,喂不饱数据就是空转。GPU 的策略是堆并行度——同时运行上千个线程,让总线始终有人排队取数,从而逼近峰值带宽;LPU 的策略是堆确定性——用大容量片上 SRAM 与静态流编排,让每个周期该搬哪个数据都是编译期定好的,小并行度也能吃饱带宽。于是带宽利用率 η 成了度量“喂食效率”的标尺。
大排档要热闹,靠人海把档口占满;传送带要稳,靠每个站点精确的喂料时刻表。同样是“喂饱做菜单元”这件事,两种思路从这里开始分道扬镳。
- B_有效 是什么实际搬运进运算单元的有效数据量,单位是 GB/s。
- B_峰值 是什么硬件理论极限带宽,由内存位宽与工作频率共同决定。
- η 的含义GPU 需要高线程并行才能逼近 1,LPU 靠确定性数据供给在小并行下也能接近 1。
调度执行机制
后厨最乱的时刻是高峰期。大排档没有固定流程:菜一进后门,谁空谁接,厨师还会临时换锅(上下文切换),订单一多,门前排起长队。寿司传送带恰好相反:开店前师傅就把皮带速度和站点顺序排成时刻表,运行时没有任何人需要“现场决定”下一步——一切都在编译期(开店前)定完了。
GPU 的调度是动态的:warp scheduler(线程束调度器)在每个周期挑选就绪的线程束上执行单元,并且靠线程超量分配——创建比物理核心多几倍的线程——让一组线程等数据时立刻切换另一组上来,把“等待访存”变成“切换线程”,从而榨干吞吐。代价是:单个请求的命运取决于当时负载,延迟天然有方差。
LPU 的调度是静态的:编译器把计算图翻译成逐周期的硬件动作,数据在流水线站点之间按固定节拍前进,运行时不设仲裁器、不排队。利特尔定律告诉我们,系统里滞留的请求越少,单个请求等待越短——LPU 牺牲灵活性,换来的正是“滞留请求趋近于零”的确定性。
大排档的队伍长短全看运气,传送带的队伍永远不会超过站点总数。动态调度换来的是“什么都能炒”的自由,静态编译换来的是“每秒都一样稳”的承诺——看你愿意为哪一种买单。
- λ 平均到达速率新请求进入厨房的节奏,单位是“个/秒”,高峰时 λ 暴涨。
- W 平均响应时间每个请求从进队到出锅的耗时,包含排队与服务两段。
- L 在途请求数系统内同时滞留的请求总量,三者同涨同跌,是“队伍长度”。
延迟吞吐对比
客人真正在意的是“我点的这盘菜多久上”,也就是单请求延迟。大排档高峰期一小时能出 1000 盘(吞吐高),但单盘可能要等 15 分钟,而且忽快忽慢;传送带一小时只有 400 盘(吞吐低),但第一盘 30 秒必到,误差不超过一秒。
衡量大模型服务体验的第一个指标是首 token 延迟(TTFT,Time To First Token):用户发出问题到看见第一个字的间隔。它由三段组成:排队时间、调度开销、计算时间。GPU 在高并发下把资源优先喂给大批次请求,单个请求排在后面,T_排队 迅速膨胀;LPU 的静态流水线让每个请求以固定节拍穿过五个站点,三段时间都近乎常数。
于是出现有趣的倒挂:论聚合吞吐(tokens/秒),GPU 在大 batch 下遥遥领先;论单请求延迟(毫秒/请求),LPU 在实时交互下完胜。批次越大 GPU 越划算,但交互场景凑不起大 batch——用户等不了别人一起生成,这正是 LPU 的用武之地。
宴会拼产出,堂食拼稳定。点单模式决定该选哪家厨房,而不是单纯看谁“快”——吞吐与延迟,从来是两个维度的指标。
- T_排队请求在队列里等待空闲资源的时间,是 GPU 延迟波动的主要来源。
- T_调度运行时分配执行单元与切换上下文的开销,大排档厨师“换锅”的时间。
- T_计算数据真正流经算数与访存单元的时间,LPU 靠编译期编排让它近似常数。
编程开发体验
想在大排档掌勺,厨师得学几百道菜并懂得协作:什么时候抢单、什么时候让锅、怎么拼桌(共享显存),这是 CUDA 的心智模型。想给传送带排行程,你只需要画一张“有哪些站、按什么顺序、盘子怎么走”的路线图,细节时刻表交给师傅(编译器)去排。
GPU 编程用 CUDA/C++,开发者要管理 grid-block-thread 三级层次、同步与共享内存,还要主动做线程超量分配来隐藏访存延迟。这套模型对“并发控制”的要求极高,新手写出的 kernel 常常利用率惨淡——线程多了打架、少了饿肚子。LPU 编程更接近数据流:把模型画成算子图,由静态编译器映射到流水线站点并排出逐周期计划。开发者不用管线程、锁和调度,心智负担从“并发”转移到“数据流拓扑”。
代价是:任何结构改动都要重新编译,不可能像 GPU 那样在运行时灵动应变。超量比 R 这个指标能形象说明差异:GPU 鼓励你写 4 到 32 倍于核心数的线程来藏延迟,而在 LPU 的编程模型里,这个概念根本不存在。
大排档培养的是全能应变厨师,传送带要的是会画路线图的规划师。两套开发体验没有绝对好坏,只看你的团队更擅长“管理并发”还是“设计拓扑”。
- N_线程开发者创建的线程总数,CUDA 程序中常远超物理核心。
- N_核心物理执行单元数量,一块 GPU 上可达数千个。
- R 超量比GPU 靠超量线程切换隐藏访存延迟,LPU 不需要,因为流水线已静态排满。
能效资源利用
深夜没有客人时,大排档的厨师仍开着灯候场,调度器和一堆线程上下文也在偷偷耗电;传送带则只有盘子经过的站点在动作,没菜时皮带停转,能源一分不多花。这个画面,就是两者能效差异的缩影。
GPU 的功耗大头有四块:海量线程上下文、动态调度器、高带宽 HBM 显存的持续供电、以及负载不足时的执行单元空转。服务类负载往往长期处于中低利用率,此时大量核心闲着吃电,有效能效骤降。LPU 以 SRAM 为主要数据介质,数据供给路径短且确定,没有“为了隐藏延迟而空转”的浪费,单位功耗产出的 token 数在低并发场景显著占优。
数据中心账本上,能效 E 直接决定单 token 成本。GPU 在满载大 batch 时能效并不差,但真实推理服务的负载曲线像潮汐,波谷期的空转才是成本黑洞——这正是 LPU 撕开的口子。
煤气费账单很诚实:大排档高峰时摊薄成本划算,深夜只剩几个客人简直是烧钱;传送带无论流量宽窄,都能保持低成本运转。能效这笔账,要按负载曲线来算,而不是按峰值功率算。
- 吞吐量每秒产出的 token 数,推理服务最关心的聚合指标。
- 功耗平均功率,包含计算单元与数据搬运的全部能耗。
- E 能效比每瓦每秒的 token 产出,LPU 在低并发场景优势明显,GPU 在满载时迎头赶上。
应用场景选择
聪明的老板不会只开一种厨房:外卖平台高峰(高并发批量订单)交给大排档,高端堂食(实时交互)交给传送带,两种都做最赚钱。硬件选型也是同样的道理。
模型训练必须喂海量数据、做海量矩阵运算,而且不在乎单个 step 的延迟——这是 GPU 的天然主场;离线批量推理(摘要、分类、向量化)同样吞吐优先,GPU 性价比最高。反过来,实时对话、Agent 多轮工具调用、流式输出对首 token 延迟和稳定性极其敏感,用户等不了“凑一个大 batch 再一起算”,LPU 的确定性流水线正好命中这个需求。
现实中更常见的是混合部署:路由网关按延迟预算把交互流量导给 LPU 实例,把后台批量任务导给 GPU 实例。做决策时别只看采购价,要算总成本——延迟损失系数 β 越大(比如金融交易助手、医生问诊系统),越值得为低延迟硬件付费。
选厨房看客源结构,不看哪家厨师名气大。没有万能硬件,只有匹配场景的部署组合——训练、离线、实时,各回各家。
- C_硬件采购成本按服役期摊销,GPU 单价高但通用性强。
- C_能耗电费与散热投入,长期运行的隐形大头。
- β × L_平均 时延损失平均延迟乘以每毫秒业务损失系数,实时场景 β 远大于离线场景。
生态演进趋势
大排档的菜谱满街都是,任何厨师跟着学都能上手(CUDA 十几年沉淀的库、框架、教材);传送带是祖传秘方,部件专用,学的人少但目标精准。技术生态的扩散就像一条 S 曲线:先慢热,再爆发,后饱和。
GPU 的护城河不只是硬件,更是 CUDA 生态——PyTorch、TensorFlow、vLLM、Triton 全部优先拥抱它,换硬件的迁移成本极高。LPU 的软件栈年轻但目标明确:专攻 LLM 推理的计算图编译与运行时,不做通用计算。更广的视野里,TPU、NPU 和各种专用加速器都在蚕食通用 GPU 的领地,AI 芯片进入“专用化浪潮”。
但竞争之外,融合已经开始:GPU 厂商不断优化推理侧的确定性调度与批处理策略,LPU 类芯片则逐步开放更多算子与可编程性。未来的 AI 芯片格局大概率不是“谁取代谁”,而是分工细化后的生态共存——就像餐厅最终都会同时拥有大排档和传送带。
新菜谱的流行也逃不过 S 曲线:第一家店门口排队(起步慢),被美食博主一推(爆发),最后满大街都是(饱和)。硬件胜负有时不在芯片本身,而在生态扩散的那条曲线走得有多陡。
- K 饱和规模生态成熟时开发者数量与库体量的上限。
- r 扩散速率网络效应越强增长越快,CUDA 生态的 r 远大于新生框架。
- t_0 拐点时刻增速最快的时刻,之后进入饱和期,再投入边际收益递减。
AI 应用场景
实时 AI 助手与 Agent 推理服务
阶段:模型推理与在线部署
解决的问题:传统 GPU 推理服务在高并发时首 token 延迟波动大(排队加调度抖动),用户感知为“转圈圈”;Agent 多轮工具调用会累积延迟,每轮慢 200ms,五轮对话就慢一秒。LPU 的确定性流水线让每个请求的延迟接近常量,体验稳定可控。传送带接堂食,每桌客人都知道菜 30 秒必到。
具体案例:某智能客服平台把对话模型从 GPU 推理服务切到 LPU 后,首 token 延迟从 600ms±300ms 降到 200ms±10ms,用户重复提问率下降约 18%。
大模型训练与离线批量推理
阶段:模型训练与批处理
解决的问题:训练需要海量矩阵运算和灵活的动态图迭代,GPU 的大规模并行与成熟生态无可替代;离线批任务(摘要、分类、向量化)吞吐优先、延迟无所谓,LPU 的确定性优势在这里派不上用场。办千人宴会,大排档的人海战术最划算。
具体案例:某内容平台每天用 GPU 集群处理 5000 万条评论的情感摘要,按大 batch 填满显存,单条延迟完全不在优化目标内。
混合推理网关的流量路由
阶段:推理服务架构设计
解决的问题:单一硬件无法同时满足实时交互与批量吞吐。网关按延迟预算路由:把实时对话、Agent 调用导给 LPU 低延迟实例,把后台批量任务导给 GPU 高吞吐实例,摊薄整体 TCO。餐厅领位员把堂食客人带到传送带座位,把外卖大单交给大排档后厨。
具体案例:某大模型 SaaS 平台在统一网关配置了两条路由策略:用户聊天和工具调用走 LPU 实例,夜间日志分析和批量向量化走 GPU 实例,整体推理成本降低约 30%。
Python 演示
import randomimport statistics def simulate_gpu(jobs, workers, arrival_interval): """GPU 风格: 动态调度, 服务时间随机波动, 有空闲 worker 才派单""" random.seed(42) queue = [] busy_until = [0] * workers origin = [] finish_time = [] t = 0 next_arrival = 0 done = 0 while done < jobs: if next_arrival == t: queue.append(t) next_arrival += arrival_interval for w in range(workers): if busy_until[w] <= t and queue: arrive = queue.pop(0) service = random.randint(2, 8) busy_until[w] = t + service origin.append(arrive) finish_time.append(t + service) done += 1 t += 1 return [f - a for a, f in zip(origin, finish_time)] def simulate_lpu(jobs, stages, arrival_interval): """LPU 风格: 静态流水线, 每周期整体前移一步, 无排队无抖动""" pipeline = [None] * stages origin = [] finish_time = [] t = 0 next_arrival = 0 done = 0 while done < jobs: if next_arrival == t: pipeline[0] = t next_arrival += arrival_interval if pipeline[-1] is not None: origin.append(pipeline[-1]) finish_time.append(t) pipeline[-1] = None done += 1 for s in range(stages - 1, 0, -1): pipeline[s] = pipeline[s - 1] pipeline[0] = None t += 1 return [f - a for a, f in zip(origin, finish_time)] def report(name, delays): avg = statistics.mean(delays) p99 = sorted(delays)[int(len(delays) * 0.99) - 1] jitter = statistics.pstdev(delays) print(f"{name}: 平均={avg:.1f}周期 p99={p99:.1f}周期 抖动={jitter:.1f}") if __name__ == "__main__": gpu_delays = simulate_gpu(jobs=100, workers=4, arrival_interval=3) lpu_delays = simulate_lpu(jobs=100, stages=5, arrival_interval=3) report("GPU 动态调度", gpu_delays) report("LPU 静态流水线", lpu_delays)
random.seed(42)固定随机种子,让对比实验可复现。queue.append(t)请求先进入等待队列,模拟 GPU 的排队效应。if busy_until[w] <= t and queue:有空闲 worker 才派单,对应动态调度。service = random.randint(2, 8)服务时间随机波动,是 GPU 延迟抖动的根源。pipeline = [None] * stages流水线固定 5 个站点,像传送带的五个工位。if pipeline[-1] is not None:最末端有 token 就出货,每周期最多出一件。pipeline[s] = pipeline[s - 1]所有站点整体前移一步,静态编排的铁律。statistics.pstdev(delays)延迟标准差,运行后会发现 LPU 恒为 0 而 GPU 明显非零。
常见误区
误区看到 LPU 延迟低、能效高的宣传数字,觉得 AI 基础设施应该全部换成 LPU,GPU 可以淘汰了。
正解延迟低不等于吞吐高。GPU 在模型训练和大批量推理的 token 吞吐上仍然领先,而且 CUDA 生态成熟、迁移成本低。比喻:传送带出餐稳定,但办千人宴会还得靠大排档的百人并行。两者是“场景分工”,不是“代际替换”。
为何常见:媒体常拿“快 10 倍”这类标题吸引眼球,忽略了前提是“低延迟推理场景”,读者容易把局部优势误解为全面优势。
误区用 CPU 的直觉套 GPU,以为 GPU 核心少、主频低,所以单请求慢,提升延迟得加核提频。
正解GPU 核心数量非常大(一块卡数千个 CUDA core),延迟高主要来自动态调度、排队等待,以及“必须凑够并行度才能吃饱带宽”的特性。比喻:大排档厨师很多,但单点一道菜要等有空位的厨师、等配菜齐了才能下锅,流程的不确定性造成延迟。
为何常见:人们习惯用单核 CPU 的“频率决定快慢”来理解所有芯片,忽略了 GPU 吞吐优先的设计逻辑。
误区认为每秒能处理 1000 个请求的硬件,单个请求一定也很快。
正解吞吐是聚合视角,延迟是单个请求视角,两者可以严重背离。GPU 一次处理大批请求总吞吐高,但某个请求可能排队很久;LPU 牺牲峰值吞吐换取每个请求稳定。比喻:大排档一小时出 1000 盘,但最后一盘可能等 15 分钟。
为何常见:日常语言里“快慢”太笼统,人们很少区分“系统整体多快”和“我这一个请求多快”两个视角。
误区LPU 把调度全部放在编译期,那换个新模型是不是要重新流片?听起来毫无灵活性。
正解静态编译只是把调度决策从运行时提前到编译期,模型结构变化时重新编译计算图即可,芯片本身支持该算子集就能复用。灵活性确实不如 GPU 万能,但远不是“硬件固化”。比喻:传送带轨道固定,但盘子的摆放顺序可以重新编排——只要还是寿司,轨道不用重铺。
为何常见:把“编译期静态”误解为“硬件不可变”,混淆了资源规划(软件)与硬件能力(硅片)两个层次。
面试题
Q1. LPU 的设计初衷主要是优化哪一类指标?
- A.训练吞吐量
- B.单请求延迟← 正确答案
- C.显存容量
- D.网络带宽
答案:B。LPU 从诞生起就瞄准“低延迟推理”,用静态编译的流水线把首 token 延迟压到毫秒级。A 训练吞吐是 GPU 的强项;C、D 都不是 LPU 的设计重点。好比传送带的目标是“单盘快而稳”,而不是“一次出千盘”。
Q2. GPU 应对 AI 工作负载的核心策略是什么?
- A.大规模线程并行← 正确答案
- B.静态编译流水线
- C.专用扩展指令集
- D.量子比特叠加计算
答案:A。GPU 把任务拆给上千个小核心,靠大规模线程并行和动态调度让总线持续繁忙,以吞吐量取胜。B 静态编译流水线是 LPU 的思路;C 是指令集扩展路线;D 与经典芯片无关。大排档靠人海战术,传送带靠固定节奏。
Q3. 系统内平均请求数、到达率与平均响应时间的关系由哪个定律描述?
- A.香农信道公式
- B.利特尔排队定律← 正确答案
- C.摩尔集成定律
- D.阿姆达尔定律
答案:B。利特尔定律 L = λW,系统里滞留的请求数等于到达率乘以响应时间。GPU 高峰时 λ 大、W 大,L 膨胀,延迟恶化;LPU 用确定性流水把 W 压低。香农公式管信道容量,摩尔定律管晶体管密度,阿姆达尔定律管并行加速上限,都与排队延迟无关。
Q4. 首 token 延迟的正确组成是?
- A.排队加调度加计算← 正确答案
- B.显存加缓存加带宽
- C.并行加流水加预测
- D.编译加链接加运行
答案:A。T_首token = T_排队 + T_调度 + T_计算。GPU 高并发下排队与调度抖动是大头;LPU 通过静态编排把后两项压成常数。B 讲的是存储层次,C 是通用优化手段,D 是编译过程,都不是请求从发出到首字返回的延迟构成。
Q5. GPU 为什么需要超量分配线程?
- A.用切换隐藏访存延迟← 正确答案
- B.用并行摊薄访存开销
- C.用流水提高主频速度
- D.用缓存扩大存储容量
答案:A。访存延迟长达几百周期,若线程数与核心数相等,访存时核心只能干等。超量分配 R=N线程/N核心 让一组线程等数据时立刻换另一组上,把“等待”变成“切换”。就像大排档一个灶眼配多个备菜厨师:主厨颠勺时备菜已切好下一道。LPU 不需要,因为数据何时到达由编译期定好。
Q6. LPU 获得确定性延迟的关键机制是什么?
- A.运行时动态抢占调度
- B.编译期静态编排资源← 正确答案
- C.虚拟机热迁移方案
- D.网络拥塞控制协议
答案:B。LPU 把计算图画成数据流,编译器在编译期排好每个周期、每个站点的动作,运行时没有仲裁和排队,所以延迟恒定。A 动态抢占恰恰是 GPU 的做法;C、D 都不在芯片架构层。好比传送带的时刻表在开业前定死,而不是营业时现商量。
Q7. 混合推理集群中,路由网关通常把实时对话流量送给哪类实例?
- A.LPU 低延迟实例← 正确答案
- B.GPU 高吞吐实例
- C.CPU 兼容性实例
- D.FPGA 可重构实例
答案:A。实时对话对首 token 延迟和稳定性敏感,应路由到 LPU 低延迟实例;后台批量任务(日志分析、离线向量化)留给 GPU 高吞吐实例。CPU 用于兼容性兜底,FPGA 用于自定义算子加速,都不是实时大模型推理的主力。传送带接堂食,大排档接宴会,网关就是店里的领位员。
Q8. 下列哪些是 LPU 相对 GPU 的优势?
- A.延迟波动更小← 正确答案
- B.软件生态更全
- C.能效比更高← 正确答案
- D.训练速度更快
答案:AC。延迟波动更小(确定性流水)和能效比更高(低并发无空转)都是 LPU 的特点。B 软件生态更全是 GPU 的优势(CUDA 积累深厚);D 训练速度更快同样属于 GPU。选 A、C。
Q9. 下列哪些说法正确描述了 GPU 与 LPU 的架构差异?
- A.动态调度对静态编译← 正确答案
- B.通用核心对专用流水← 正确答案
- C.线程模型对数据流图← 正确答案
- D.串行执行对并行执行
答案:ABC。GPU 用动态调度、通用小核心、线程模型;LPU 用静态编译、专用流水线、数据流模型,A/B/C 都正确。D 说 LPU 是串行执行完全错误——LPU 也是并行的,只是并行方式从“人海抢单”变成“流水线各站同时干活”。
Q10. 关于技术生态的 S 曲线,下列哪些说法正确?
- A.起步期增长率最低← 正确答案
- B.拐点处增长最快← 正确答案
- C.成熟期规模饱和← 正确答案
- D.生态增长永无止境
答案:ABC。S 曲线三阶段:起步慢(增长率低)、拐点爆发(增长率最大)、成熟饱和(接近上限 K),A/B/C 正确。D 违背了生态规模存在物理与市场上限的基本事实,饱和后增长趋零。CUDA 生态已走完中段,LPU 生态还在爬坡期。