自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 推理适配GDN/KDA线性模块的公式与代码

本文介绍了在推理框架(vLLM/SGLang)上适配混合模型时构建线性模块的关键方法,重点分析了GDN(GatedDeltaNetworks)和KDA(Kimi Delta Attention)两种基于Delta规则的线性注意力改进模块。文章详细阐述了递推和分块(chunkwise)两种算式形态的计算构建:在短序列时使用递推算式,长序列时分块计算效率更高。通过数学公式和伪代码展示了GDN的状态更新、输出计算流程,包括输入处理、alpha/beta参数计算以及状态迭代过程。

2025-12-26 15:32:14 631

原创 混合注意力的KV cache该如何设计?框架已给出答案

本文探讨了在推理框架(vLLM/SGLang)上适配混合模型的关键技术,重点分析了QwenNext和KimiLinear模型的GDN/KDA模块实现。主要内容包括:1) 模块架构差异,指出GDN和KDA在衰减项处理、映射计算和激活函数方面的不同;2) KV cache管理方案,提出线性注意力层S&Conv的两种存储方式,并与标准注意力层的显存占用进行对比分析;3) 相关特性调整,包括cache传输、Prefix cache实现和并行策略优化。

2025-12-26 07:00:00 843

原创 Qwen/Kimi带火的LinearAttention:原理与细节解析

本文分析了线性注意力(Linear Attention)在LLM中的应用及其改进过程。线性注意力通过核函数替换softmax,将计算复杂度从O(L²)降至O(L),并采用RNN形态实现高效推理。研究介绍了线性注意力的基本公式及增强方法,包括Gamma遗忘、Delta规则、Gated机制等改进手段,形成了GDN等混合模型。这些改进有效提升了线性注意力的精度,使其在某些场景达到标准注意力水平。文章还探讨了线性注意力中的关键问题,如核函数作用、位置编码缺失原因等,为理解这一高性能注意力范式提供了系统视角。

2025-12-25 21:20:05 845

原创 超细图解DSA计算流&性能对比与优化分析

本文分析了DeepSeek Sparse Attention(DSA)的计算流程与性能特点。DSA在MLA基础上引入Lightning Indexer模块,通过Top-K选择机制实现稀疏注意力计算。Prefill阶段采用MHA模式,Decode阶段采用MQA模式,计算量从O(L²)降至O(Lk)。Indexer模块增加了约30%的计算开销,但显著减少了KV cache存储需求。性能分析表明,当序列长度超过6.2k时,Indexer的logits计算成为主要开销。

2025-12-25 11:42:48 850

原创 vLLM V1 Scheduler的调度逻辑&优先级分析

本文分析了vLLM框架v0.8.4版本的调度器设计,重点探讨了混合式调度器的三种实现方案:V0默认调度、V0 chunked prefill调度和V1调度。调度器通过waiting和running队列管理请求,采用FCFS原则处理资源分配,当资源不足时会从队列尾部淘汰请求。文章对比了三种调度方案的特点和流程差异,指出V1版本取消了swapped队列,采用更细粒度的chunked数据管理。最后讨论了优先级调度的实现方式,当前仅V0默认调度支持优先级设置,并提出在V1版本中实现优先级调度的改进思路。

2025-12-24 21:26:08 845

原创 LLM推理优化:MLA算力均衡实践(提升0.3x)

摘要 本文针对LLM推理中因输入序列长度差异导致的算力不均衡问题,提出了一种基于SP-TP混合并行的优化方案。研究发现,在MoE模型的Prefill阶段,attention计算复杂度与序列长度呈二次方关系,导致不同DP域间计算负载严重不均。通过将MLA计算分解为三个阶段:跨DP域的序列并行(SP)、头维度张量并行(TP)和还原SP,实现了token级负载均衡。方案在保持KV Cache管理逻辑不变的前提下,解决了PD分离场景的算力均衡问题,实测获得20%-50%+的性能提升,并通过PR开源。

2025-11-24 07:30:00 585

原创 从 V0 到 V1:vLLM 推理框架的核心升级与技术选型思考

vLLM框架从V0升级到V1版本的架构改进分析 摘要: vLLM V1版本针对V0架构在性能和扩展性方面的瓶颈进行了重大调整。主要改进包括:1)将单线程架构拆分为多进程设计,解耦了调度器与执行器功能;2)采用无状态调度器设计,简化请求处理流程并消除大量冗余状态管理;3)重构KV缓存管理模块,优化内存分配策略。这些改动显著提升了CPU/GPU协同效率,降低了Python运行时开销,并增强了系统扩展性。测试显示V1在prefix caching等特性上性能提升明显,为后续功能迭代提供了更清晰的架构基础。

2025-11-21 12:00:00 674

原创 LLM推理EPLB原理:用可视化深度解析DeepEP

本文介绍了EPLB(专家并行负载均衡器)的设计思路与实现方案。通过在MoE架构中引入冗余专家副本,EPLB解决了专家计算负载不均衡问题。方案采用分组排序、副本创建和负载均衡三步骤:首先根据专家热度分组排序,为热门专家创建副本,然后采用高低搭配策略将专家均衡分配到GPU上。EPLB适用于训练过程,通过动态调整权重实现迭代优化,无需重新加载权重。该方案在降低跨节点通信的同时,有效平衡了GPU间的计算负载,提升了系统资源利用率。

2025-11-20 19:00:00 1053

原创 vLLM性能密码:prefix cache为何能实现“零开销”加速?

vLLM V1版本通过优化KV缓存管理结构实现了零开销前缀缓存,主要包括三方面改进:1)将管理单元从seqGroup简化为request id,使用双向链表KVcacheBlock提升操作效率;2)优化内存开辟、释放和淘汰流程,确保缓存操作不影响计算性能;3)采用更简单的块状态管理机制,仅记录完全计算的块。通过结构优化和操作简化,即使缓存命中率为零时性能也与全量计算相当,最终实现了前缀缓存的零开销特性。

2025-11-19 21:59:46 990

原创 LLM推理提速新路径:Attention与FFN分离方案深度解析

本文探讨了Transformer模型推理部署中的Attention与FFN分离技术(AFD)。AFD通过将Attention(访存密集型)和FFN(计算密集型)分别部署到不同硬件,显著提升推理性能。文章分析了AFD的技术背景与优势:1)计算特性差异使AF分离能更好匹配硬件性能;2)支持异构硬件混合部署;3)主流框架如vLLM已开始支持该方案。研究方案部分介绍了xDS的DMA架构,通过定制通信算子优化负载均衡,并利用超节点架构实现弹性扩缩容。

2025-11-19 09:30:57 981

原创 一文看懂!MLA计算流全图解&吸收矩阵对比分析

本文详细分析了DeepseekV3模型中MLA(Multi-Head Latent Attention)架构的设计细节。MLA通过将QKV矩阵进行低秩分解,以计算量换取显存节省。文章重点对比了MLA的两种形态:非吸收矩阵(MHA)版本和吸收矩阵(MQA)版本,详细展示了它们的计算流程差异、显存占用特点及应用场景。分析表明,Prefill阶段适合采用非吸收矩阵版本,而Decode阶段更适合吸收矩阵版本。文章还通过具体公式和参数配置,量化计算了两种版本在不同序列长度下的计算量差异,为模型优化提供了理论依据。

2025-11-18 10:48:31 1142

原创 性能暴涨50%:PD分离KV cache传输的实战干货

团队在vLLM框架上开发了KV cache传输优化方案,通过设计高效connector实现传输性能提升50%。文章分析了LLM推理中KV cache传输的关键问题,包括数据形态(MLA/GQA/MHA结构差异)、存储方式(按层/类型排布)以及传输链路(RDMA/P2P等)。针对vLLM框架的物理层cache管理机制,详细拆解了KV cache的创建、计算和传输流程,并提出了优化传输效率的解决方案。该方案已开源,为分布式LLM推理中的数据传输提供了实践参考。

2025-11-12 22:16:30 1127

原创 vLLM PD分离方案入门:核心概念、优势与适应场景梳理

摘要: 文章探讨了大语言模型(LLM)推理中Prefill与Decode阶段的资源需求差异及分离优化的必要性。Prefill阶段算力密集,Decode阶段访存密集,传统混合部署导致资源利用率不均。vLLM框架提出PD分离方案,通过KV cache传输实现1P1D协作,采用生产者-消费者模式异步传递数据。当前方案功能精简,但扩展性有限,需进一步解决PD配比、动态扩缩容、负载均衡及存储设计等问题。

2025-11-11 11:12:05 965

原创 从原理到演进:vLLM PD分离KV cache传递机制全解析

本文探讨了vLLM框架中PD分离架构下KV cache传递机制的关键问题。首先分析了KV传递的两种常见方式:中心存储和分布式P2P模式,比较了它们的优缺点。然后讨论了模型并行场景下的KV传递挑战,包括不同切分策略下的数据聚合问题。文章还指出KV传递不限于P端到D端,D端数据也可能被P端复用。此外,还分析了KV传输与模型计算可能产生的带宽争抢问题。最后介绍了vLLM当前KV传递的实现方案,包括V0版本的生产者-消费者模式架构及其核心组件Connector和Lookup Buffer的设计。

2025-11-10 13:04:00 774

原创 LLM预训练MFU计算公式&计算工具构建思路分享(下)

本文介绍了DeepSeek V3预训练模型专用MFU(Model Flops Utilization)计算工具的开发与使用方法。该工具针对DeepSeek V3新增的MTP模块、MLA模块和FP8计算进行了专门优化,可更准确地评估模型对算力的使用效率。工具基于671B模型配置,输入包括模型参数、计算参数(如迭代时间、GPU数量等),能自动计算并展示MFU结果。文章详细解释了MLA和MTP模块的特殊计算公式,以及FP8混合精度计算的处理方法(FP8算力按BF16一半折算)。

2025-11-07 15:30:00 1253

原创 LLM预训练MFU计算公式&计算工具构建思路分享(上)

本文介绍了一个用于评估大语言模型(如MoE/Llama/GPT)GPU算力资源利用效率的MFU(Model Flops Utilization)计算器。主要内容包括: 开发了一个Web版MFU计算器(https://calvinxky.github.io/mfu_calculation/),支持输入模型参数和训练时间来计算MFU值 详细解释了关键模块的计算量估算方法: 线性层:分析矩阵乘法和加法的计算量 Attention模块:分解Q/K/V映射、score计算等核心操作的计算量 次要操作.

2025-11-07 09:56:28 719

原创 FP8精度LLM训练浅学:原理、优势与应用解析

FP8(8位浮点数)格式在深度学习中能提升计算效率,但面临精度挑战。文章解析FP8的两种格式(E4M3和E5M2)及其特点,对比FP8与FP16/BF16的差异,并探讨其应用优势(内存占用小、计算吞吐高)及问题(精度损失)。关键解决方案包括高精度累积运算和动态缩放策略(如实时/延时缩放、分块量化)。以Deepseek V3为例说明FP8在模型训练中的实际应用,并分析国产GPU对FP8的支持现状。通过硬件优化和量化技术,FP8有望在保持精度的同时显著提升性能。

2025-11-06 22:35:57 1072

原创 [并行训练]Context Parallelism的原理与代码浅析

Context Parallelism (CP) 是一种针对Self-attention模块的序列并行方法,主要解决Megatron-LM框架中序列维度并行的难题。其核心思想是通过Flash-attention2分块计算,配合环形通信传递KV值,最终对分块结果进行修正。实现过程包括数据切分、分块attention计算、KV数据环形交换、单步修正和结果合并。CP通过优化causal mask计算和引入FA2修正机制,在保证数学等价的同时提升了计算效率。

2025-10-30 22:13:57 588

原创 [LLM]大模型显存计算公式与优化

本文探讨了AI算法在GPU服务器上运行时模型参数的显存占用问题,重点分析了大模型训练/推理场景下的显存计算方法。文章首先介绍了显存消耗的主要组成部分:模型参数、优化器状态、激活值和梯度值等可估算部分,以及临时变量等未知数据造成估算误差的原因。随后详细推导了transformer类模型的显存计算公式,包括不同数据类型下的存储需求、优化器状态和激活值计算方法。针对大模型场景,文章阐述了3D并行(TP/PP/DP)等切分策略对显存的优化原理,并给出了并行计算时的显存分配公式。

2025-10-29 22:28:01 809

原创 深度解析FlashMLA: 一文读懂大模型加速利器

FlashMLA是一种在变长序列场景下的加速版MLA(Multi-Head Latent Attention),针对decoding阶段优化。

2025-10-29 11:54:04 644

原创 用注意力知识分析DSA(DeepSeek Sparse Attention)的设计逻辑

首先来看一下,稀疏Attention在干什么。这里举个例子(输入序列“我是ky”),首先序列会映射到Q/K/V上面,将QK相乘得到相关性Scores,是一个维度为[4x4]的下三角矩阵,下图中给了一个单个值计算示意,查询值“k”与键值“是”进行运算得到相关性的值 Sk,是,依次类推完成其它计算。注意,因为采用因果(casual)模式,所以只要计算下三角的值。

2025-10-27 22:45:06 962

原创 一文读懂vLLM显存管理:技术细节+优化思路

本文分析了vLLM框架中的显存管理问题。当前GPU显存容量难以满足模型发展需求,如何高效利用显存成为关键。vLLM显存分为PyTorch类(模型权重、激活值、KV Cache等)和非PyTorch类(通信缓存、Attention模块等)。

2025-10-22 22:56:55 1154

原创 GPU内存(显存)的理解与基本使用

本文系统介绍了GPU显存架构及其与系统内存的交互机制。首先阐述了GPU显存的多级结构(L1/L2缓存、寄存器、共享内存等)与系统内存的差异,并对比了PCIe和NVLink等数据传输通道的速度特性。重点分析了内存优化技术:1)页锁定内存(Pinned Memory)可避免数据换页,提升传输效率但可能影响系统性能;2)零拷贝(Zero Copy)允许GPU直接访问系统内存,适合单次读写场景;3)Ampere架构引入的异步拷贝技术,通过绕过寄存器实现显存到共享内存的2倍速传输。文章通过代码示例展示了这些技术的实际

2025-10-18 23:24:51 1150

原创 LLM推理效率瓶颈突破:数据并行负载均衡(DPLB)浅析

在推理的数据并行(Data parallel)策略应用中,不同并行引擎之间的负载可能会存在差异,如何保证各个引擎之间的动态负载均衡?需要设计一种机制保证分发到实例上的推理请求尽量均衡,从而提升整个模块的吞吐/效率。DPLB(Data parallel Load Balancing)作为推理框架内部的一种策略目前在主流框架中已有相关应用,本文以vLLM框架现状进行DPLB的分析与方案讨论。

2025-10-13 22:52:15 902

原创 LLM推理并行优化的必备知识

随着大模型参数量增长,推理GPU资源需求从单卡扩展到多节点。本文系统介绍了推理并行优化的关键技术,包括矩阵运算切分(列切、行切及混合切分)、线性层并行策略(数据并行DP、序列并行SP、张量并行TP)、层间流水线并行PP以及参数冗余消除方法(如Zero)。特别分析了Attention层与FFN层的并行计算差异,提出异构部署方案。通过矩阵分块运算和集群通信优化(如allgather、allreduce),可显著降低显存占用和提升计算效率。文章结合具体场景和示例代码,为大规模模型推理的并行优化提供了实用指导。

2025-10-12 22:56:58 927

原创 拆解vLLM DP技术栈:特性原理、演进瓶颈与优化方案

本文分析了vLLM框架数据并行(DP)特性的实现方案。当前vLLM 0.9.x版本已支持多机DP推理,采用主节点AsyncLLM前端+多engine cores后端的架构,通过ZMQ进行数据通信。方案优势在于改动小、接口兼容性好,但也存在主节点可能成为瓶颈、负载不均衡等问题。重点探讨了EngineCore的DP适配实现,包括输入/输出线程处理、busy loop逻辑优化以及引入"wave"概念实现多进程同步。文章还指出了当前方案的不足,为后续改进提供了方向。

2025-10-10 22:30:02 1360

原创 深入vLLM V1内核:KV cache 管理机制详细剖析

KV cache的管理是vLLM框架最关键内容之一,在框架升级到V1后其逻辑进行了一次大的调整。为更好的了解KV cache的管理逻辑,本文结合代码(v0.10.2版本),从整体架构到关键细节进行讲解,涵盖逻辑层、物理层以及两者间的联系,帮助使用者/开发者对整体结构有个基本了解。

2025-10-09 18:54:07 1364

原创 硬核:分布式推理优化思路分享

摘要:本文探讨了大模型推理应用中的并行策略优化思路,针对不同场景和模型层特点提出针对性优化方案。文章分析了主流的并行策略(DP/TP/SP/EP/CP/PP/ZeRO)及其组合应用,特别讨论了MoE模型、Attention模块和FFN层的优化策略。在MoE模型方面,建议采用DP/TP/EP组合并行;Attention模块优化包括通信调整、DP间SP并行和显存优化;FFN层则推荐EP转AFD等策略。文章还涉及Embedding层的优化思路,强调并行策略需根据具体场景进行测试调整,以实现最佳性能。

2025-10-03 22:37:53 1071

原创 离线安装docker并运行的解决方法

离线安装docker并运行的解决方法安装包下载文件挂载镜像的离线安装GPU挂载nvidia-docker的安装安装包下载先在一台能连网的机器上下载安装包:yum -y install yum-utils# destdir是保存位置yumdownloader --resolve --destdir=/tmp docker# 如果在运行docker出现如下错误。>>> service docker startJob for docker.service failed beca

2021-04-15 14:31:22 767

原创 算法题:消耗的总时间求解问题

题目(羊吃草):假设有一群羊,吃一片草堆。一个羊单位时间能够吃掉一个单位的草堆;同一时间内一个草堆只能被一个羊吃;羊群只能由近到远的吃草堆,吃完近处的草堆才能去吃远处的草堆。羊的个数 n , 1 < n < 1000;草堆堆数t, 0 < t < 100000;单个草堆的大小k, 0 < k < 10000;请问吃完所有的草堆需要花多长时间?输入 (n, [list])举例1:草堆数组:[1, 2, 3, 2]羊个数:3总的时间:3举例

2021-04-07 16:38:57 376 1

原创 PyTorch分布式DPP涉及的基本概念与问题

PyTorch分布式DPP涉及的基本概念与问题1 分布式引入的参数1.1 rank、local_rank、node等的概念1.2 通信参数与模式1.3 分布式任务中常用的函数2 提速参数与隐藏的简单问题2.1 dataloader提速的参数2.2 checkpoint的保存与加载2.3 dist.init_process_group的init_method 方式2.4 进程内指定显卡2.5 CUDA初始化的问题本篇主要讲解DDP的一些概念和问题,主要涵盖如下:1、参数rank、local_rank、no

2021-03-29 10:34:24 13290 5

原创 PyTorch分布式DPP启动方式(包含完整用例)

PyTorch 单卡到分布式基础--DDP使用1 基本使用2 分布式引入的参数2.1 rank、local_rank、node等的概念2.2 通信参数与模式2.3 分布式任务中常用的函数3 启动的方式3.1 单机多卡3.2 多机分布式3.2.1方式一:每个进程占用一张卡3.2.2方式二:单个进程占用多张卡3.2.3方式三:利用launch4 提速参数与隐藏的简单问题4.1 dataloader提速的参数4.2 checkpoint的保存与加载4.3 dist.init_process_group的init_

2021-03-29 10:15:44 5143 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除