<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fjfdg666的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fjfdg666</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fjfdg666]]></copyright><item><title><![CDATA[从混合 Batch 到 GPU Kernel：读懂 vLLM 与 SGLang 的 Attention 执行]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/170245235</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/170245235</guid><author>fjfdg666</author><pubDate>Sat, 07 Nov 2026 17:49:48 +0800</pubDate><description><![CDATA[一个请求正在逐 token 生成，另一个请求还在处理长 prompt。vLLM 把它们放进同一轮计算后，QKV 投影能合起来做，Attention 又怎样区分请求？只有一个 query 的 decode，会不会和几百个 query 的 prefill 使用同样的 tile？FlashAttention、FlashInfer 和 CUDA Graph 分别参与了哪一层决策？]]></description><category></category></item><item><title><![CDATA[NVIDIA Dynamo Frontend 深度解析：从请求入口到推理集群调度内核]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/165121649</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/165121649</guid><author>fjfdg666</author><pubDate>Sat, 12 Sep 2026 16:43:25 +0800</pubDate><description><![CDATA[在 NVIDIA Dynamo 1.0.1 中，Frontend 已经超出传统 API Gateway 的职责边界。它既处理请求接入和流式回包，也负责 KV Cache 感知路由、Prefill/Decode（PD）链路编排、Worker 选择以及多推理引擎协议适配。Worker 决定 token 如何计算，Frontend 则决定计算是否值得发生、应该在哪里发生，以及失败时如何降级。本文以 1.0.1 的架构为基线，重点分析它的职责边界、核心机制和工程代价。]]></description><category></category></item><item><title><![CDATA[SGLang HiCache 与分离式推理：技术原理及部署实践]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/164405182</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/164405182</guid><author>fjfdg666</author><pubDate>Sun, 06 Sep 2026 00:02:11 +0800</pubDate><description><![CDATA[get(key)随后将后端注册到。}'可通过控制是否启用和批量接口。HiCache 本质上是建立在 RadixAttention 之上的分层、跨实例 KV Cache 系统：HiRadixTree 负责组织前缀及缓存位置，L1/L2 提供实例内快速复用，L3 提供大容量和集群级共享；预取、回写、Page 布局、零拷贝和计算传输重叠则负责控制分层存储带来的 I/O 成本。它最适合“前缀重复度高、Prefill 成本高、显存缓存容量不足”的负载。]]></description><category></category></item><item><title><![CDATA[vLLM 模型编译：从 torch.compile 到分段 CUDA Graph]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/164149539</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/164149539</guid><author>fjfdg666</author><pubDate>Fri, 28 Aug 2026 16:52:42 +0800</pubDate><description><![CDATA[编译 Pass 可以理解为一套处理计算图的规则。TorchDynamo 捕获 FX 图以后、Inductor 生成 GPU 代码以前，vLLM 会在图中查找特定的节点模式，并进行融合、替换、简化或删除。例如，把RoPE → KV-cache 更新替换成融合实现，或者去掉没有意义的 clone/no-op。这样可以减少 kernel 启动、中间张量和显存读写。Pass 作用在 FX 图上，不依赖某一个模型的forward写法。]]></description><category></category></item><item><title><![CDATA[vLLM 里的 CUDA Graph：动态推理如何塞进一张“静态图”]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/163782670</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/163782670</guid><author>fjfdg666</author><pubDate>Sat, 15 Aug 2026 19:10:28 +0800</pubDate><description><![CDATA[回头看，CUDA Graph 做的事情其实很纯粹：用静态性换更低的 CPU 提交成本。设备侧的执行结构和关键地址固定下来，每轮只在 replay 前更新 Buffer 内容。vLLM 也没有试图改变这条规则。动态请求↓ Scheduler 产生每请求 token 数packed token + 动态 KV/attention metadata↓ Dispatcher 选择 mode 与 capture buckettoken/request padding + 静态 GPU Buffer↓。]]></description><category></category></item><item><title><![CDATA[Megatron Core 并行训练主线：不看代码版]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/161367823</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/161367823</guid><author>fjfdg666</author><pubDate>Sun, 24 May 2026 18:25:33 +0800</pubDate><description><![CDATA[Megatron Core 的代码里同时交织着模型结构、并行切分、通信调度、优化器状态和低精度后端。本文按训练主线梳理这些模块各自解决的问题，以及它们如何接到同一条 GPT 训练流程上。]]></description><category></category></item><item><title><![CDATA[从一次 Hermes Agent 会话看 System Prompt、Tools 和 Skills]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/161129544</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/161129544</guid><author>fjfdg666</author><pubDate>Sat, 16 May 2026 05:10:04 +0800</pubDate><description><![CDATA[最近我看了一次 Hermes Agent 的会话导出。用户只问了一句话：调研近期大模型知识注入相关论文。这个任务本身不复杂。有意思的是过程：Hermes 没有直接凭模型记忆写一篇综述，而是先加载 arXiv 相关 skill，再用工具多轮检索论文，最后把结果按技术路线整理出来。所以这篇笔记不重点讨论知识注入论文，而是借这次会话看一个 Agent 系统到底怎么工作：system prompt 在管什么，工具是怎么被调用的，skills 为什么有用，tools list 又说明了什么。]]></description><category></category></item><item><title><![CDATA[介绍下近期的开源大模型]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/157840282</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/157840282</guid><author>fjfdg666</author><pubDate>Sat, 07 Feb 2026 12:41:36 +0800</pubDate><description><![CDATA[论文因此提出 MiMo-V2-Flash：用更省 KV-cache 与更快解码的设计，在长上下文与智能体任务上尽量逼近顶尖模型表现。他们指出：一些闭源模型在某些单项（如推理或代码修复）非常强，但三项都强的开源通用模型仍稀缺，因此提出 GLM-4.5 系列，目标是统一 ARC 能力，并提供思考/不思考两种响应模式。作者基于 Qwen3-30B-A3B-Thinking 做系统化 post-training，目标是把在长文本里跨多处证据、多跳推理、信息聚合计算的能力真正拉起来。+GRPO 到 56.07；]]></description><category></category></item><item><title><![CDATA[Agent记忆管理方法概述]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/157695638</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/157695638</guid><author>fjfdg666</author><pubDate>Tue, 03 Feb 2026 17:35:20 +0800</pubDate><description><![CDATA[当对话历史超过最大上下文时，常见方案是对历史进行摘要，但摘要属于。]]></description><category></category></item><item><title><![CDATA[理一下OpenRLHF的Ray资源调度和PPO训练流程]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/157060999</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/157060999</guid><author>fjfdg666</author><pubDate>Sat, 17 Jan 2026 11:08:34 +0800</pubDate><description><![CDATA[DeepSpeed 管“拿到这些 GPU 之后，训练这件事怎么更快、更省显存、更稳定”。你可以把 Ray 看成外层调度器/作业编排，DeepSpeed 看成内层训练引擎。Ray 负责起训练作业 + 分配 GPU，DeepSpeed 负责作业内分布式训练。为例，讲解PPO训练中ray的资源调度机制和PPO训练流程。再具体讲解代码之前，先大概介绍下Ray和DeepSpeed的功能和差异。DeepSpeed 的关注点是单个训练作业内部：拿到 N 张 GPU 后，怎么把模型/参数/梯度/优化器状态拆分与高效同步。]]></description><category></category></item><item><title><![CDATA[Online RLHF-PPO、GRPO、DAPO等方法]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/156947935</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/156947935</guid><author>fjfdg666</author><pubDate>Wed, 14 Jan 2026 16:09:53 +0800</pubDate><description><![CDATA[在policy model中，advantage作为概率比的加权值，在value model中，advantage与老的值网络的和作为target，与新的值网络之间计算MSE损失。基于1中训练好的预训练语言模型以及构建好的prompt集，使用beam-search等生成prompt的多个回复结果，然后人工对生成的多个结果排序，然后基于该数据训练了一个6B的打分模型，使用的是pair-wise的ranking loss。不同GRPO、DAPO，VAPO是一种基于值模型的方法，并超越了无值模型的方法。]]></description><category></category></item><item><title><![CDATA[Offline RLHF-DPO/KTO/ORPO/SPO等偏好学习方法]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/156910190</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/156910190</guid><author>fjfdg666</author><pubDate>Tue, 13 Jan 2026 18:00:50 +0800</pubDate><description><![CDATA[论文认为在iterative DPO中，每次启动DPO训练，reference model不应该使用最早的SFT模型，因为最新的偏好数据是从最新训练好的模型采样的，而不是从最初的SFT模型中采样，因此每次启动训练都需要更新reference model。论文指出DPO、CPO、SimPO都属于单边对比学习，这类方法会持续地将chosen样本的概率预测拉向1，rejected样本拉向0，这通常对分类样本是有效的，但是对生成模型来说意味着分布过度尖锐，丧失语言多样性和稳定性。]]></description><category></category></item><item><title><![CDATA[从Diffusion到VLA pi0(π0)]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/156239801</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/156239801</guid><author>fjfdg666</author><pubDate>Wed, 24 Dec 2025 18:59:05 +0800</pubDate><description><![CDATA[π0。]]></description><category></category></item><item><title><![CDATA[语音大模型-Audio Tokenizer的进展]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/156055816</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/156055816</guid><author>fjfdg666</author><pubDate>Thu, 18 Dec 2025 15:03:06 +0800</pubDate><description><![CDATA[为了执行下一次的残差量化，需要再进行上采样，并计算下一次的量化残差。在第一级，使用标准的VQ过程来量化信号，然后计算出原始信号与第一级量化后的信号之间的残差，对这个残差再进行一次或多次量化，以进一步减小量化误差，每一级都会产生一个新的残差，然后对新的残差继续量化，这样做可以逐步细化量化结果，提高最终的重建质量。对比EnCodec、SoundStream等基于GVQGAN框架的音频压缩算法，论文提出的DAC具有更低的码率（8kbps），并缓解了音调伪影，音高，周期性伪影以及高频建模不完善的问题。]]></description><category></category></item><item><title><![CDATA[Qwen3-Omni技术详解]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/155137540</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/155137540</guid><author>fjfdg666</author><pubDate>Sat, 22 Nov 2025 18:46:17 +0800</pubDate><description><![CDATA[介绍Qwen3-Omni之前，有必要先介绍Qwen2.5-Omni。Qwen3-Omin延续了上一代的模型架构，并做些一些重要改进。]]></description><category></category></item><item><title><![CDATA[PTX指令集基础以及warp级矩阵乘累加指令介绍]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/149722392</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/149722392</guid><author>fjfdg666</author><pubDate>Mon, 28 Jul 2025 17:58:31 +0800</pubDate><description><![CDATA[在32位数据类型上，PTX的16位寄存器会映射到32位物理寄存器，16位计算也会提升为32位计算，这可能导致同一代码在16位和32位机器上的计算结果出现差异，额外的精度位可能在应用层面显现（如右移指令）。因此，PTX中16位指令的语义是机器特定的，以避免32位GPU上16位代码的性能损失。从PTX语言层面，一种解决方案是为16位代码定义与16位数据类型执行一致的语义，但这会使16位代码在32位数据类型上执行时产生性能损失（需额外屏蔽指令处理高位多余精度位）。指令必须包含数据类型修饰符。]]></description><category></category></item><item><title><![CDATA[CUDA C++核心库（CCCL）]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/149544366</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/149544366</guid><author>fjfdg666</author><pubDate>Tue, 22 Jul 2025 18:44:45 +0800</pubDate><description><![CDATA[横轴意义：从左到右，工具呈现从 “高层且易用（High-Level & Productive）” 到 “底层且更具控制力（Low-Level & More Control）” 的变化。左侧起点（绿色箭头 “Start Here”）：建议从高层工具开始，如Thrust，因其易用性高、能提升开发效率。右侧终点（红色箭头 “Don’t Start Here”）：不建议直接从底层工具（如 PTX Wrappers）入手，这类工具复杂且维护难度大。解释。]]></description><category></category></item><item><title><![CDATA[全网最详llm.c源码解读--forward、backward、AdamW等CUDA Kernel详解]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/149516797</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/149516797</guid><author>fjfdg666</author><pubDate>Mon, 21 Jul 2025 22:16:39 +0800</pubDate><description><![CDATA[/ 执行完之后acts.output存储logits的梯度// 融合的分类头：前向计算和部分反向计算// ix是真实类别标签// 只计算真实类别标签所在位置的prob，其他位置均为0// sp.Offset/sp.Scale：softmax的数值稳定参数// 计算loss：-logsumexp// dloss是​​损失函数对当前样本的梯度(样本是指每个token的损失)，表示​​整体损失对当前样本损失​​的偏导数= NULL?i < V;]]></description><category></category></item><item><title><![CDATA[NCCL的基本使用和常用通信算法源码分析]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/149092802</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/149092802</guid><author>fjfdg666</author><pubDate>Thu, 03 Jul 2025 14:07:51 +0800</pubDate><description><![CDATA[理解 NCCL 中的“通道”概念是掌握其高性能通信设计的关键。它本质上是实现空间并行性的一种机制，用于更充分地利用网络硬件资源（链路带宽、网络接口卡、交换机端口），从而加速大型集合通信操作（尤其是像 AllReduce 这样需要传输大量数据的操作）。这个例子对应的就是PyTorch Distributed Data Parallel里面的AllReduce操作。这个例子对应的就是PyTorch Data Parallel里面的AllReduce操作。]]></description><category></category></item><item><title><![CDATA[Liger Kernel中的部分优化kernel详解]]></title><link>https://blog.youkuaiyun.com/fjfdg666/article/details/149045899</link><guid>https://blog.youkuaiyun.com/fjfdg666/article/details/149045899</guid><author>fjfdg666</author><pubDate>Tue, 01 Jul 2025 14:18:33 +0800</pubDate><description><![CDATA[RMSNorm 的反向传播本质是链式法则的应用：由于输入xix_ixi​参与了所有yky_kyk​的归一化（分母含全局平方和），因此梯度需要遍历所有yky_kyk​并累加其对xix_ixi​的偏导。推导中需区分kik=iki（自身梯度）和k≠ik \neq iki（交叉梯度）两种情况，最终整合得到dxidx_idxi​的表达式。]]></description><category></category></item></channel></rss>