
摘要
快速扩展的LLM揭示了当前硬件架构的重要不足,包括存储容量的限制,计算效率的限制,和互联带宽的限制。Deepseek-V3基于2048个英伟达H800 GPU进行训练,展示了基于硬件的模型协同设计可以有效的解决这些挑战,从而获得大规模低成本的训练和推理。这篇文章展示了一个deepseek V3/R1模型架构和AI基础设施的深度分析,重点指出了关键创新点:用多头潜在注意力机制(MLA)来提高存储效率;混合专家模型(MoE)架构来优化计算和存储的平衡;FP8混合精度训练来解锁硬件能力的完整潜力;以及一个多平面网络拓扑来最小化集群级网络成本。基于在deepseek-V3开发过程中遇到的硬件瓶颈,我们和工业界和学术界的朋友关于未来硬件的方向,包括精确低精度计算单元,scale-up和scale-out收敛,以及低时延通信架构的创新进行了更加广泛的讨论。这些亮点揭示了在面对迅速增长的AI负载时模型和硬件协同设计的重要作用,为下一代AI系统的创新提供了一个实践蓝图。
CCS 概念
计算机系统组织->架构
关键词
大语言模型,混合专家,深度学习,FP8混合精度训练,多平面网络,协同设计
1. 引言
1.1 背景
大语言模型在最近几年在模型设计,计算能力,数据可用性的轮番进步驱动下出现了快速的进步。在2024年,突破性的模型,像GPT4o,LLaMa3,Claude3.5 Sonnet,Grok-2,Qwen2.5,Gemini2和我们的Deepseek V3展示出了巨大的进步,进一步缩小了和通用人工智能AGI的距离。就像Scaling Laws所展示的那样,增加模型的大小,训练数据,和计算资源,会大大的提高模型的性能。表明了在发展AI能力中,scaling的关键角色。总之,这些发展引领了AI时代,扩展模型的大小和计算能力是解锁更高级智能的关键。
最新的进展,像OpenAI o1/o3系列模型,Deepseek-R1,Claude-3.7 Sonnet,Gemini2.5 Pro,Seed1.5-Thinking和Qwen3不仅展现了大规模架构带来的好处,也展现了提高推理效率的必要性,尤其是处理长文本和获得更大的推理深度。这些进步说明要获得快速有效的推理,最后还是需要不断增长的计算资源。
为了应对这些挑战,像阿里巴巴,字节,Google,xAI和Meta都部署了庞大的训练集群,拥有上万甚至上10万的GPU或TPU。尽管这样庞大的基础设施可以用于开发最好的模型,他们过高的成本阻碍了小的研究团队和组织参与。尽管有这些屏障,开源的startups,比如Deepseek和Mistral还是积极的开发最佳的模型。在这些startup当中,Deepseek展示了有效的软硬件协同设计可以获得低成本的大语言模型训练效果,提升小团队的发展空间。
Deepseek-V3遵循着这条道路,并代表了低成本训练的里程碑。通过仅利用2048个英伟达H800 GPU,Deepseek-V3可以获得业界最佳的性能。这个成功和之前展示的低成本Fire-Flyer AI HPC呼应了之前关于通过实际和可扩展解决方案推动AI的承诺。Deepseek V3的实践和亮点展示了如何发挥当前硬件资源的全部潜力,给AI和HPC领域带来了一些经验。
1.2 目标
本文不想重复介绍Deepseek-V3的详细架构和算法,这方面在技术报告中已经介绍。本文采用双视角,硬件架构和模型设计,来探索这两者微妙的交互是如何获得低成本,大规模训练和推理的。通过利用这种协同效应,我们目标是提供在不牺牲性能和可操作性的情况下如何有效的扩展LLM的可操作的经验。
尤其,本文专注在:
- 硬件驱动模型设计:分析硬件特性,比如FP8低精度计算和scale-up/scale-out网络特性,启发Deepseek-V3的架构选择。
- 硬件和模型的相互依赖:研究硬件能力如何塑造模型创新和不断演进的LLM如何驱动下一代硬件。
- 未来硬件开发的方向:从deepseek-v3引出可执行的方向来指导未来硬件和模型架构协同设计,推动可扩展低成本AI系统。
1.3 本文的结构
本文的剩下部分是这么组织的:第二章探索deepseek-v3模型架构的设计原则,特别指出像多头潜在注意力机制,混合专家优化和多符号预测模块这样的关键创新。第三章阐述了我们的模型架构是如何追求低精度计算和通信的。第四章包括scale-up互联优化,讨论scale-up和scale-out收敛,以及探索硬件特性是如何影响并行和专家选择策略的。第五章专注scale-out网络优化,包括多平面网络协同设计和低时延互联。除了3-5章提到的当前约束和未来建议,第六章详细介绍从deepseek-v3获得的重要发现,并指出未来硬件和模型协同设计的方向。
2 Deepseek模型的设计原则
Deepseek-V3的开发展示了一个基于硬件的方法来做可扩展LLMs,每个设计决策都是仔细的对齐硬件约束来优化成本和性能。
如图1所示,Deepseek-V3用了Deepseek-MoE和多头潜在注意力架构(MLA),这两个技术都在Deepseek-V2被证明有效果。Deepseek-MoE解锁了MoE架构的潜力,MLA通过压缩K-V缓存大量的减少了内存消耗。另外Deepseek-V3集合了FP8混合精度训练,大量的减少了计算成本,使得在不牺牲模型质量的情况下进行大规模训练成为可能。为了提高推理的速度,deepseek-v3继承了基于多符号预测模块的推测性解码,这么做大量的增加了生成的速度。除了模型架构,我们也通过部署多平面双层Fat-Tree网络代替传统的3层Fat-Tree拓扑来探索低成本AI基础设施。从而减少集群网络成本。
这些创新的目的是为了应对扩展LLM的3个核心挑战:存储效率,低成本,推理速度。这些会在后续章节介绍具体细节。
2.1 存储效率
LLM一般需要大量的存储资源,存储需要增长每年超过1000%。作为对比,HBM的容量增长速率远远跟不上,只有每年不到50%。尽管多节点并行是一个可行的解决存储约束的解决方案,在源头优化存储的使用仍然是一个重要和有效的策略。
2.1.1 低精度模型 和用BF16来表示权重的模型相比,FP8显著减少了一半的存储消耗,有效的缓解了AI存储墙的挑战。详细的关于低精度技术的讨论放在第三章,低精度驱动设计。
2.1.2 通过MLA减少KV缓存。对于LLM推理,用户的请求往往涉及多轮对话。为了有效的处理这些。之前请求的上下文被缓存在KV cache当中(大家都这么叫)。KV缓存解决这个挑战是通过缓存之前处理tokens时候的Key和Value向量,消除了为后面tokens重新计算的需求。在每一个推理步骤上,模型只计算当前token的Key和Value向量,然后结合缓存的历史上的KV对,进行注意力计算。这种逐步的计算,把生成每个符号的复杂性减少到O(N),使得处理长文本和多轮输入更加有效率。但是这么做引入了内存相关的瓶颈。因为计算从GEMM变成了GEMV,GEMV有更低的计算存储比。现代硬件可以提供几百个TFLOPS计算能力,GEMV很快的就受到存储带宽的约束,使得存储访问变成了主要的瓶颈。
为了解决这个瓶颈,我们使用了多头潜在注意力机制,MLA把所有注意力头的KV表示通过和模型一起训练的投影矩阵压缩成更小的潜在向量。在推理的时候,只有潜在向量需要被缓存,和存储所有注意力头的KV缓存来说大大的减少了存储消耗。
除了MLA,几个其它的方法也被用来减少KV缓存的大小。这些方法非常有价值,也提供了关于有效存储的注意力机制进步的方向。
- 共享KV(成组查询注意力,GQA:多次查询注意力,MQA):与其为每个注意力头维护不同的KV对,多个头共享单组KV对,大量的压缩了KV存储。代表性的方法是GQA和MQA。
- 窗口KV:对于长序列,只有一个滑动窗口下的KV对被保留在cache当中,窗口之外的结果都被抛弃了。尽管这种方法减少了存储,但是却降低了了长文本推理能力。代表性的方法包括Longformer和相关架构。
- 量化压缩:KV对是通过低位表示存储的,这进一步减少了存储的使用。量化在最小化对模型影响的情况下,获得了大量的压缩。

表1比较了deepseek-v3,Qwen-2.5 72B和LLaMA-3.1 305B的每个符号的KV缓存存储使用。

通过采用MLA,deepseek V3在KV缓存大小上取得了重大的下降,每个符号只需要70KB,比LLaMA-3.1 405B的516KB和Qwen-2.5 72B的327KB大大的降低了。这种程度的降低,说明了MLA在压缩KV表示上相对其它给予GQA的方法的优势。在存储消耗上的重大较少的能力使得Deepseek-V3尤其适合涉及长文本处理场景和资源受限场景,使得可以获取更加可扩展和低成本的推理。
2.1.3未来的高效技术的方向和角度。尽管减少KV缓存的大小是一个提高存储效率的有希望的方法,给予transformer架构的子回归解码的本质上的二次复杂性,仍然是一个不可避免的挑战,尤其是对于超长文本。最近的研究方向,比如Mamba-2和Lightning Attention,研究线性时间替代品,从而为平衡计算成本和模型性能提供新的可能性。另外,像稀疏注意力,通过压缩和稀疏化激活注意力key和value,代表了另外一个用于克服和注意力相关计算挑战的尝试。我们希望可以和更大的社区一起努力来突破这个方向。
2.2 低成本MoE模型
对于稀疏计算,我们开发了DeepSeekMoE,一个高级的混合专家(MoE)架构,这个在图1的右下有介绍。MoE的优势有两个方面。
2.2.1 降低训练的计算需求。MoE架构的主要优势是它能够大量的减少训练成本的能力。通过有选择的激活专家参数的子集,MoE模型允许整个参数量急剧的提升,但是计算量却可以保持中性。比如,DeepSeek-V2有236B的参数,但是只有21B的的参数会为每个token激活。相似的DeepSeek-V3扩展到671B的参数,几乎是V2的3倍,但是却只为每个token激活了37B。作为比较,Dense模型,比如Qwen2.5-72B和LLaMa3.1-405B需要在训练的时候激活所有的参数。
如表2所示,DeepSeek-V3的计算成本大概是每个token 250GFLOPS,而72B dense模型需要394GFLOPS,405B dense模型需要2448 GFLOPS。这表明,MoE模型在获得类似于dense模型或者更好的性能的同时,指数级的减少了计算资源。
2.2.2 个人使用和本地部署的优势。在未来,个性化的LLM agent会无处不在,MoE模型在单请求场景下,提供了独特的优势。因为在处理请求的时候,只有一个参数的子集被激活,内存和计算的需求会大大的降低。比如,deepseek-V2(236B参数)在推理的时候只激活21B的参数。这使得使用AI SoC的PC可以每秒处理20个符号(TPS),或者double这个数值,这对于个人使用来说就足够了。作为对比,有相似能力(比如70B参数)的dense模型在相似的硬件上只能产生个位数的token。
值得注意的是,不断流行的KTransformers推理引擎允许完整的deepseek-V3模型运行在一个使用消费级GPU(大约1万美金)的低成本服务器上,还能获得20TPS。
这样的效率使得MoE架构适合硬件资源往往有限的本地部署和单用户场景。通过最小话内存和计算成本,MoE模型可以交付高质量推理性能的情况下却不需要昂贵的基础设施。
2.3 增加推理速度
2.3.1 计算和通信的交集:最大化吞吐率。推理的速度由系统级最大吞吐率和单个请求的时延组成。为了最大化吞吐率,我们的模型在架构之初就利用了双微批重叠,有意的重叠通信时延和计算。就像我们的由开源分析数据支持的在线推理系统所展示的那样,我们解耦了MLA和MoE的计算,使它变成2个阶段。当一个微批执行一部分MLA或者MoE的时候,另外一个微批执行对应的分发通信。反过来,在第二个微批进行计算的时候,第一个微批就进行通信。这种流水线方法确保all-to-all通信和计算无缝重叠,从而使得GPU一直处于完全使用状态。更近一步,在生产环境中,我们采用预填充和解码分离架构,把大批的预填充工作和时延敏感解码请求分到不同的专家并行组当中。这种策略在真实世界服务条件下,最大化了系统吞吐率。
2.3.2 推理速度约束:这一部分专注在LLM服务的解码输出速度,尤其是通过TPOT(每个输出token的时间)衡量的速度。TPOT是用户体验的重要指标,直接影响OpenAI o1/o3和deepseek-r1这样的推理模型的响应,这些模型依赖推理长度来增强智能。
对于MoE模型,获得高推理速度依赖于有效的在计算设备上部署专家参数。为了获取最快的可能推理速度,每个设备只为一个专家计算(或者多个设备一起为一个专家计算)。但是专家并行需要把token路由到合适的设备,这涉及到网络中的all-to-all通信。因此MoE推理速度的上界是由互联带宽来决定的。
考虑一个系统,每个设备处理一个专家的参数,每秒大约处理32个符号。这样的符号数取得了,计算存储比率和通信时延之间的平衡。这样一个符号数,确保每个设备在专家并行的时候处理一个等批次大小,允许通信时间比较简单的计算得到。
对于一个由CX7 400Gbps IB网卡互联的系统,EP当中的两个all-to-all通信需要的时间如下计算:

这里,分发使用FP8(1个字节),组合使用BF16(2个字节),每个符号的隐藏大小大概是7K。系数9表示每个符号被路由给8个专家和一个共享专家。
如2.3.1讨论的那样,要最大化吞吐率,有必要使用双微批重叠。用这样的策略,我们理论上的最佳情况分析假设计算的overhead被最小化了,所以性能的上界是由通信时延决定的。在实际的推理负载中,请求上下文往往会更长,MLA计算往往会主宰执行时间。因此,这个分析表示基于双微批重叠的一个理想场景。在这样的假设下,每一层的整个时间可以计算为:

Deepseek-V3有61层,整个推理的时间是:

因此,系统的理论上界大概是14.76ms TPOT,也就是每秒67个tokens。但是实际上,像通信overhead,时延,不完整的贷款使用,和低效的计算会减少这个数字。
作为对比,如果一个像GB200 NV72这样的高带宽互联(72个GPU之间900GB/s单向带宽),每个EP的通信时间会减少到:

假设计算时间等于通信时间,这大大的减少了整个推理的时间,理论上界变成了0.82ms TPOT,大概每秒1200个符号。尽管这个数字是纯理论,没有被经验验证过,这生动的阐述了高带宽scale-up网络在加速大模型推理上的绝对的潜力。
尽管MoE模型展示了很好的可扩展性,仅仅通过增加硬件资源来提高推理速度的成本是不可接受的。因此软件和算法也必须一起合作来提高推理的效率。
2.3.3 多token预测。受Gloeckle等的启发,deepseek-v3引入了一个多token预测(MTP)框架,这个方法同时增强了模型性能和提高了推理速度。在推理阶段,传统的自回归模型,在一个解码步骤生成一个token,导致串行瓶颈。MTP通过使得模型以更低的成本生成额外的备选符号,然后通过并行的验证它来缓解这个问题。这和之前的基于自草稿的累积解码方法类似。这个框架在不损失精确度的情况下,大大的加速了推理。
如上面的图1所示,每个MTP模块使用单个层来预测额外的tokens,使得可以并行的验证多个备选的符号,这和完整的模型相比要轻量很多。虽然稍稍的影响吞吐率,但是这个方法大大的减少了端到端生成时延。实践数据表明,一个MTP模块可以以80%-90%的接受率预测后面的符号,这和不用MTP模块相比,讲生成TPS提高了1.8倍。
而且,通过每一步预测多个符号,MTP增加了推理批大小,这大大的提高了EP的计算强度和硬件使用率。这样的算法创新对于deepseek-v3快速低成本的推理非常重要。
2.3.4 推理模型的高推理速度和Test-time scaling。LLMs中的Test-time scaling,open AI的o1/o3系列是很好的例子,他们通过test-time scaling,基于推理时动态调整计算资源,在数学推理,编程,和一般推理方面取得了巨大的进步。后来的模型,deepseek-r1,claude3.5-Sonnet,Gemini2.5-Pro,Seed 1.5 Thinking和Qwen3都采用了相似的策略并在这些任务上取得明显好的表现。
对于这些推理模型,高的符号输出速度是最重要的。在强化学习工作流当中,比如PPO,DPO,GRPO都需要快速生成大量的样本,这使得推理的吞吐率变成一个重要的瓶颈。比如,延长的推理序列可以增加用户的等待时间,降低这些模型的可用性。因此协同软硬件创新来优化推理速度,提高推理模型的效率是必不可少的。但是,正如2.1.3, 加速推理和改进RL训练任然是一个活跃的研究领域。我们鼓励更大的社区可以协作探索和开发针对这些挑战的新的解决方案。
2.4 技术验证方法论
每一个加速技术都需要严格的经验验证来评估对精确性的影响。包括MLA,FP8混合精度计算,以及网络协同设计MoE门路由。鉴于在完整模型上全面消融的成本过高,我们采用了一个层级的资源有效的验证流水线。每个技术都先在小模型上进行充分的验证,然后通过最小的大规模的调参,最后集成到一个综合的训练当中。
比如在最后集成之前,先在16B和230B deepseek-V2上进行全面的FP8训练消融研究。在这样的控制变量下,和BF16相比,相对精度损失低于0.25%,可以归因到我们使用的高精度累积以及细粒度量化策略。
3 低精度驱动设计
3.1 FP8混合精度训练
像GPTQ和AWQ这样的量化技术被广泛的使用,把位宽降低到了8比特,4比特,甚至更小,大大的降低了存储的需求。但是这些技术主要应用在推理阶段来节约存储,而不是在训练阶段。NVDIA的Transformer Engine可以支持FP8混合精度训练,但是在Deepseek-V3之前,没有开源的大模型用FP8进行训练。通过基础设施和算法团队的深度协作,通过大量的实验和创新,我们为MoE模型开发了一个FP8兼容的训练框架。图1展示了前向和反向过程中的FP8精度的计算组件在训练流水线当中的应用。细粒度量化被使用了,比如tile级1x128量化用于激活,块级128*128量化用于模型权重。FP8框架的技术细节在Deepseek-V3技术报告中有详细记录,我们的细粒度FP8 GEMM实现通过DeepGEMM开源。
3.1.1 限制:虽然FP8对于加速训练有很大的潜力,几个硬件的约束需要解决才能完全的利用它的能力。
- FP8累计精度:FP8在Tensor core上使用有限的累积精度,这个影响了训练大模型的稳定性,尤其是在英伟达Hopper GPU上。通过基于最大指数都右移产生的对齐的32尾数,Tensor Core只保留最高的13比特部分用于加法,截断超过这个范围的比特。加法结果累积到FP22寄存器(1个符号位,8个指数位,13个尾数位)。
- 细粒度量化挑战:像tile级和block级的细粒度量化在从Tensor core到CUDA core之间传输部分结果用于扩展factor乘法的时候引入了大量的去量化成本。这导致了频繁的数据移动,降低了计算效率,提高了硬件使用的复杂度。
3.1.2 建议:为了解决当前硬件的约束,我们对于未来的设计有以下的建议:
- 增加累计精度:硬件应该提高累计寄存器的精度到一个合适的值(比如FP32),或者支持一个可配置的累计精度,使得可以在不同的模型上,对于不同的训练和推理情况对性能和精确度进行平衡。
- 细粒度量化的原生支持:硬件应该原生支持细粒度量化,使得Tensor cores可以接收扩展系数并带有组扩展的实现矩阵乘法。这样的话,整个部分和累计和去量化可以全部在Tensor cores上实现,直到产生最后的结果,避免频繁的数据移动来减少去量化成本。一个值得一提的这个方法的工业实现就是英伟达的Blackwell支持的microscaling data format,这就是一个可扩展的原生量化带来好处的实际例子。
3.2 LogFMT: 通信压缩
在当前的deepseek-V3架构中,我们为网络通信使用低精度压缩。在EP并行的时候,tokens通过细粒度FP8进行分发,和BF16相比,减少了50%的通信量。这大大的减少了通信时间。虽然因为精度的关系,在combine阶段还是使用BF16这样的更高精度,我们非常积极的测试FP8,定制精度格式(比如E5M6),以及混合FP8和BF16来进一步减少通信时延。
除了这些传统的浮点数格式,我们还试了一种新的数据类型,叫做对数浮点数格式(LogFMT-nbit),n是比特数量,第一个比特是符号位。通过把激活从线性空间映射到对数空间,激活的分布更加统一。具体的给定一组元素[x1,...,xm],我们是1x128的实现,我们取绝对值的对数,把最小值min Log(abs(xi))编码成S.00..01,最大值编码成S.11..11。区间是Step=(max-min)/(2的n-1次-2)。0就特别的表示成S.00..00。左值就进位到整数K乘step。解码流程就是组合符号位和exp(min+Step(K-1))。
通过本地的计算min和Step,这种数据类型对于不同的块支持动态的表示范围,和静态浮点数相比,在覆盖更广范围的同时,保持高精度。另外,对于无偏激活量化,在原来的线性空间进行进位,而不是对数空间是很重要的。我们也把min限制在大于max-log(2的32次)这意味着最大表示范围和E5有点像,有5个指数的浮点数。我们在大概70亿参数的dense模型上验证了我们的LogFMT-nBit,通过量化残差分支来仿真MoE模型的组合阶段。当n等于8的时候,和FP8一样是8位,它相比E4M3和E5M2,有更好的训练精度。通过把n增加到10比特,我们发现和BF16的组合阶段相似。
3.2.1 限制:使用LogFMT的初衷是想把它用在传输时的激活或者激活函数附近,因为它在相同的位宽的情况下提供了更高的精度。但是后面的计算需要转换到BF16或者FP8来满足Hopper GPU张量的数据类型。因为GPU带宽对于log/exp操作的低效以及编解码阶段过度的寄存器压力。如果编解码融合到all-to-all通信当中,成本会很高(50%-100%)。因此虽然实验结果验证了这种格式在某种角度的有效性,我们最后没有部署。
3.2.2 建议:为FP8或者定制精度格式提供原生的压缩和解压缩支持时未来硬件的一个可行的方向。这可以帮助最小化带宽需求,对齐通信流水线。剩下了的通信资源对于像MoE训练这样的高带宽需求的任务来说特别有帮助。
4. 互联驱动设计
4.1 当前硬件架构

我们当前使用的是英伟达H800 GPU SXM架构,由图2所示,基于Hopper架构,和H100 GPU相似。但是为了遵守合规要求,它减少了FP64计算性能和NVLink带宽。具体的,H800 SXM NVLink带宽从900GB/s降到了400GB/s。大大减少的节点内scale-up带宽给高性能负载带来了巨大的挑战。为了补偿这个缺陷,每个节点要装上8个400G IB CC7网卡,通过增强scale-out能力来弥补带宽的不足。
为了对应这些硬件不足,Deepseek-V3模型集合了几个设计考虑来对齐硬件的优缺点。
4.2 硬件感知并行
为了对齐H800架构的约束,考虑用以下的并行策略来优化deepseek-v3的性能:
- 避免张量并行(TP):在训练的时候尽量避免张量并行,因为在有限的NVLINK带宽下非常低效。但是在推理的时候,TP还是可以被选择来降低时延,提高TPOT性能。
- 增强流水线并行(PP):DualPipe被用来重叠注意力/MoE计算和MoE通信。这也减少了流水线气泡,平衡了GPU之间存储的使用,提高了整个吞吐率。额外的细节在技术报告中。
- 加速专家并行(EP):有8个400G IB 网卡,整个系统可以获得40GB/s的all-to-all通信速度。值得注意的是,我们的all-to-all EP实现是开源的,这样我们就可以在后面的子章节讨论非常有效的专家并行。
4.3 模型协同设计:节点约束路由
H800架构的scale-up和scale-out通信带宽差别大约是4:1。具体的NVLink可以提供200GB/s带宽(实际上大概可以获得160GB/s),然而每个400Gbps网卡只能给50GB/s带宽(考虑小的消息大小和时延影响,有效带宽大概是40GB/s)。为了平衡和完全使用更高的节点间带宽,模型架构和硬件协同设计,尤其是TopK专家选择策略。
如果有一个8个节点(总共64个GPU)的计算集群和256个路由专家(每个GPU4个专家)。对于deepseek-V3,每个符号被路由到1个共享专家和8个路由专家。如果8个专家分配到8个节点,穿过IB的通信时间是8t,t表示从IB发一个token的时间。但是通过利用NVLink的高带宽,符号路由到相同的节点的话只需要经过一次IB。NVLink转发可以减少IB流量。当给定的专家被分发到M个节点的时候,IB通信成本被降低到Mt(M<8)。
因为IB流量只依赖于M,deepseek-V3为topK专家选择策略引入了节点约束路由。具体的,我们把256个路由专家分到8个组,每个组32个专家,每个节点部署一个组。基于这种部署,我们通过算法把每个符号路由到4个节点。这个方法缓解了IB通信的瓶颈,增强了训练时的有效通信带宽。
4.4 Scale-Up和Scale-Out收敛
4.4.1 当前实现的约束。因为节点间通信带宽和节点内通信带宽的不同,使用节点约束路由策略减少了通信带宽需求,但是使得通信流水线内核实现变得复杂。实际上GPU流多处理器(SM)线程被用来进行消息处理(填充QP和WQE)和NVLink上的数据转发(这消耗计算资源)。比如,在训练的时候,H800 GPU上最多20个SM被分配用来进行通信相关操作,使得实际的计算资源变少。为了最大化在线推理的吞吐率,我们把EP all-to-all通信全部放到了网卡RDMA,避免了SM资源紧张,提升了计算效率。这体现了RDMA异步计算模型在重叠计算和通信上的优势。
以下是在EP通信的时候,SMs运行的一些关键任务,尤其是combine阶段的reduce操作和数据类型转换。把这些任务卸载到专门的通信硬件可以释放SM的计算核,从而大大提升整体的效率。
- 转发数据:聚合目的是同一个节点内通过IB和nv-link连接的的多个GPU的流量。
- 数据传输:在RDMA buffer(注册的GPU存储域)和输入输出buffer之间进行数据的移动。
- Reduce操作:执行EP all-to-all combine通信需要的reduce操作。
- 管理存储布局:管理跨过IB和NVLink域传输的块状数据的细粒度存储布局。
- 数据类型转换:在all-to-all通信前后的数据类型转换。
4.4.2 建议:为了解决这些低效率的事情,我们强烈的建议未来的硬件可以集成节点内通信和节点间通信到一个统一的框架下面。通过集成专用的网络流量管理协处理器,无缝的转发NVLink和IB域之间的流量。这样可以减少软件的复杂性,最大化带宽的利用率。比如deepseek-v3用的节点约束路由策略可以通过硬件的支持优化用于动态的流量节约。
我们也看到新兴的互联协议,像UEC,UA-Link,他们都打算推动scale-up和scale-out网络的进步。最近UB引入了一个新的方法来收敛scale-up和scale-out。第六章进一步探索UEC和UA-Link的技术创新。但是在这一章我们主要关注通过编程框架上的努力来实现scale-up和scale-out的收敛:
- 统一网络适配器:设计一个网卡或者I/O Die可以连接到scale-up和scale-out网络。这些适配器也要支持基本的交换功能,比如把包转发到scale-up网络上特定的GPU。这可以通过单个LID或者IP地址,基于策略路由实现。
- 专门的通信协处理器:引入一个专门的协处理器或者可编程组件(比如IO Die)来处理网络流量。这个组件可以从GPU SM上卸载包处理,防止性能降级。另外,应该包含硬件加速存储拷贝能力来进行有效的存储管理。
- 灵活的转发,广播和Reduce机制:硬件应该支持跨scale-up和scale-out网络的灵活转发,广播操作(用于EP分发),和reduce操作(用于EP组合),镜像我们当前的基于GPU SM的实现。这不仅能有效的提高带宽,而且还能减少网络相关操作的计算复杂性。
- 硬件同步原语:在硬件层面提供细粒度硬件同步指令来处理存储一致性问题或者失序到达问题。这可以消除像RDMA完成事件这样的基于软件的同步机制,这会引入额外的时延和增加编程的复杂性。带有acquire/release机制的内存语义通信是一个有希望的方向。
通过实现这些建议,未来的硬件设计可以大大的提高大规模分布式AI系统的效率,并简化软件开发。
4.5 带宽竞争和时延
4.5.1 约束:对于NVLink和PCIe,当前的硬件缺少对不同类型的流量动态分布不同带宽的灵活性。比如,在推理的时候,把KV Cache数据从CPU存储搬到GPU会消耗几十GB/s的带宽,PCIe带宽会饱和。如果GPU同时使用IB来做EP通信,KV cache传输和EP通信之间的竞争会使得整体的性能降级,导致延迟峰值。
4.5.2 建议:
- 动态NVLink/PCIe流量优先级:硬件应该支持基于流量类型的动态优先级。比如,和EP/TP/KV cache传输相关的流量应该被分配不同的优先级来最大化互联的效率。对于PCIe来说把流量类别(TC)暴露到用户级编程就足够了。
- I/O Die Chiplet集成:把网卡直接集成到I/O Die当中,通过封装技术直接连到计算Die上面,而不是通过传统的PCIe,应该会大大的减少通信时延,减轻PCIe带宽竞争。
- Scale-Up域内GPU和GPU互联:为了进一步优化节点内通信,GPU和CPU应该通过NVLink或者相似的专门的高带宽fabric进行互联,而不是通过PCIe。和集成IO Die到GPU当中一样,这个方法可以大大的改进在训练或者推理阶段,offloading参数和在GPU/CPU之间搬移KV Cache。
5 大规模网络驱动设计
5.1 网络协同设计:多平面胖树
在训练deepseek-v3的时候,我们部署了一个多平面胖树scale-out网络,如图3。

每个节点有8个GPU和8个网卡,每个GPU网卡对分配到不同的网络平面当中。另外每个节点有一个400Gbps以太网RoCE网卡连接到一个单独的存储网络平面来访问3FS分布式文件系统。在scale-out网络中,我们使用64口400G IB交换机,使得这个拓扑在保持2层网络的成本和时延优势的情况下,理论上可以支持16384个GPU。但是由于政策和法规的约束,最终只部署了2000多个GPU。
而且,因为IB ConnectX-7的约束,我们部署的MPFT网络没有完全实现想想中的架构。理想的,如图4所示,每个网卡会有多个物理端口,每一个端口连接到不同的网络平面,但是通过端口绑定在用户这边只展示单个逻辑接口。从一个用户角度,单个QP可以无缝的跨过所有可用的端口传输和接收消息,类似于包喷射。因此,从同一个QP出来的包可能穿过不同的网络路径,以乱序到达一个接收者,所以网卡对乱序包的分布的原生支持就很有必要,它可以保证消息一致性,保持正确的顺序语义。

比如IB ConnectX-8原生支持4个平面,如果未来的网卡完全的支持高级多平面的功能将是一个很大的优势。这会使得2层胖树网络可以更加有效的扩展到更加大的AI集群当中去。总的来说,多平面架构在错误隔离,鲁棒性,负载均衡,大规模系统可扩展性方面提供大量的优势。
5.1.1 多平面胖树的优势。
- 多轨胖树的子集:MPFT架构由MRFT架构的特殊子集组成。因此当前NV的NCCL针对多轨网络多优化可以无缝的应用到多平面网络架构当中去。而且,NCCL支持的PXN技术解决了平面间隔离的关键挑战,这个使得即使当平面之间没有直接互联的情况下,通信还是非常有效。
- 成本效益:如图3所示,通过使用多平面网络,2层胖树协议可以支持超过1万个节点的互联,和3层胖树相比,大大的减少了网络的成本。从每个节点的成本看,甚至比Slim Fly拓扑还好一点。
- 流量隔离:每个平面独立运营,确保一个平面的拥塞不会影响其它平面。这种隔离提高了整个网络的稳定性,防止了级联性能降级。

- 减少时延:向我们实验展示的那样,2层拓扑可以获得比3层拓扑更加低的时延。这使得它在像MoE训练和推理这种时延敏感的应用上更加的合适。
- 鲁棒性:如图4所示,多口网卡提供多个uplinks,单口的故障不会破坏连接性和速度,透明的错误恢复是有可能的。
我们要强调的一点是,因为当前的400G NDR IB的约束,跨平面通信需要节点内转发,这在推理的时候引入了额外的时延。像之前讨论的那样,如果未来的硬件可以实现scale-up和scale-out网络收敛,这个时延可以大大的减少,进一步增强了多平面网络的可行性。
5.1.2 性能分析。为了验证多平面网络设计的有效性,我们在我们的集群上进行了一个真实世界的实验。通过修改集群网络拓扑来比较多平面胖树和单平面多轨胖树的性能。以下是我们从实验中看到的关键发现:

1. All-to-All通信和EP场景:如图5所示,多平面网络的all-to-all通信性能和单平面多轨道网络非常相似。这种性能上的相似性,是因为NCCL的PXN机制,它优化了基于NVLink的多轨拓扑中的流量转发。多平面拓扑也从这种机制中获益。如图6所示,16个GPU上的all-to-all通信测试结果揭示了MPFT和MRFT拓扑之间时延上微不足道的差异。

为了评估在实际训练的场景中,all-to-all通信的性能,我们测试了训练中常用的EP通信模式。如图7所示,在多平面网络中,每个GPU可以获得超过超过40GB/s的高带宽,提供满足训练需求的可靠的性能。


2. Deepseek-V3模型的训练吞吐率:我们也在表4当中比较了在MPFT和MRFT下,deepseek-v3模型的训练指标。MFU(模型Flops使用率)是基于BF16峰值性能计算的。因果MFU只考虑注意力矩阵的的lower triangle部分(和Flash attention一样)的flops,非因果MFU考虑整个注意力矩阵的flops。1F,1B和1W表示转发时间,输入后传时间,加权后传时间。在2048个GPU上训练V3模型,MPFT和MRFT的性能基本一致,看到的差异在抖动和测量误差之内。
5.2 低时延网络
在我们的模型推理的时候,大规模EP非常依赖all-to-all通信,这对时延和带宽非常敏感。考虑一个2.3.2讨论的典型场景,50GB/s的网络带宽,数据传输理想的情况下需要120us。如果是毫秒级别的固有网络时延会大大的影响系统的性能,使得无法忽略它们带来的影响。

5.2.1 IB还是RoCE。如表5所示,IB可以获得非常低的时延,使得它可以作为分布式推理和训练这种时延敏感负载更加理想的选择。虽然IB和RoCE比有更加好的时延表现,它有以下的约束:
- 成本:IB硬件比RoCE方案要贵的多,这限制了它的大量采用。
- 可扩展性:IB交换机往往只支持64个端口,RoCE交换机常常可以看到128口的。这限制了基于IB的集群的可扩展性,尤其是大规模部署。
5.2.2 关于RoCE改进的建议。尽管RoCE有潜力成为IB的低成本替代者,它当前在时延和可扩展性方面还没有完全达到大规模AI系统的需求。以下我们概述几个改进RoCE的建议:
(1)专用的RoCE低时延交换机:我们建议以太网供应商开发通过移除不必要的以太网特性,专门为RDMA负载优化的RoCE交换机。Singleshot架构说明了为什么基于以太网的设计可以获得和IB类似的时延表现。相似的,最近Broadcom包括AI转发头(AIFH)以及即将出品的低时延以太网交换机,展示了为AI定制的高性能以太网网络的可行性。我们期待这个方向上的持续创新。

(2) 优化路由策略:如图8所示,RoCE中默认的ECMP路由策略,无法很好的在互联上分布流量,从而导致NCCL集合通信测试时候严重的拥塞性能降级。LLM训练流量,比如DP(数据并行),缺少随机性,导致多个流收敛到同一个互联链路上。作为对比,自适应路由(AR)可以通过在多个路径上动态喷射包,从而大大增强网络的性能。基于人工配置路由表的静态路由,可以流向特定目的链路冲突,但是缺乏灵活性。对于大规模all-to-all通信来说,自适应路由提供了更好的性能和可扩展性。
(3) 改善流量隔离或者拥塞控制机制。当前的RoCE交换机仅支持有限数量的优先级队列,对于涉及像EP all-to-all和DP all-reduce并行通信模式的复杂AI负载来说是不够的。在这样的混合负载下,all-to-all流量可以导致因为多对一传输的汇聚拥塞,可能导致整个网络性能的降级。为了解决汇聚对其它流量的影响,一种方法是使用VOQ,为每个QP分配一个虚拟的队列,从而隔离不同的流。或者使用其它更加有效的拥塞控制机制,比如RTT-CC或者用户可编程CC,从而通过网卡和交换机的协同优化来保证在动态流量条件下的低时延和高吞吐。
5.2.3 IB GPUDirect Async (IBGDA)。我们使用IBGDA来减少网络通信时延。传统的,网络通信涉及CPU代理线程的创建:一旦GPU准备好了数据,它必须通知CPU代理,然后CPU代理构建工作请求的控制信息,并通过门铃机制通知网卡发起传输。这个过程引入了额外的通信开销。
IBGDA允许GPU直接填充工作请求内容并写到RDMA门铃MMIO地址,通过在GPU内管理整个控制平面,IBGDA消除了大量GPU-CPU通信所带来的时延开销。而且,在发送大量小的包的时候,控制平面处理器可以很容易的变成瓶颈。因为GPU有多个并行线程,发送者可以利用这些线程来分发工作负载,因此避免了这样的负载。包括我们的DeepEP在内的很多负载利用了IBGDA,并且看到了大量的性能提升。因此,我们呼吁所有的加速设备都应该这么做。
6. 讨论和关于未来硬件架构设计的亮点
基于之前的章节,我们总结了关键的架构亮点,指出了为大规模AI负载定制的硬件设计的未来方向。
2.3.2章指出了利用大规模scale-up网络来加速模型推理的重要性。第三章讨论了有效支持低精度计算和通信的必要性。第四章探索了scale-up和scale-out网络的收敛,以及几个补充。第五章主要关注多平面网络拓扑,并指出了基于以太网互联的关键改进。
总之,这些章节点出了在具体应用上下文上的硬件约束,并给出了对应的建议。基于这个基础,本章把讨论扩展到更大的范围,并提出未来硬件架构设计的前沿方向。
6.1 鲁棒性挑战
6.1.1 约束
互联故障:高性能互联(像IB和NVLink)会倾向于出现间歇性断开,这个可以破坏节点到节点间的通信。这在像EP这样通信要求很大的负载上会带来很大的伤害,即使很小的中断,也可能导致大量的性能下降和作业故障。
单点硬件故障:节点实效,GPU故障,或者ECC内存错误都可以导致长期运行的训练任务需要高成本的重启。故障的影响在大规模部署的时候大大的放大了,随着系统大小的提升,单点故障的概率也成比例的提升了。
隐含的数据破坏:ECC机制没有检测到的错误,比如多比特存储翻转或者计算不精确性都会对模型质量构成严重的威胁。这些错误在长期运行的任务上尤其的隐秘,因为它们可以在不被发现的情况下传播并破坏下游的计算。当前的补救方法依赖于应用级的启发,这在确保系统级鲁棒性上还是不够的。
6.1.2 关于高级错误检测和纠正的建议。为了缓解隐藏数据破坏带来的风险,硬件必须集成超过ECC的高级错误检测机制。基于校验和的验证或者硬件加速荣誉验证可以为大规模部署带来更高的可靠性。
而且,硬件供应商应该提供综合的综合的诊断工具箱给终端客户,让客户可以严格的验证系统的完整性和主动的识别潜在的隐藏数据破坏。这样的工具箱作为标准硬件盒子的一部分可以推动透明性,使得我们可以在整个运营生命周期内进行持续的验证,因此强化整个系统的可信度。
6.2 CPU瓶颈和互联
尽管加速器设计往往占据舞台的中央,仍然需要CPU来协调计算,管理I/O和维护系统吞吐。但是当前架构面临几个重要的瓶颈。
第一,在第4.5章讨论的那样,CPU和GPU之间的PCIe接口往往是带宽瓶颈。尤其是在大规模参数,梯度或者KV缓存传输的时候。为了缓解这个问题,未来的系统应该采用NVLink或者Infinity Fabric进行CPU到GPU之间的直接互联,或者集成CPU和GPU到scale-up域内,从而消除跨节电的瓶颈。
除了PCIe的约束,保持这样的高带宽传输速率还需要大量的内存带宽。比如,打满160 lane的PCIE gen5需要每个节点640GB/s,转换成内存带宽大约需要每个节点1TB/s,对传统的DRAM架构带来了巨大的挑战。
最后,像kernel发射和网络处理这样的时延敏感任务需要比较强的单核CPU性能,往往需要基频4GHz。而且现代的AI负载需要足够的每GPU CPU核心数来防止出现控制测的瓶颈。对于Chiplet架构,还需要额外的核心来维护cache-aware负载划分和隔离。
6.3 AI需要智能网络
为了满足时延敏感性负载的需求,未来的互联必须侧重于时延和智能网络:
- Co-Packaged Optics:集成硅光使得我们有更高的带宽可扩展性,更好的能量效率,这两个方面都对大规模分布式系统很重要。
- 无损网络:基于Credit的流控机制可以确保无损数据传输,但是原声带触发流控会导致严重的head-of-line阻塞,因此部署高级的,终点驱动的拥塞控制算法主动的规范注入的速率,从而避免拥塞场景的出现。
- 自适应路由:就像5.2.2章提到的,未来的网络应该标准化动态路由机制的采用。比如包喷射和拥塞感知路径选择,它可以持续的监控实时网络的条件,智能的分发流量。这种适应性的策略在all-to-all和reduce-scatter操作的时等集合通信负载时缓解热点和瓶颈的时候尤其的有效。
- 有效的容错协议:针对故障的鲁棒性可以通过部署自愈协议,冗余端口,快速的错误恢复机制来大大的增强。比如,链路层重传机制,有选择的重传协议在大规模网络当中确保可靠性的时候必不可少。从而最小化宕机时间,确保尽管有间歇性的故障还能无缝的运营。
- 动态资源管理:为了有效的处理混合负载,未来的硬件应该支持动态带宽分配和流量优先级。比如在一个统一的集群当中,推理任务和训练任务的流量应该被隔离开来,从而确保针对时延敏感性任务的相应。
6.4 关于内存语义通讯和保序问题的讨论
节点间通信使用load/store内存语义是有效和程序员友好的。但是当前的实现受到内存保序的挑战。比如在写数据的时候,发送者在更新一个标志来通知接收者之前必须发起一个具体的内存屏障(fense)来保障数据一致性。这种严格的保序引入了额外的RTT时延,可以卡住发起的线程,阻碍实时存储减少吞吐率。相似的乱序同步问题在消息语义RDMA中也存在。比如,在IB或者NV Blufield-3进行常规的RDMA写用包喷射进行一个RDMA原子加操作会引入额外的RTT时延。
为了解决这个问题,我们倡议硬件提供内置的保序机制来保证内存语义通信。这种一致性应该在编程模型(比如通过获取和释放语义)和硬件接收机上实现来确保在没有开销情况下的有序交付。
有几种方法是可能的。比如接收机可以缓冲原子消息,然后用包序列号来做有序处理。但是,一个acquire/release机制是更加优雅和有效的。我们建议一个简单概念机制:区域acquire/release机制,接收机硬件用一个bitmap来跟踪RNR存储区域的状态,acquire/release操作的范围应为RAR地址范围。只需要bitmap的开销,就可以获得有效的,硬件辅助的排序,消除了准确的发送侧屏障,把排序交给硬件,在NIC和IO die上做都很理想。而且RAR机制不仅对内存语义操作有好处,而且对消息语义RDMA操作也有好处,因此大大的扩展了它的可用性。
6.5 在网计算和压缩
EP涉及2个重要的all-to-all阶段,dispatch和combine,这给在网计算提供了重要的机会。dispatch阶段有点像小规模的组播操作,单个消息必须要转发到多个目标设备。可以进行自动的包复制并转发到多个目的地的硬件级协议可以大大的减少通信开销提高效率。
combine阶段,像是小规模的还原操作,可以从在网汇聚得到好处。但是在EP combine过程中,因为比较小的还原范围,以及不平衡的负载,要以一个灵活的方式实现在网汇聚还是有挑战的。
还有,如3.2章指出的那样,LogFMT可以在最小化模型性能影响的情况下,进行低精度的符号传输。在网络硬件中集成LogFMT可以通过增加熵密度减少贷款的使用。硬件加速的压缩和解压缩可以无缝的集成LogFMT到分布式系统当中,从而增强整个系统的吞吐率。
6.6 存储为中心的创新
6.6.1 存储带宽的约束 模型大小的指数级增长超过了HBM技术的进步。这种差距造成了内存瓶颈,尤其是的对于像transformaers这样的attention-heavy架构来说。
6.6.2 建议
DRAM堆叠加速器:利用高级3D堆叠技术,DRAM dies可以堆叠在一个逻辑die上,从而获得超高的带宽和极低的时延,以及实用的存储容量(受堆叠限制)。这个架构机制对于MoE模型来说可以带来超快的推理,因为推理的瓶颈是存储带宽。比如像SeDRAM这种有潜力的架构能够给存储瓶颈的负载带来前所未有的性能。
晶圆级系统:晶圆级集成可以最大化计算密度和存储带宽,可以满足超大规模模型的需求。
7. 结论
Deepseek-V3展示了硬件软件协同设计可以在提升大规模AI系统的可扩展性,效率和鲁棒性上的革命性潜力。通过指出当前硬件架构的约束,并提出可执行的建议,本文提供了下一代为AI优化的系统的路线图。这些创新随着AI负载在复杂性和规模的持续增长下会越来越重要,成为驱动未来智能系统的力量。

1816

被折叠的 条评论
为什么被折叠?



