想象一家为某款爆款手机专门建造的全自动装配工厂。从投产第一天起,传送带就以固定节拍匀速前进,每个工位只做一件预先定死的事:这个拧螺丝、那个贴屏幕、下一个做质检。整条产线不需要班组长现场指挥——谁来、何时来、做什么、做完往哪送,早在工厂设计图纸上安排得明明白白。这就是 Groq LPU(语言处理单元)的设计哲学:把芯片变成一条为你的模型量身定制的确定性流水线。相比之下,传统 GPU 更像一家全能修车铺:什么车都能修,但每个技师每次都要现场判断先做什么、后做什么,这些“现场决策”正是延迟的来源。本文带你从零看懂 LPU 的架构:它如何把整个模型在编译期“预演”一遍,将每个计算与访存动作精确到时钟周期,从而实现极致低延迟推理。
学习 LPU 架构,是理解 AI 芯片从“通用加速”走向“极致专用”的关键一课。掌握确定性数据流思维,能让你在模型推理优化、芯片选型与服务架构设计时做出更专业的判断。
目录
可视化演示
展示Groq LPU核心:功能切片数据流(MEM/MXM/SXM/VXM确定性流水线)、编译期静态调度vs GPU动态调度对比、LPU与GPU在延迟/吞吐/带宽/batch效率上的差异,三步交互演示。
本节配有交互动效(进入视口后自动加载,约 3KB)。
功能切片:TSP确定性数据流 MEM(220MB SRAM)→MXM(矩阵乘)→SXM(激活)→VXM(向量)→MEM 所有操作在编译期映射到固定时钟周期,运行时零调度开销 latency = sum(cycles) × clock_period 确定性数据流实现极致推理延迟。
LPU 缘起:为“秒回”而生的工厂
有家公司想造一座只生产一种产品的工厂,从传送带到工位布局全都围绕这一个产品量身定制。设计阶段费尽心血,但一旦投产,产线就能以最快节奏运转。这家“执拗”的公司就是 Groq。它由谷歌 TPU 创始团队成员创立,核心人物是 TPU v1 首席架构师 Jonathan Ross。他们没有选择再做一个通用芯片,而是决心造一颗专用芯片,只服务一件事:让神经网络模型以极致低延迟做推理。这颗芯片就是 LPU(Language Processing Unit,语言处理单元)。
LPU 定位的微妙之处在于名字本身:它诞生于大语言模型爆发前夕,因擅长跑这类模型而得名;也有人认为它最初的全称是“Linear Processing Unit“(线性处理单元),暗合流水线式的线性执行哲学。设计目标非常清晰:消除一切不必要的动态开销,让每个计算与访存动作都像流水线上的工件一样可预期。为此,Groq 没有沿用 CPU/GPU 的冯·诺依曼指令流体系,而是选择了数据流架构——芯片上排列着大量功能单元,没有程序计数器,没有指令取指。这一决定,等于放弃了”什么都能干”的通用性,换来一条为特定产品定制的超高效率产线。
流水线工厂设计得再好,最终衡量的还是产品下线速度。对 LPU 而言,这个指标就是单个 Token 的延迟。
就像工厂专家们把图纸阶段打磨到极致一样,Groq 把“设计图纸”的哲学贯彻到底。它不追求每一秒转得更快,而追求转过的每一圈都不空转。这正是 LPU 缘起时最根本的选择。
- L_token(单 Token 端到端延迟)一个 Token 从进入芯片到输出结果的总时间,直接决定用户等待的体感。
- T_clock(时钟周期)硬件完成一个最小动作的时间,是主频的倒数;例如 750MHz 下约 1.33 纳秒。
- N_cycles(经过的周期数)该 Token 从输入到输出所经历的时钟周期个数,包含计算、传输与等待的周期。
- 两条降延迟路线提高主频(减小 T)容易带来功耗墙,LPU 则致力于减小 N——让每个周期都干实事。
数据流架构:数据就是发令枪
在 LPU 的流水线工厂里,传送带上既没有闹钟也没有班长——工件到了哪道工位,哪道工位就自动开工。数据本身,就是发令枪。这就是“数据流”(dataflow)的核心:谁的数据先就绪,谁就先执行;数据到达,算子自动点火。整条流水线上不存在“下一步该做什么”的疑问,因为每一步都由上一站的工件“带起来”。
传统处理器是“指令流”驱动的:程序计数器逐条取指令,数据安静地躺在内存里等待被搬动。GPU 虽然并行度极高,本质上仍靠指令流加动态调度来驱动。LPU 则彻底翻转了这个关系:模型的计算图就是一份工艺流程图,芯片在编译期把这张图静态映射到功能单元阵列上。每个功能单元是一个被提前配置好角色的“工位”:有的做矩阵乘法、有的做激活函数、有的专职搬运数据。运行时没有一个字节的指令需要取,没有一行程序需要判断,数据到达即触发执行,像多米诺骨牌一样沿计算图逐级倒下。
这种架构下,芯片的执行布局变成了一张“静态映射表”:每个算子在哪个工位、何时开工、结果送到哪里,全部提前写死。功能单元之间通过片内网络直连,数据沿着预定路径流动。宏观上看,整张计算图就是一条巨型流水线,而一条指令流所需的取指、译码逻辑被彻底省去。GroqChip 正是这样一个由功能单元组成的大规模二维阵列芯片。
整个流水线的完成时间,取决于所有路径中最长的那一条——就像工厂产能由最慢的那道工序链路决定。
流水线工厂的可达产量,永远取决于最慢环节链条的总耗时。数据流架构的价值,就是把路径上的“等待”压缩到趋近于零——工件一到,机器就转,中间没有请示、没有排队、没有犹豫。
- 路径集合 P(路径集合)计算图中所有从输入到输出的路径,每条路径由若干算子和连接它们的数据边组成。
- t_e(边的延迟)数据从一个算子流向下一个算子所花的时间,包括传输时间和就绪等待时间。
- 路径长度求和把一条路径上所有边的延迟累加,得到该路径的总耗时。
- 取最大值(关键路径)最长的路径决定整张图的完成时间,这是宏观上的“木桶效应”。
编译期预排:把每一拍都写进时间表
流水线工厂正式投产前,工业工程师们会做一件极尽精密的事:把所有工序的时间研究得一清二楚,给每个工位排出一份细到秒级的时间表——几点几分,哪颗螺丝被拧紧,哪块屏幕被贴上。一旦投产,工人照表执行,绝无现场讨论。LPU 的编译器,就是这群“工业工程师”。
Groq 编译器接收模型的计算图后,为每个算子分配功能单元、确定开工时钟周期,并为每个中间张量在分布式 SRAM 中静态分配地址。整个数据搬运网络的时刻表在编译期全部敲定。最终产出的不是一串需要逐条解释的指令,而是一份硬件可以直接照单执行的静态时序配置。GPU 的运行时调度器、warp 调度器在这里完全没有存在感,因为“调度”这件事被整体前置到了编译阶段。
运行期零调度开销带来了四个“没有”:没有取指(没有指令可取)、没有译码(每个动作都已是硬配置)、没有发射仲裁(工位冲突在编译期已解决)、没有缓存一致性问题(SRAM 按工位静态分区,地址彼此不重叠)。这就像一个没有调度室的工厂——因为所有调度问题都在图纸阶段解决了。代价是编译时间显著变长,且芯片只认这一张时间表。换一个模型,等于重新排产,这就是“重新编译”的含义。
LPU 运行期的总时间被压缩成只由两件事组成:算和取。
就像只为单一产品设计的工厂,换产品意味着重新排产甚至改造产线,LPU 的“换产线”成本就是重新编译的时间。但推理服务中模型部署频率远低于请求执行频率,这份前置投入被海量请求摊薄后,回报极其惊人。
- T_calc(计算时间项)路径上全部 m 个算子在各自工位上的执行时间之和。
- T_mem(访存时间项)路径上全部 n 次 SRAM 读写花费的时间,地址与时机都是静态确定的。
- 调度项归零传统处理器的延迟公式里还有 T_sched,LPU 把它前置到编译期,故运行期该项恒为 0。
- 核心等式两个求和加起来就是一条请求的完整延迟,没有任何“现场决策税”。
对标 GPU:修车铺与流水线的对决
GPU 像一家招牌写着“什么车都能修”的全科修车铺。正因为什么车都可能进来,每个技师都得先看单子、问诊、判断故障,再决定先动哪颗螺丝。这套“现场决策”流程映射到芯片上,就是取指、译码、调度、发射——每个环节都消耗时间。而 LPU 的流水线只修一种产品,节拍在图纸上定死,不需要问诊,也不需要判断。
GPU 采用 SIMT(单指令多线程)模式:成百上千的线程并行执行同一条指令,但 warp 调度器每个周期都要动态决定把哪些线程块分配到哪个计算单元,还要应对分支发散、缓存未命中等突发状况。数据不在缓存里,就得从显存拉取,产生难以预测的等待。为了不让计算单元饿着,GPU 的策略是用海量并行线程把延迟“藏”起来——藏延迟,而不是消除延迟。
LPU 的策略则完全不同:它没有动态调度延迟可藏,因为调度开销根本不存在。所有访存的地址和时机编译期确定,从 SRAM 取数的等待时间精确可知;所有计算单元的冲突在编译期被化解。于是同样的推理负载下,LPU 的每 Token 延迟可以比 GPU 低一个数量级——不是因为它算得更快,而是因为它不浪费每一个周期。两者的延迟构成差异一目了然。
修车铺赢在“万能”,流水线赢在“极致”。GPU 依然是训练和通用计算的主力,LPU 则把“低延迟推理”这条窄赛道做到极限。两者不是取代关系,而是各守阵地的分工关系。
- T_取指 + T_译码GPU 的线程每执行一条指令都要先读取、再翻译;LPU 无指令可读,这两项为 0。
- T_发射warp 调度器要决定“哪个线程块上哪个单元、何时上”;LPU 的发射时间表编译期已给定,为 0。
- T_计算 + T_访存双方都必须付出的时间,LPU 依靠确定性把这两项压到最短且完全可预期。
- 调度税差额GPU 与 LPU 的延迟差正好等于前三项之和,这就是动态执行模型的“现场指挥”成本。
低延迟性能:让对话像面对面一样
当工厂为一种产品做到极致,产出的节奏会快到什么程度?在推理场景里,LPU 交出的答卷是:首 Token 延迟降到极低,模型续写速度达到每秒数百乃至上千 Token——用户读起来像面对面聊天,而不是盯着转圈等待。这背后不是激进的制造工艺,而是一条毫无空转的产线。
Groq 公开展示的测试中,大模型从收到提示到吐出第一个 Token,通常只需毫秒级时间;后续每个 Token 的间隔也被压到极短。对比传统 GPU 上动辄一两秒的等待,这是数量级的提升。更难得的是延迟的“可预期性”:确定性架构意味着最差情况与平均值相差无几——没有调度抖动,没有缓存毛刺。对在线服务而言,稳定的 P99 比亮眼的平均值更宝贵。
从硬件规格看,GroqChip 初期采用 14nm 工艺,主频约 750MHz,并不激进。它没有靠高频堆性能,而是靠“每个周期都不白过”获得高效率。芯片内置大容量分布式 SRAM(合计约两百 MB 级别),片内带宽可达每秒数十 TB 量级,配合静态时序,使数据搬运几乎不成为瓶颈。LPU 的哲学是:低主频 + 零空转 = 同样甚至更低的实际延迟。
推理吞吐是另一个关键指标,它由首 Token 延迟与后续 Token 的平均间隔共同决定。
低延迟的本质是“去掉等待”:相比修车铺式的通用平台,为单一产品定制的流水线总能在节拍上精确合拍。这也是为什么 Groq 云服务能吸引大量实时 AI 应用——用户要的不是“更快一点点”,而是“感觉不到等待”。
- N(生成 Token 总数)一次推理任务要输出的 Token 数量,任务越长越接近稳定吞吐。
- L_首token(首 Token 延迟)从输入到第一个 Token 产生的时间,决定用户的第一反应速度。
- Δbar(平均 Token 间隔)后续每个 Token 的平均生成时间,由流水线的稳定节拍决定。
- 吞吐公式总 Token 数除以总耗时,即单位时间能生成的 Token 数。
局限与展望:完美工厂的短板
只修一种产品的工厂有致命软肋:如果产品太大,流水线根本放不下。LPU 同样如此——模型必须完整装进片上 SRAM,因为它没有外接 HBM 这类大容量显存。一旦模型超过容量,就得拆成多份、用多颗芯片拼接,而跨芯片通信会引入新的延迟与复杂度,让“极致低延迟”的优势打折扣。
具体来看,LPU 的局限有三层。第一是容量限制:参数和中间激活都要住进 SRAM,超大模型必须用多芯片编排,跨芯片传输延迟比片内高一个数量级。第二是生态限制:LPU 主要面向推理,训练场景的支持非常有限;算子覆盖依赖编译器适配,遇到特殊算子需要额外开发。第三是编译器依赖重:模型改动后要重新编译,调试工具链远不如 GPU 生态成熟。这些短板,都是“专用化”必须付出的代价。
展望未来,确定性数据流的思想正被更多芯片公司借鉴。随着大模型在线服务、实时语音交互、AI Agent 的爆发,低延迟推理市场越来越大。Groq 也在迭代新芯片与软件栈(如 GroqFlow),试图降低“定制工厂”的排产成本,用软件生态弥补硬件的“倔强”。未来的格局大概率不是 LPU 取代 GPU,而是各司其职:GPU 负责“什么都能干”,LPU 负责“干得最快”。
容量约束是 LPU 最硬的一道天花板,用公式表达就是模型的“体积”必须装进芯片的“仓库”。
就像超级工厂并不适合小批量定制一样,LPU 的取舍清晰而诚实:它放弃通用性,换取推理这条流水线上无人能及的节拍。理解这份取舍,比记住任何参数都更重要。
- M_模型(模型权重总量)模型全部 L 层参数在量化表示下占用的存储量。
- M_激活(中间激活量)推理时每层产生的临时张量,同样必须住进 SRAM。
- S_片上SRAM(片上总容量)芯片自带分布式 SRAM 的总和,是 LPU 唯一的数据仓库。
- 超容量代价放不下就得拆到 C 颗芯片上,并扣除跨芯片通信开销。
AI 应用场景
实时语音对话助手
阶段:模型推理部署与调优
解决的问题:传统 GPU 推理延迟高且抖动大,语音助手说完话要等一两秒才应答,偶尔还卡顿。LPU 把首 Token 延迟压到几百毫秒甚至更低,且确定性架构让 P99 延迟稳定,用户体验从“对讲机”变成“面对面”。
具体案例:某语音创业公司在 GroqCloud 上部署 70B 级对话模型,用户话音刚落,助手几乎同时开始回应;实时打断、多轮抢话成为可能,产品留存率显著提升。
AI Agent 工具调用链
阶段:推理服务
解决的问题:Agent 每完成一个步骤都要调用一次模型,多次推理串行叠加,延迟成倍累积。若每次模型响应都慢,用户等得心焦。LPU 的毫秒级响应让 Agent 的“思考链”整体提速,工具调用不再有卡顿感。
具体案例:某客服智能体在高峰时段用 LPU 集群承载 ReAct 工作流,每轮推理从秒级降到百毫秒级,用户几乎察觉不到背后发生了多轮模型调用。
高并发在线推理服务
阶段:推理服务部署
解决的问题:GPU 在高并发下会因调度与缓存抖动出现长尾延迟(P99 飙高)。LPU 的确定性执行让每个请求的延迟分布极窄,服务商能在保证 SLA 的前提下显著提高 QPS 上限。
具体案例:某内容平台用 LPU 集群做实时摘要与审核,峰值 QPS 提升数倍而 P99 依然平稳,运维告警大幅减少,GPU 集群被释放去跑训练任务。
Python 演示
"""Simulate LPU style deterministic dataflow scheduling vs GPU style dynamic scheduling."""import random class Op: """One operator node in a tiny computation graph.""" def __init__(self, op_id, deps, cycles=1): self.op_id = op_id self.deps = deps # list of dependency op ids self.cycles = cycles # execution cycles def build_graph(n_ops=10, fan_in=2): """Build a small DAG: op i depends on some earlier ops.""" graph = [Op(0, [])] for i in range(1, n_ops): deps = random.sample(range(i), min(fan_in, i)) graph.append(Op(i, deps, random.randint(1, 2))) return graph def schedule_static(graph, units=3): """Compiler time schedule: map each op to (start cycle, functional unit).""" free_at = [0] * units start = [0] * len(graph) unit_of = [0] * len(graph) for op in graph: ready = max([start[d] + graph[d].cycles for d in op.deps], default=0) u = min(range(units), key=lambda i: max(free_at[i], ready)) start[op.op_id] = max(free_at[u], ready) unit_of[op.op_id] = u free_at[u] = start[op.op_id] + op.cycles return start, unit_of def simulate_dynamic(graph, tax=1): """Dynamic schedule model: every op pays a scheduling tax of `tax` cycles.""" finish = [0] * len(graph) for op in graph: ready = max([finish[d] for d in op.deps], default=0) finish[op.op_id] = ready + tax + op.cycles return finish def main(): random.seed(7) graph = build_graph() start, unit_of = schedule_static(graph) finish_lpu = [start[op.op_id] + op.cycles for op in graph] finish_dyn = simulate_dynamic(graph) print("op deps start unit lpu_fin dyn_fin") for op in graph: deps = ",".join(str(d) for d in op.deps) or "-" print(f"{op.op_id:>2} {deps:>5} {start[op.op_id]:>5} {unit_of[op.op_id]:>3} {finish_lpu[op.op_id]:>7} {finish_dyn[op.op_id]:>7}") print(f"\nTotal makespan: LPU static = {max(finish_lpu)} cycles") print(f"Total makespan: GPU style dynamic = {max(finish_dyn)} cycles (tax={1} cycle/op)") if __name__ == "__main__": main()
ready = max([start[d] + graph[d].cycles for d in op.deps], default=0)数据就绪时刻等于所有依赖算子中完成最晚的那个,这就是“数据即发令枪”。u = min(range(units), key=lambda i: max(free_at[i], ready))编译期就锁定最早空闲的工位,运行期不需要再找。start[op.op_id] = max(free_at[u], ready)开工周期取“工位空闲”与“数据就绪”的较晚者,把资源冲突在图纸阶段消掉。finish[op.op_id] = ready + tax + op.cycles动态调度模型里每个算子都要额外付 1 拍调度税,对应 GPU 的取指与发射开销。random.seed(7)固定随机种子,保证每次运行生成同一张计算图,结果可复现。
常见误区
误区我一看 LPU 主频才 750MHz,GPU 都 1.5GHz 以上了,它怎么可能算得更快?主频低就是落后。
正解LPU 快不靠主频,靠的是每个周期都干实事。GPU 主频虽高,但大量周期花在取指、译码、发射、等待缓存上。流水线工厂的工人步伐不快,但一接料就干活、从不抬头问“我现在该干嘛”,总产出反而更高。主频只是表面转速,有效周期占比才是关键。
为何常见:我们用主频衡量 CPU/GPU 强弱已经几十年,把它当成了判断算力的直觉指标,忽略了架构效率这个更重要的维度。
误区LPU 推理比 GPU 快这么多,那未来 GPU 是不是没用了?所有 AI 芯片都会被 LPU 取代吧?
正解两者赛道完全不同。GPU 是“什么都能修”的通用车间,训练、渲染、科学计算样样得心应手;LPU 是“只为一种产品设计”的专用工厂,只擅长低延迟推理,而且模型还必须放得进片上 SRAM。训练大模型、跑超大模型、处理多样化算子,这些恰恰是 LPU 的短板。未来更可能是各司其职,而非互相取代。
为何常见:把“某个指标快”直接等同于“全面更强”,忽略了专用芯片在通用性上的巨大代价。
误区GPU 有 L2 缓存,LPU 应该也有缓存吧?那它同样会遇到缓存没命中、然后变慢的情况。
正解LPU 没有传统意义上的 cache,也不存在“缓存未命中”。它的权重和中间激活存放在分布式 SRAM 里,地址和读写时机都在编译期静态分配好,每次访存都是确定性的“必然命中”。它把“找数据”变成了“准时取料”,而不是“碰运气”。
为何常见:我们对现代处理器“缓存—主存”的层次结构太熟悉,习惯性地把 LPU 也套进这个模型,却没意识到静态 SRAM 管理彻底绕开了缓存的命中率问题。
误区LPU 延迟这么低,那它的吞吐一定也碾压 GPU 吧?低延迟和高吞吐不是一回事吗?
正解延迟和吞吐是两个维度。LPU 的强项是单条请求延迟极低且稳定;但在需要超大 batch 的吞吐密集型场景,GPU 依靠庞大的并行规模依然可能占优。LPU 真正擅长的是“很多用户、每个用户都要秒回”的延迟敏感场景,而不是一味堆吞吐。
为何常见:日常口语里“快”既指延迟低也指吞吐高,两者被混为一谈。在芯片评估中,必须用首 Token 延迟、Token 间隔、QPS 等指标分开度量。
误区LPU 编译一次模型要花好几分钟甚至更久,太慢了,肯定是它软件栈做得不行。
正解编译慢恰恰是“把复杂度前置”的体现:编译器要完成算子分配、时序排定、SRAM 地址分配等大量工作,相当于工厂设计整条产线。运行期因此变得极快。对推理服务来说,模型部署频率远低于执行频率,一次性编译成本摊薄到海量请求上非常划算。
为何常见:我们用惯了“即插即用”的动态运行时,容易把前置成本当成缺陷,而没算清“编译一次、执行亿万次”的整体账。
面试题
Q1. Groq LPU 的核心设计目标是什么?
- A.训练超大规模语言模型
- B.极致低延迟在线推理← 正确答案
- C.高性能科学计算模拟
- D.实时图形渲染与采集
答案:B。LPU 是 Groq 为推理场景设计的专用芯片,核心追求是把 Token 延迟压到最低;训练、科学计算、图形渲染都不是它的定位。选 B。
Q2. LPU 采用的执行方式属于哪一类?
- A.确定性数据流执行← 正确答案
- B.动态指令流调度
- C.严格乱序执行机制
- D.程序计数器驱动
答案:A。LPU 采用数据流架构,数据就绪即触发计算,没有程序计数器;动态指令流调度、乱序执行、PC 驱动都是传统处理器或 GPU 的特征。选 A。
Q3. 与 GPU 相比,LPU 主要消除的开销是?
- A.底层物理运算的开销
- B.取指译码发射的开销← 正确答案
- C.芯片散热管理的开销
- D.互联总线通信的开销
答案:B。GPU 的 warp 调度器每周期都要取指、译码、发射,这套“现场指挥”就是调度开销;LPU 在编译期把这些定死,运行期归零。物理运算、散热、总线通信在 LPU 上依然存在。选 B。
Q4. 在 LPU 中,把计算图映射到芯片上的是谁?
- A.运行时调度器动态分配
- B.操作系统实时抢占式管理
- C.编译器静态映射生成← 正确答案
- D.固件逐层解释执行
答案:C。LPU 的编译器在编译期把每个算子分配到功能单元并排定时序,运行期不需要调度器,也不需要操作系统和固件介入。选 C。
Q5. LPU 芯片上的模型权重存放在哪里?
- A.分布式片上静态内存← 正确答案
- B.外部高带宽显存条
- C.普通内存条扩展卡
- D.固态硬盘持久存储
答案:A。LPU 没有外接 HBM,权重与中间激活都存放在分布式 SRAM 中,由编译器静态分配地址与读写时机,保证每次访问确定性命中。选 A。
Q6. LPU 主频往往低于 GPU,为什么推理延迟反而更低?
- A.集群计算规模更庞大
- B.流水线杜绝空转与等待← 正确答案
- C.拥有更大容量的缓存
- D.编译器深度向量化加持
答案:B。LPU 的低延迟来自“每个周期都干实事”:没有取指等待、没有调度仲裁、没有缓存未命中,流水线按固定节拍匀速前进,空转几乎为零。主频低但有效周期占比高。选 B。
Q7. LPU 的确定性数据流适合哪些应用场景?
- A.实时语音对话助手← 正确答案
- B.高频工具调用智能体← 正确答案
- C.大模型预训练集群
- D.高并发在线推理服务← 正确答案
答案:ABD。实时语音、高频 Agent 工具调用、高并发在线推理都极度依赖低延迟与稳定的 P99;而大模型预训练需要海量显存与高吞吐大 batch,LPU 并不擅长。选 A、B、D。
Q8. 关于 LPU 局限性的说法,正确的是?
- A.模型须装入片上存储← 正确答案
- B.权重可存放在主机内存
- C.大模型需多芯片拼接← 正确答案
- D.任意算子格式均可直接执行
答案:AC。LPU 用 SRAM 而非 HBM,模型必须塞进片上 SRAM;超出容量就要多芯片拼接,跨芯片通信带来额外延迟。LPU 不支持权重放主机内存,算子支持也依赖编译器适配。选 A、C。
Q9. “LPU 无动态调度”这句话的正确理解是?
- A.调度表在编译期已生成好← 正确答案
- B.表示完全不存在任何调度
- C.由硬件随机选择执行路径
- D.由用户手工逐拍控制
答案:A。“无动态调度”指运行期没有调度器现场决策,而不是没有调度——调度这件事被前置到编译期,以静态时序表的形式存在。选 A。
Q10. 以下哪些属于数据流架构的特征?
- A.计算图静态映射到芯片← 正确答案
- B.运行由数据到达来驱动← 正确答案
- C.依赖程序计数器取指执行
- D.运行期不需要任何调度决策← 正确答案
答案:ABD。数据流架构的核心是静态映射计算图、数据驱动执行、运行期零决策;程序计数器取指是冯·诺依曼体系特征,与数据流正相反。选 A、B、D。