PD分离 —— Prefix Cache和Chunk Prefills

目前推理框架基本上都需要用到多轮对话的场景,自然产生了kv cache的存储和索引算法。如果能把prompt和后续产生的KV Cache保存下来,会极大地降低首Token的耗时。 目前使用最多的就是两个技术方案,一个是SGLang推出的RadixAttention的Prefix Cache,另一个是vllm原生的Chunk Prefills。当然vllm也兼容了Prefix Cache,这两个技术只能用一个,vllm默认是Chunk Prefills,可以通过加入参数--enable-prefix-caching来开启,这里不谈TensorRT-LLM是因为其不完全开源。 ...

September 29, 2025 · 1 min

vllm v1 源码解析 —— 单机八卡推理

单机八卡,我们按照PP + TP的方式来进行方案说明,使用的是vllm框架,主要命令和函数如下: python single_node_multi_gpu_demo.py --mode pipeline_parallel --tensor-parallel 4 --pipeline-parallel 2 --model facebook/opt-13b def pipeline_parallel_inference(self, model_name: str, tensor_parallel_size: int, pipeline_parallel_size: int): “““流水线并行推理 - 将模型层分布到多个GPU上””” print(f"🚀 启动流水线并行推理 - 模型: {model_name}") print(f" 张量并行: {tensor_parallel_size}, 流水线并行: {pipeline_parallel_size}") ...

September 26, 2025 · 5 min

vllm v1 源码解析 —— Core

一个client建立之后就会建立一个core engine,这些配置会通过QMZ IPC发送给core engine。 Core engine Architecture Worker and Executor MultiprocExecutor在MultiprocExecutor类中,可以清晰的找到三部曲: 1、创建RPC消息队列 # Initialize worker and set up message queues for SchedulerOutputs # and ModelRunnerOutputs max_chunk_bytes = envs.VLLM_MQ_MAX_CHUNK_BYTES_MB * 1024 * 1024 self.rpc_broadcast_mq = MessageQueue(self.world_size, self.world_size, max_chunk_bytes=max_chunk_bytes) scheduler_output_handle = self.rpc_broadcast_mq.export_handle() ...

September 23, 2025 · 2 min

算子进阶 —— 通信算子

随着LLM业务的不断发展,我们发现单机单卡无法承载一个模型的训练和推理,故此出现了单机多卡和多机多卡的训练推理算子,这时候每个机和卡之间都需要通信,所以通信算子十分的重要。 分布式并行下面是传统的四种并行处理架构,常用于大模型训练。 DP 每张卡拷贝相同的模型结构,仅对数据做切分。每张卡计算完的梯度也是针对各自数据的,需要做一次allreduce,然后使用优化器更新模型,进入下一次迭代。 ...

September 22, 2025 · 3 min

算子进阶 —— 通算融合

(施工ing) 概述我们知道,算子的作用是计算,那在整个体系中,我们的核心目标是拉满GPU的利用率。 在现代分布式体系中,多GPU之间同时存在着计算、内存访问和通信这三种基本活动,为了服务于我们的核心目标,我们需要尽可能的将通信时间和访存时间放在计算时间内,使得GPU不存在运算时间的泡泡。 大模型分布式系统执行的核心组件是并行的GPU。提升GPU运算的最佳方法,是通过计算与通信的重叠来实现。这种重叠可以通过两种方式达成:算子分解或通信内核融合。虽然算子分解实现起来简单,但往往导致性能欠佳。而将通信内核与计算内核融合,则需要更多的思考和计算。 故此最原始的想法就是用计算时间掩盖通信时间,通过大批量的数据直接发送到GPU,减少kernel开启和关闭、通信的开销。 Triton-distributedTriton-distributed是字节seed团队开发的Triton 编译器的扩展。对于 LLM 来说,分布式优化的关键要求是计算通信重叠。以前,在小规模分布式训练/推理中,通信开销并不是一个关键的成本问题。然而,随着集群数量呈指数级增长,计算与通信重叠变得至关重要。 ...

September 19, 2025 · 3 min

AI编译器 —— 笔记

challenge 新模型 新module出现,需要对应算子进行计算,还需要结合硬件进行特性优化和测试,尽量充分发挥硬件性能 硬件厂商还会发布新技术的加速计算库 专用加速芯片爆发导致性能可移植性成为一种刚需 不同厂商的ISA不尽相同 一般缺乏如GCC、LLVM等编译工具链,使得针对CPU和GPU已有的优化算子库和针对语言的优化Pass很难短期移植到NPU上 架构 和传统编译器对比 在编译优化层通过统一IR执行不同的Pass进行优化,从而提高执行性能 软件结构栈:分成前端、优化、后端三段式,IR解耦前端和后端使得模块化表示 AI编译器对Graph IR进行优化后,将优化后的IR转换成传统编译器IR,最后依赖传统编译器进行机器码生成 左边是旧编译器架构,右边是ai编译器架构 ...

September 11, 2025 · 3 min

【LLM 必读综述】Speed Always Wins:LLM高效架构调查

题目:Speed Always Wins: A Survey on Efficient Architectures for Large Language Models 作者:孙伟高 上海人工智能实验室 github:https://github.com/weigao266/Awesome-Efficient-Arch 文章的主要目的通过分析449篇大模型的论文,汇总得到了以下能让大模型速度提升的方向: ...

August 27, 2025 · 7 min