大模型推理加速岗位学习路线
发表于|更新于|LLM
|浏览量:
大模型推理加速岗位学习路线
基础知识
- Transformer/SelfAttention 原理(精读论文:Attention is all you need)
- FlashAttention 原理(精读论文)
- KVCache 原理
- FasterTransformer/DeepSpeed/TensorRT-LLM 使用(推理加速)
- CUDA/CANN 编程(算子开发)
vLLM
- 精读 PagedAttention 论文
- 阅读 vLLM 源码
- Prefill/Decode 性能分析(PD 混合/分离)
参考资料
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2025-12-01
TorchAir学习笔记
TorchAir 学习笔记Eager Mode(单算子模式): 优点:立即执行并返回结果;易用、可调试;动态构建计算图(图的形状和大小可以在运行时改变); 缺点:可能存在性能问题(host bound),每一次 OP 调用触发一次 python/C++ 相关处理(torch/torch-npu/CANN)。 PyTorch 图模式演进: torch.jit -> lazy tensor -> TorchDynamo(PyTorch 2.0 正式集成,对外提供 torch.compile API,不光提供了成图能力,也同时发布了 Inductor 代码生成后端) torch.compile 底层原理: 前端: 图定义:torch fx 定义了一种图结构表达,并且能够进行 python 代码生成; 图生成:TorchDynamo 解析 python 编译后的 PyCodeObject 字节码,并生成一张 fx 图(传给用户定义的 Compiler); 后端: 图编译、图执行:TorchAir 是 torch.compile 里的...
2025-12-07
多模态大模型MRoPE作用解析
好的,这是一个非常专业且深入的问题。我们来详细解析一下多模态大模型中的 MRoPE(Modality-aware Rotary Position Embedding) 算子的作用。 首先,我们需要理解它的基础——RoPE。 1. 基础:RoPE(旋转位置编码)RoPE是像LLaMA、GPT-NeoX等众多主流大语言模型所采用的位置编码方式。 核心思想: 不是将位置信息作为一个独立的数字(如绝对位置)或向量(如正弦余弦函数)直接加到词向量上,而是通过旋转的方式来注入位置信息。 形象比喻: 想象一个二维平面,每个词对应一个二维向量。RoPE会根据这个词在序列中的位置,将这个向量旋转一个与位置成比例的角度。位置1旋转θ度,位置2旋转2θ度,以此类推。这样,两个词向量的内积(代表它们的关联程度)就只与它们的内容和相对位置差有关,而与它们的绝对位置无关。 优势: 很好的外推性: 模型在训练时见过的序列长度有限,但在推理时能处理更长的序列,因为旋转操作是连续且可扩展的。 显式编码相对位置: 模型能天然地理解“距离”的概念。 2. 多模态的挑战:为什么需要“M”?当我们将大模型从纯文本...
2025-08-05
Qwen2.5-VL_1
Qwen2.5-VL 差异对比Qwen2_5_VLForConditionalGeneration__init__()123456789101112131415161718192021222324252627282930# vllmself.use_data_parallel = multimodal_config.mm_encoder_tp_mode == "data"if multimodal_config.get_limit_per_prompt( "image") or multimodal_config.get_limit_per_prompt("video"): attn_backend_override = ( multimodal_config.mm_encoder_attn_backend if multimodal_config is not None else None ) self.visual = Qwen2_5_VisionTr...
2025-12-13
昇腾empty_cache原理
这是个非常好的观察,而且你没有看错 👍在 vLLM-Ascend(NPU) 上,torch.npu.empty_cache() 确实可能导致 non-torch 显存下降,这和 CUDA 的行为本质不同。 下面我分「结论 → 原因 → 机制细节 → vLLM 场景」把这件事讲清楚。 一句话结论(先给你) 在 Ascend / torch-npu 上:torch.npu.empty_cache() 不仅仅是 PyTorch cache 操作,它会间接触发 Ascend Runtime / ACL 的内存回收路径,从而 释放部分 non-torch(runtime / kernel / workspace)显存。 这在 CUDA 上几乎不会发生,但在 Ascend 上是“设计如此”。 1️⃣ 为什么 CUDA 上不行,Ascend 上却行?CUDA(torch.cuda.empty_cache) 只操作 PyTorch CUDACachingAllocator 不会触发: CUDA Runtime 内部 pool cuBLAS ...
2025-11-03
RDMA
RDMA基本原理RDMA 本质:“zero-copy + 远程内存访问”。 zero-copy? 指数据从源头到目的地,中间不经过 CPU 内存的“中转拷贝”。 传统路径:GPU A -copy-> CPU 内存 -socket send-> 内核 buffer -网络-> 对端内核 buffer -> CPU 内存 -copy-> GPU B; zero-copy:GPU A memory -> GPU B memory,数据不经过 CPU 内存,CPU 只负责“发指令”,数据由 DMA / RDMA NIC / GPU copy engine 直接搬运。 zero-copy 并不是“完全没有 copy”,而是:copy 仍然发生,但不经过 CPU 和额外 buffer。 DMA(Direct Memory Access):Device 直接读写内存,不经过 CPU(CPU 不参与数据搬运); RDMA(Remote Direct Memory Access):机器 A 内存 -> 机器 B 内存,绕过 CP...
2025-11-12
vLLM4.md
一、引言随着 vLLM 逐渐成为生产级场景下大模型推理的通用解决方案之一,期望 vLLM 支持各式各样算力底座的需求日趋强烈。目前,在 vLLM 的官方仓库中维护着 NVIDIA GPU、AMD GPU 以及 Google TPU 等多家芯片厂商的代码,但除此之外,还有更多的 AI 芯片是通过“硬件插件化机制”来支持自家算力的。 所有不在 vLLM 官方仓库中支持的硬件,都被统称为 OOT(Out Of Tree)Device,包括: 官方插件(指存在于 vllm-project 官方项目下的插件):vllm-ascend(华为昇腾 NPU)、vllm-spyre、vllm-gaudi(Intel Gaudi)、vllm-neuron(AWS Neuron)、vllm-metal(Apple Silicon)等; 非官方插件:vLLM-metax(沐曦 GPU)、vLLM-Kunlun(百度昆仑芯 XPU)等。 本文将深入介绍 vLLM 硬件插件化系统的原理,以及如何通过 CustomOp 完成自定义算子的注册与替换,从而使 vLLM 能够灵活地、高效地支持多样性算力。 二、...