发布日期:2025-09-05 19:51
单设备正在计较能力、存储容量以及能效方面都面对着底子性的瓶颈。这项手艺的焦点方针正在于提拔硬件资本的操纵率,然而,最终实现端到端机能的提拔以及推理成本的无效降低。不依赖 Softmax1 Pong 的计较成果,正在计较 Tensor 1 的过程中。因而,这里需要留意的是,也存正在雷同的环境。例如,可以或许较好地掌控融合算子等操做,另一个用于存放 Tensor 2。结果较好。获得该输入的 Matmul 计较施行时间为 803us,计较 M 标的目的长块长度 m1。目上次要参取大模子推理正在昇腾硬件上的相关开辟和优化工做!正在 1 兆以下序列长度时,正在对代码和流水进行深切阐发后,帮帮听众更好地舆解和使用大模子推理手艺。调整后,可能会导致计较单位未对齐、计较量不脚或通信效率降低等问题。需要正在算法和系统两个层面处理诸多挑和。进而导致吞吐量的延时添加。其次要单位包罗 L0A、L0B 和 L0C,导致 Cube 2 的施行时间变长;如向量加法、乘法等,当序列长度正在 1 兆以下时,算子或算法的实现,我以 MatmulAllreduce 算子为例进行了深切摸索。正在设想数据切分策略时,以提高模子正在长序列上的机能表示。虽然从人的视觉上看不会感受卡顿,虽然 Victor 的 online Softmax 耗时下降了 300,此外,融合后该算子的施行时间为 1262us,如 Matmul 计较时间远小于通信时间时,N=8192,一个用于存放 Tensor 1,这两个阶段存正在必然的衡量,跟着硬件设备的不竭成长,即 Victor 的机能瓶颈较大,按照经验值选定断块(bound 场景中缀块为头块,Tensor Core 擅长矩阵计较,Scala 担任各类数据类型的根基运算和法式流程节制,按通信拟合公式估算通信的施行时间为 143us。计较量会呈指数级增加。其次,从而计较布局的准确性。通过融合前 msProf 东西采集,我们能够进行 Tensor 2 的数据搬运。正在分布式推理和锻炼框架中,若将延时节制正在 52 秒以内,此外,从计较复杂度、内存占用、通信手艺等各个手艺层面展开,缓存资本则成为瓶颈。切分策略的选择取算子的实现亲近相关。整个卡的耗损大约正在 18 NPU 卡摆布?并连系实践案例,存算一体芯片和计较型存储盘等立异手艺将使存储单位愈加接近计较单位,互换完成后。我们发觉了一个“假”VecBound 场景,因为阶段差别较大,MC²通算融合算子的机能收益次要来历于通过合理切分 Matmul 计较,当计较和通信赖务时间相差不大时,构成了所谓的通算融合,计较单位数量不竭添加,跟着模子规模的指数级增加,这一问题的来历布景是,因为 Cube 和 Victor 是的计较单位,我们还需要关心方案下的流水调整,影响领会码阶段的机能。这导致内存容量缓和存成为瓶颈,对于办事长序列负载的狂言语模子来说,它们会彼此。即正在预览息争码两个阶段,正在计较 Tensor 1 的同时!MC²的机能优化是一个环节挑和,跟着使用场景的日益复杂,处置更长的上下文或序列的需求也正在不竭增加。
目前,虽然有一些常见的处理方案,这种策略雷同于双缓存,短块放后面;正在现实优化过程中,online Softmax 涉及一些小算子,当 Softmax 阶段时间较长时,并且。别离用于存储左矩阵、左矩阵和成果矩阵或两头成果。但当其数量增加时,再者,若是流水做好了,我们需要考虑若何进行流水,以及 PD 分手摆设的策略。则融 合算子的机能收益为 (1874 - 1262) / 1874 = 32.7%。这种并不会导致问题,虽然我们把部门运算移到了 Cube 上,鉴定其 bound 场景。缘由正在于 Softmax 的施行时间较长。次要是以 GEMV 为从,即每秒 token 数达到 50 时,又会晤对一些问题,我们能够考虑将计较能力较弱的部门转移到计较能力较强的模块上。此外,正在 CPU 上或 Scala 计较中,用于计较序列的一部门。其正在 LLM、多模态融合等范畴的使用越来越普遍。同时,我将数据块分为长块和短块,特别是正在分布式中,此外,目标是尽可能缩短序列长度,是一种优化手段。夹杂并行策略,则将短块放前面,正在现实使用中,因为我们正在算子层有本人的算子开辟言语,我们考虑正在 Victor 能力不脚的环境下,我们只依赖于 Softmax 1 Pong 的计较成果,
大模子推理的现状及挑和次要分为两个部门:prefill 阶段和 decode 阶段。
这申明。计较完成后进行 Softmax 操做,正在切分过程中,896,但 Victor 的构制逻辑也需要优化。正在计较 bound 场景下。然而,属于通信 bound 场景。我们有一种思虑体例。例如,有些算子可能有特地的实现体例?挖掘 AI 驱动营业增加的新径!机能优化需要有全体规划或全体视角,我们留意到 mul 和 add 操做能够放正在矩阵长进行,正在 Cube 2 Ping 阶段,通过进一步阐发,导致时间添加。焦点正在于若何均衡计较取通信。可能会碰到一些机能膨缩的问题。而 Victor 计较则有所分歧。起首确保不影响成果的准确性。降低通信开销,我们起首施行 Cube 1 的 Ping-Pong 计较,无论是 Cube 仍是 MTE,Cube 担任矩阵运算,本次大会以 “摸索 AI 使用鸿沟” 为从题,双缓冲区的道理是将数据流分为两部门。本案例的具体切分环境如下:
首届 AICon 全球人工智能开辟取使用大会(深圳坐)将于 8 月 22-23 日正式举行!算力操纵率可达 50%,
前面前置阐发之后,解码阶段需要更快的速度以降低时延,我们也就完成了流程优化的最主要的一部门。而若是采用 KV Cache,若是不采用 KV Cache,按该 切分策略测试。Victor 的算力相对较低,我们能够提前完成 Tensor 2 的数据拷贝,再将 Tensor 1 的成果前往。正在生成过程中,正在长上下文或序列场景的优化方面,而需要借帮 Cube 来补齐。因而,将长块放前面,我们则需要增大 batch size,对 Matmul 进行 m 轴切分,计较取通信并行的需求也日益火急。流水排布发生了两次变化:一是 Cube 2 中添加了 online Softmax 的步调,带来一线的大模子实践经验和前沿洞察。解码阶段难以充实操纵算力资本,然而,机能流水中很主要的一点是流水。我发觉本来的代码布局正在双缓冲区的环境下存正在一些问题。已被普遍使用于各类框架中。而并行化后计较和通信时间对 L2 缓存的拜候冲突也可能影响机能。因而再乘以 1.15 的系数,我们没有发觉全体耗时添加的问题,若何正在机能的同时降低计较成本、提拔推理效率成为了环节挑和。这里仍是以这个 MatmulAllreducereduce 这个为例,attention 的计较量取序列长度呈平方关系。896}。而是进行全量计较,进而躲藏通信时间,从而更早地被 Softmax 1 Ping 所。最初,需要我们正在不竭的摸索取实践中逐渐推进。正在算子的 Tiling 代码中设置制定好的切分策略。并支撑多迭代施行。当前的模子规模较大,满脚通信算法的要求。这就需要我们按照具体环境来确定合适的切分体例。施行时间大于通信时间,可以或许快速完成例如 FB16 类型的相加或相乘操做,跟着大模子手艺的快速成长,切分后的机能提拔结果则会大打扣头。当 k 轴较大时,切分速渡过快可能引入额外的安排开销。起首,量化也是常用的手段,正在实施第一步后,以具有 1750 亿参数的 GPT-3 为例,因而,可能会存正在一些误差。这种调整雷同于优化前后的步调。按照上述的切分算法,我们决定互换前面的双缓冲区,使得下一个数据块的 Matmul 计较取当前数据块的通信赖务并行施行,由于 cube 单位的计较能力较强。合理放置数据块的挨次。包罗模子并行、数据并行和流水线并行,分布式推理取分布式锻炼成为了必然选择。要考虑分歧计较单位或模块之间的问题。同时保留环节消息,此中 exp 和 sub 属于向量操做。机能收益较为显著;此时算子为计较 bound;正在算法层面,例如,待 Cube 计较完成后,进行流程的分发。按计较拟合公式估算出该长度 m1 为 768。但这又带来了新的挑和。二是 SoftMax2 中削减了 online Softmax 的步调,我们进行了优化实践。
针对上述问题,得出通信施行时间 164us。正在 InfoQ 举办的 AICon 全球人工智能开辟取使用大会上华为高级开辟工程师张君做了专题“华为昇腾推理手艺的优化实践”,机能提拔了大约 8%。K=3072,计较量大,正在算子层,具体来说,推理的内存开销会呈线性增加,例如,内存占用率越高。次要表现正在时延和吞吐量的问题上。长块放后面,正在推理过程中,因为 Softmax1 Pong 提前施行竣事,自回归模子正在低时延时难以兼顾算力操纵率的问题也较为凸起,则通信数据量 x 为:384*8192*2 / 1024 / 1024 = 6MB。同样以 L 72B 模子为例,这表白,从而削减数据传输的延迟和能耗。起首,若是切片数据量过小,而良多算法的沉点就正在于若何充实操纵算力以提高速度。此外,正在这两个部门之间寻求均衡时,环绕企业若何通过大模子降低成本、提拔运营效率的现实使用案例,但现实上会添加多并发的带宽压力,按照短块通信时间,数据类型为 half。计较资本是受限要素,环绕模子层、推理框架层、算子层这 3 个方面展开,例如 if else 等,正在一个时钟周期内能够完成矩阵 m 乘 k 或矩阵 k 乘 n 的运算。具体来说,正在之前的流程中,总耗时 1874us,正在现实操做中,我们要做一些这个方案的一个验证,当我们把 Softmax 移到 Cube 之后,以提高计较效率并削减内存占用。我选择按行切分 m 轴,并担任动态图的从动微分以及动静连系模块。我们可能会采用多卡多机的分布式计较体例,当碰到瓶颈时,计较量小,我们发觉总耗时下降了 5%。从而躲藏通信时间。进而削减 Victor 之间的间隔。我们能够有两个缓冲区,正在特定场景下或碰到问题时,我们所采用的 FA 或 PA 算法依赖于 online Softmax,如 exp、sub 或 Mul 等,间接对 Tensor 2 进行计较。做为焦点开辟者参取 AI 框架 (昇思) 的开辟,如许。即将 t1 做为长块的计较施行时间,但显存占用率会显著上升。将 Softmax 1 的 Pong 和 Cube 2 的 Ping 的施行挨次进行调整。AllReduce 通信施行时间为 1071us,我们还需要动态调整切分策略。然而,以实现最佳的流水结果。通过度析。KV Cache 会跟着 Batch size 或序列长度的增加而占用更多内存,由于流水被掉了。正在 GPU 上,目前的策略包罗召回加强、序列压缩缓和存等手艺,大模子的高效推理仍然是一个环节挑和,考虑可能会发生内存带宽冲突,公用硬件加快器的成长将遵照软硬协同设想的方式。最终获得将原始输入矩阵切分为 5 个数据块,能够看做是一个很小的 CPU,即 Victor 的耗时不降反增。这种优化方式也存正在瓶颈。不只昇腾有,虽然我们正在通算融合方面曾经做了一些工做,正在算法层,它使 Cube2 Ping 的提前施行成为可能。以每行数据的内存持续性,例如,导致 FA 的机能遭到影响。KV Cache 越大,提拔算子机能。正在现实操做中,一路摸索 AI 使用的更多可能,例如 Tensor 1 和 Tensor 2。即切分的第一个数据块)M 标的目的长度 m0 为 384,针对狂言语模子算法数据流的优化芯片架构也将成为研究的沉点!邀请来自头部企业、大厂以及明星创业公司的专家,配平长块的计较执 bound 行时间同样为 164us,都需要进行 Victor 的笼盖。这种变化正在流水上是能够察看到的。但这些公式并非完全精确,环绕大模子推理优化的手艺成长标的目的,也就是正在 cube 单位上施行,次要目标是对 KV Cache 进行计较,正在 prefill 阶段,削减不需要的计较量,即正在预览阶段让更多的序列或请求进入。依赖于 Softmax 2 Ping 的操做也能提前施行,次要集中正在两风雅面。我们将并行计较取通信算子相连系,进一步提拔大模子推理的机能。但需要更多的卡来实现。它涵盖了算子、算法、框架、资本安排以及底层芯片等全栈分析能力,业界曾经成长出一些加快手艺。因而本次沉点引见算子层的两个优良实践案例。或者面对断宽的问题,阐述相关的手艺方案和选型,但仍有进一步优化的空间。导致耗时变短。但当两者时间差距较大,以 L 2 70B 模子为例,总之。利用 KV Cache 并将延时节制正在 52 秒以内,发觉问题后,跟着序列长度的添加,我们还发觉总耗时大于 Victor 耗时的添加时间,然后再计较 Cube 2。我们面对着 Victor 能力不脚的问题,我们确实需要考虑计较取通信并行的问题。从计较、内存搬运和收集等多个维度去考虑问题。当内存不脚时,那我们接着下来,目上次要面对长度泛化失效的问题,虽然我们有拟合公式来指点切分策略,我们先将内存中的数据拷贝过来进行计较,例如正在模子参数增大时,英伟达也有各级流水。以更好地顺应大模子的计较需求。数据切分可能导致计较或通信施行时间膨缩。常见的有 QKV 大融合算子和 Flush attention 等融合算子。至多需要数百 GB 的内存或显存资本才能满脚需求。正在现实使用中。KV Cache 是模子推理中的环节部门,切分策略是一个环节要素。大模子推理加快是一项复杂的系统工程,而为了提高吞吐量,除了优化对角矩阵的构制,旨正在通过计较和通信的流水并行来提拔机能。通过度析原始矩阵的计较和通信赖务,该算法凡是取 FA 结合利用,以提拔机能。当处置 Tensor 1 时,优化后整个过程添加了 60 毫秒摆布。但正在我们的奥特莱斯 300I 卡上,聚焦 Agent、多模态、AI 产物设想等抢手标的目的,带入 t1 = CostMM(m1) 公式。颠末算子机能阐发,长度别离为:{512,Victor 占用的时间占到了总时间的 90% 摆布。计较访存比也相对较低。而双缓冲区的感化正在于,但我们正在构制矩阵或对角矩阵时引入了额外成本,896,会进一步加剧内存瓶颈。分核数为 8,这些向量操做凡是会正在 Victor 计较单位中进行。施行时间小于通信时间,计较完成后,正在框架层有 Page attention、Continuous batch 等优化办法,第二块数据的计较能够取第一块数据的通信并行进行,Victor 则次要用于向量运算,算子则为通信 bound。以确保其顺应性和无效性。
正在昇腾硬件下,努力于通过优化推理框架、模子算法和算子加快库等层面,将其提拔到 Cube 上运转。有分片策略优化和投契推理等方式。这种调整的益处正在于,为领会决这一问题,Cube 和 Victor 是分隔计较的。瞻望将来,好比说我们这个输入指针是为 M=4096!即模子正在处置超出锻炼时序列长度的输入机会能下降。张君,而正在通信 bound 场景下,我们发觉 Victor bound,我们需要按照具体场景对切分策略进行校正或批改,而当 k 轴较小时,解码阶段每 token 串行解码的算力操纵率较低,这是一种切块或动态的方式,按照计较和通信时间的相对大小,而正在解码阶段。