avatar
文章
218
标签
196
分类
62
关于笔者
主页
博文
  • 分类
  • 标签
  • 归档
友链
留言板
Roger-Lv's space
搜索
关于笔者
主页
博文
  • 分类
  • 标签
  • 归档
友链
留言板

Roger-Lv's space

vLLM 源码精读——高吞吐 LLM 推理引擎全景
发表于2026-07-20|大模型系统
vLLM 源码精读——高吞吐 LLM 推理引擎全景 本文基于 vLLM 源码 vllm/v1/(V1 引擎架构)。目标:让你在面试时能从"为什么传统 serving 显存利用率只有 20%“讲到"PagedAttention 的 block 怎么管”、从"prefill/decode 不再分阶段"讲到"continuous batching 的 token-budget 调度"、从"prefix caching + 拷贝写"讲到"V1 的 async scheduler + CUDA Graph + spec decode"。读完这篇,vLLM 这关基本通杀。 一、vLLM 要解决什么问题、为什么面试必问 传统 LLM serving(朴素 batch)有两个致命问题: KV cache 显存碎片化:为每个请求预分配一段连续 KV 显存,请求长短不一→产生大量内部碎片+外部碎片,实测显存利用率常低于 20%;且无法在请求间复用相同前缀。 批处理不连续:朴素做法是"...
Megatron Timers 源码精读——分布式训练性能打点
发表于2026-07-20|大模型系统
Megatron Timers 源码精读——分布式训练性能打点 本文精读 Megatron-Core 的 megatron/core/timers.py(约 300 行)。目标:让你面试时能讲清"训练里怎么打点测一段算子耗时、为什么必须 torch.cuda.synchronize()、为什么分布式打点要跨 rank 聚合、log_level/DummyTimer 的开销控制怎么做"。这是个"小而完整"的子系统,特别适合讲清"分布式时序测量的陷阱"。 一、为什么需要专门的 Timer 训练几百亿参数、几千卡,一句"前向多快"没法用 time.time() 包一下就答——它有四个坑: GPU 异步:PyTorch 的 CUDA op 是异步 launch,CPU 侧 time.time() 测的是"把 kernel 丢进队列"的时间,不是 GPU 真跑完的时间。必须 torch.cuda.synchronize() 强制等 GPU 空闲再取时间。 多 rank 不同步:上千张...
GPU Kernel、异步 Launch、Stream 与融合 Kernel 全解
发表于2026-07-20|GPU
GPU Kernel、异步 Launch、Stream 与融合 Kernel 全解 本文目标:把"GPU 在跑 kernel"这件事从原理讲到工程——kernel 是什么、CPU/GPU 怎么协作、为什么 launch 是异步、synchronize 和 stream 怎么用、为什么要融合 kernel、怎么写/怎么调。读完你能回答面试官"你说的 kernel 是什么"“为什么 PyTorch op 测时间要 sync”“stream 是干什么的”“为什么要融合算子”。 和前面几篇呼应:Megatron Timer 反复强调 cuda.synchronize(),本篇讲清它为什么是命门。 一、先澄清:此 kernel 非彼 kernel “kernel” 有两个常见含义,别混: 操作系统内核 GPU kernel 是什么 OS 的核心,常驻 ring0 管硬件 一段在 GPU 上并行执行的函数 谁跑 CPU GPU 上成千上万个线程 例子 Linux kernel、Windows kernel vector_a...
Megatron Timer Predictor——训练 Straggler 实时检测与定位系统
发表于2026-07-20|大模型系统
Megatron Timer Predictor——训练 Straggler 实时检测与定位系统 本文记录我设计并落地的 Megatron Timer Predictor:一个针对 Megatron-LM 大规模分布式训练中性能落后节点(Straggler)问题的实时检测与定位系统。核心是用 Megatron Timer 采集的全 rank 时序数据,经"6 种聚类算法 + 投票融合"识别异常 rank,再针对流水线并行场景做通信异常检测 + 交叉验证定位网络拥塞节点,多进程并发把分析压到 30 秒内。生产环境异常检测准确率 >90%。 背景知识:Megatron Timer 怎么采时序、为什么跨 rank all-gather 取 max,见本人《Megatron Timers 源码精读》篇。本篇讲的是拿到这些时序数据之后,怎么自动找出谁是 straggler、为什么慢、慢在哪一段。 一、问题:Straggler 是分布式训练的隐形杀手 大模型训练动辄几百到几千张 GPU,靠 NCCL/Megatron 的集合通信把各卡同步起来。木桶效应:训...
Megatron-LM 源码精读——大模型并行训练全景
发表于2026-07-19|大模型系统
Megatron-LM 源码精读——大模型并行训练全景 https://blog.csdn.net/Antai_ZHU/article/details/144409187 本文基于 NVIDIA Megatron-LM 源码(megatron/core/,即 Megatron-Core)。目标:让你在面试时能从"5D 并行 + rank 排布"讲到"ColumnParallelLinear 的 autograd 通信插入"、从"1F1B vs Interleaved"讲到"DDP 的 param/grad buffer 与 distributed optimizer"、从源码结构讲到工程取舍。读完这篇,Megatron 这关基本通杀。 一、Megatron 是什么、为什么面试要问 Megatron-LM 是 NVIDIA 开源的大模型分布式训练框架,论文从 2019(张量并行)一路到 2022(PP+SP)、2023(CP、MoE)。它的核心价值是把"怎么把一个 Transformer...
x86 体系结构基础——特权级、中断异常、内存与总线
发表于2026-07-18|体系结构
x86 体系结构基础——特权级、中断异常、内存与总线 本文目标:给机器学习系统工程师/虚拟化初学者打底——把 x86 上"软件如何与硬件协作"的全链路讲清。从特权级 ring0~ring3 出发,串到用户态/内核态切换、中断与异常、MMU 与页表、DMA、PCIe 总线、最后到 IOMMU。读完你能解释"为什么虚拟化需要 VT-x/EPT、为什么容器隔离要靠内核、为什么 GPU 能直接读写内存"。 一、全景:一次系统调用穿越了多少层 先给一张全景,后面逐层拆: 12345678910应用(用户态, ring3) │ write(fd, buf, n) ← 软中断/syscall 指令 ▼内核(内核态, ring0) ← 特权切换: 保存现场、查页表、设驱动 │ 驱动程序 ▼设备(网卡/GPU/磁盘, DMA) ← 通过 PCIe 总线直接读写内存 │ ← MMU 翻译 CPU 地址, IOMMU 翻译设备地址 ▼物理内存(DRAM) 这五件事——特权级...
操作系统接口——fork/exec/wait、mmap、ioctl、epoll 与共享内存
发表于2026-07-18|操作系统
操作系统接口——fork/exec/wait、mmap、ioctl、epoll 与共享内存 本文目标:把 Linux 系统编程最核心的几个接口讲透——进程生命周期(fork/exec/wait)、内存映射(mmap)、设备控制(ioctl)、I/O 多路复用(epoll)、以及共享内存。这些是理解容器、虚拟化、RDMA、高性能网络、ML 推理框架的底层地基。读完你能回答"为什么 fork 后 exec 是两步"“mmap 怎么实现零拷贝”“epoll 为什么比 select 快”“共享内存为什么是最快 IPC”。 一、全景:进程的一生 先把进程的全生命周期摆出来,几个接口各司其职: 123456789101112131415父进程 │ │ fork() ── 复制自己,产生子进程(复制页表,COW) ├──────────► 子进程 │ │ │ │ exec() ── 替换代码段,加载新程序(此时子进程"变身") │ ...
CPU 虚拟化——从 trap-and-emulate 到 VT-x
发表于2026-07-18|虚拟化
CPU 虚拟化——从 trap-and-emulate 到 VT-x 本文目标:把 CPU 虚拟化的完整脉络讲透——从 Popek-Goldberg 理论、软件 trap-and-emulate、到硬件辅助 VT-x,再到 KVM 的工程实现。读完你能回答"为什么 x86 早期不能做高效虚拟化"“VT-x 的 root/non-root 是什么”“VMCS 存什么”“一次 VM-Exit 的开销和优化”“嵌套虚拟化怎么实现”。 一、要解决的问题:一个物理 CPU 怎么变成多个虚拟 CPU CPU 虚拟化的本质是:让多个 Guest OS 以为自己在独占一个物理 CPU,实际由 hypervisor(VMM)时分复用一个或多个物理核。 核心难点在于"特权指令"。Guest OS 内核要执行 hlt(停 CPU)、cli(关中断)、改 CR3(切页表)、lgdt(加载 GDT)这些指令——这些指令一旦真在物理 CPU 上执行,会真的关掉中断、真的换掉页表、真的停下 CPU,整机就乱了。所以必须让 Guest 不能直接执行这些指令,或执行后...
虚拟化技术学习路线——从原理到云原生
发表于2026-07-17|虚拟化
虚拟化技术学习路线——从原理到云原生 本文目标:给你一条从零到能独立设计/运维虚拟化平台的清晰路径。覆盖 CPU/内存/IO 虚拟化、QEMU/KVM、容器与 namesapce/cgroup、网络与存储虚拟化、云编排,最后落到大模型训练/推理场景下的 GPU 虚拟化与云原生调度。 学习哲学:先吃透"一个虚拟机是怎么被造出来的",再学"容器是怎么隔离的",最后学"云平台怎么把它们编排起来"。原理是地基,工程是楼层,地基不稳楼越高越晃。 学习路线总览(六个阶段) 12345678910111213阶段0 打地基:操作系统与硬件基础 │阶段1 虚拟化原理:CPU / 内存 / IO 三大虚拟化 │阶段2 Type-1 / Type-2 与 QEMU-KVM 全栈 │阶段3 容器虚拟化:namespace + cgroup + rootfs │阶段4 网络与存储虚拟化:virtio / SDN / 分布式存储 │阶段5 云编排:OpenStack / Kubernetes / 调度 │...
RDMA 技术栈全解——ML 系统研发面试通关
发表于2026-07-17|网络
RDMA 技术栈全解——ML 系统研发面试通关 本文目标:让你在面试官问"你们大模型训练集群用的什么网络、为什么用 RDMA、RDMA 怎么做到零拷贝、RoCEv2 和 InfiniBand 区别、NCCL 里 RDMA 起什么作用"时,能从原理到工程对答如流。 全文按"为什么 → 是什么 → 怎么用 → 在 ML 系统里怎么用 → 面试问答"组织。 一、为什么需要 RDMA:传统网络栈的瓶颈 先看传统 TCP/IP 协议栈一次发送数据的完整路径(以应用 A 发数据到应用 B 为例): A 应用调用 send(),数据从用户态缓冲区通过 copy_to_user-like 的拷贝进入内核态 socket buffer(第一次拷贝)。 协议栈(TCP/IP)逐层封装报文头,经过内核协议栈处理。 数据通过 DMA 从内核缓冲区拷到网卡(NIC)的发送环(第二次拷贝)。 网卡把数据发到网线上。 B 端网卡收到数据,DMA 拷到内核 socket buffer。 B 应用调用 recv(),数据从内核态拷回用户态(第三次拷贝)。 问题有三...
12…22
avatar
Roger-Lv
Send a flare and light the way.
文章
218
标签
196
分类
62
Follow Me
公告
Welcome!
最新文章
vLLM 源码精读——高吞吐 LLM 推理引擎全景2026-07-20
Megatron Timers 源码精读——分布式训练性能打点2026-07-20
GPU Kernel、异步 Launch、Stream 与融合 Kernel 全解2026-07-20
Megatron Timer Predictor——训练 Straggler 实时检测与定位系统2026-07-20
Megatron-LM 源码精读——大模型并行训练全景2026-07-19
分类
  • AI Infra12
  • AIInfra5
  • Agent26
  • CUDA1
  • Docker1
  • Flowise1
  • GPU1
  • Golang1
标签
深入理解分布式系统 Ollama GraphRAG SDN HPC 学习路线 操作系统 背包问题 线性代数 强化学习 manus 6.824 SpringBoot AI Infra node-runtime OpenClaw 夏令营 线程池 向量检索 Lora 概率论 NVIDIA SKILL 分布式任务调度 rag System 计算机网络 SFT RDMA 存储 AI产品 上下文压缩 Golang 并发 Linux 大模型微调 k8s Future ResNet 训练
归档
  • 七月 2026 17
  • 五月 2026 6
  • 四月 2026 2
  • 三月 2026 3
  • 二月 2026 2
  • 一月 2026 5
  • 十二月 2025 28
  • 十一月 2025 5
网站信息
文章数目 :
218
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2024 - 2026 By Roger-Lv
搜索
数据加载中