Personal Knowledge Publishing

Mr. Tang 的个人知识站

体系结构——权衡的艺术,性能的诗歌

最新文章

  • 大模型中的数学(005):泊松分布在 LLM 推理系统中的作用

    · · 4 min read

    泊松分布在 LLM 推理系统中的作用 在 LLM Serving 系统中,用户请求的到达往往是"不守时"的。即使一台服务器平均每秒接收 10 个请求,实际情况也可能是:这一秒来了 7 个,下一秒来了 12 个,再下一秒来了 9 个。平均到达速率只是一个长期统计的结果,而真正决定系统性能的,恰恰是围绕这个平均值的随机波动——请求可能在短时...

  • 大模型中的数学(004):从位置到旋转,一步步理解 RoPE

    · · 4 min read

    从位置到旋转:一步步理解 RoPE 在介绍 Transformer 的时候,我们经常会说模型需要知道词语的先后顺序。但具体来说,位置应该怎样进入注意力计算?如果我们希望模型同时关注词语内容和它们之间的距离,又该如何设计?本文从这两个问题出发,结合具体数字、旋转矩阵和代码,逐步理解 RoPE(Rotary Position Embedding,旋转位置编码)...

  • 大模型中的数学(003):为什么每个 Token 的 KV 会受到上下文影响?

    · · 2 min read

    从一层到两层:KV 为什么会带上上下文? 讨论 KV Cache 时,很容易产生一个疑问:每个 token 不都是各自计算自己的 Key 和 Value 吗?既然如此,同一个 token 出现在不同句子里,为什么它的 KV 还会不同? 先看第一层 设第 ii 个 token 的初始表示为 xi(0)x_i^{(0)}。它通常由 token embedding...

  • code-review-graph 使用教程

    · · 1 min read

    你有没有遇到过这种情况:在 Harness 里问一句「这个认证流程是怎么跑的?」「我改这个类会影响哪里?」或者「帮我 review 一下最近的改动」,它就开始一轮又一轮地搜索、读取、拼上下文。 时间一长,你会发现一个很现实的问题:AI 对代码库的理解,很难持续积累。 本文要讲的,就是如何用 code-review-graph 给本地代码仓库建立一张知识图...

  • vLLM 部署 Qwen3.8-27B-FP8(3):VSCode 使用

    · · 1 min read

    安装 VSCode 的 Cline 插件,并按下图完成配置: 将 Base URL 设置为: http://202.197.4.150:8000/v1

  • vLLM 部署 Qwen3.8-27B-FP8(1):无有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用

    · · 2 min read

    0. 适用情况 人在外面、只能走跳板机时:本机电脑到 202.197.4.150 没有直连路由,本地会话会连不上。解决办法是保持一条隧道(复用你现成的 remote-150 配置,自动经 ProxyJump eda): ssh -N -L 8000:127.0.0.1:8000 remote-150 这时给本地会话单独加一个供应商(如 vllm-loc...

  • Linux 开发环境配置

    · · 4 min read

    零、Linux 换源工具 linuxmirrors 一、Vim 配置 升级 vim 到新版,防止粘贴问题: # 升级 vim sudo apt upgrade vim 将以下内容保存到用户主目录下的 ~/.vimrc 文件中(如果文件不存在则新建)。 " ==============================================...

  • Harness 使用 (1):受欢迎的 skills 收集

    · · 1 min read

    Harness 使用 (0):目录 代码相关 skills 安装时,优先将官网链接发送给对应的 harness,由其直接完成安装;若无法安装,再参照下方步骤操作。 spec-kit Spec Kit 是一个开源工具套件,为 AI 编码助手 提供结构化流程、可复用模板和有据可查的成果。它具备三个功能: 构建构建功能或应用。 排查并修复异常行为...

  • vLLM 部署 Qwen3.8-27B-FP8(2):存在有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用

    · · 1 min read

    0. 适用情况 你的电脑已接入有线内网(可直接访问 202.197.4.x 网段)。 1. 方案 在 《vLLM 部署 Qwen3.8-27B-FP8(一):无有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用》 的基础上,由于内网可直接访问 vLLM 所在服务器,不需要再额外建立隧道(以下操作不再需要): ssh -N -L...

  • Harness 使用 (3):模型能力对比收集

    · · 1 min read

    artificial analysis 网站

  • 端侧大模型芯片

    · · 1 min read

    1. Netron Netron 网页 神经网络模型可视化工具。 支持 ONNX、TensorFlow Lite、PyTorch 等格式。 拖入模型即可查看网络结构、算子、张量形状。 2. Coral NPU 裸机编程 — Google Coral 文档 github 项目 Coral NPU 是 32 位 RISC-V 微控制器,裸机运行...

  • 远程连接和 WSL 连接配置(2):MobaXterm 免密连接+跳板机

    · · 1 min read

    MobaXterm 免密连接 场景:目标服务器 202.197.4.156 因特殊网络配置无法直接访问,必须通过跳板机 47.101.171.14 中转连接。MobaXterm 的免密连接配置如下:

  • ONNXim 模拟器(1):GEMM、Tile、脉动阵列与存储映射

    · · 15 min read

    可视化交互图:onnxim-gemm-mapping-stepwise.html 1. 从完整 GEMM 到 Tile,再到一条计算指令 1.1 先明确这几个维度在本文中的含义 理解分块只需要先知道:N 是输入和输出的行数,M 是输出列数,C 是每个输出元素要遍历的归约长度。 源码还会把 C 称为 K;本文中的 C、K 指同一个归约维度。 名称 含义...

  • 远程连接和 WSL 连接配置(1):VSCode SSH 和 Pycharm SSH 免密连接

    · · 1 min read

    在 Windows 系统下配置 SSH 免密登录远程服务器,并且支持多用户配置。

  • 脉动阵列(1):基础知识

    · · 3 min read

    脉动阵列(Systolic Array) 1. 介绍 本目录提供一个 二维脉动阵列 的 Python 仿真,用于计算矩阵乘法。 输入矩阵:A 的形状是 (m, k),B 的形状是 (k, n) 输出矩阵:C = A @ B,形状是 (m, n) 阵列由 m × n 个处理单元(PE)组成。每个 PE 在每个周期执行一次乘加(MAC): acc[i...

  • 投机解码 (1):拒绝采样机制

    · · 4 min read

    0. 证明目标 目标:从任意初始历史 h0h_0 出发,Speculative Sampling 算法从草稿模型生成完整序列的分布,与目标模型自回归采样完全一致。 1. 问题设定与动机 自回归语言模型按 token 逐步生成。给定已经生成的历史 hh,下一个 token 的条件分布由模型决定。目标模型(target model)记为 pp,草稿模...

  • Qwen 3.5 架构解析 (0):目录

    · · 1 min read

    重点介绍三个部分: SWA (Sliding Window Attention, 滑动窗口注意力) Gated DeltaNet Mamba2

  • Qwen 3.5 架构解析 (1):Linear Attention → Delta Rule → Gated Delta Rule → Gated DeltaNet 的演化

    · · 17 min read

    1. 总体介绍 Qwen 1.1 先看两张图 官方 Qwen3-Next 架构图展示了三条主线:Gated DeltaNet 作为线性 token mixer、Gated Softmax Attention 作为精确的全注意力 token mixer,以及每个 block 后面的 Mixture of Experts。图中右下角的 Gated Delta...

  • 解析 FlashAttention(0):目录

    · · 1 min read

    解析 FlashAttention(1):从标准 Attention 讲起 解析 FlashAttention(2):FlashAttention-v1 前向传播 解析 FlashAttention(3):FlashAttention-v1 反向传播 解析 FlashAttention(4):FlashAttention-v2 解析 FlashAtt...

  • 【训练排障】训练不收敛的系统排查清单:学习率、数据、初始化、精度逐个排除

    · · 2 min read

    来源视频:训练排障:训练不收敛的系统排查清单:学习率、数据、初始化、精度四步走 1. 三种不收敛表现 Loss 完全不降:一直在初始值附近晃动。 Loss 持续震荡:降一点、升一点,没有明确趋势。 Loss 先降后升:常见方向是过拟合或学习率太大。 正常训练允许 Loss 小幅波动,但一段时间内应有整体下降趋势。 2. 排查顺序 3. 第一步...

  • Harness 使用 (0):目录

    · 1 min read

    Harness 使用 (1):受欢迎的 skills 收集 Harness 使用 (2):常用提示词

  • Harness 使用 (2):常用提示词

    · 1 min read

    Harness 使用 (0):目录 1. 模型架构图 对于 LLM 整体架构图,可以使用以下参考图: 2. 模型计算流程图 对于 LLM 每个模块内部的计算流程,可以使用以下参考图:

  • torch.distributed 分布式训练(04):调试

    · 1 min read

    2 卡及以上不是不能使用断点,但普通 PyCharm 断点不能像单卡一样随意使用。 核心原因是:多个 rank 必须按相同顺序执行 barrier、all_reduce、all_gather 等集合通信。如果 rank 0 被断点暂停,而 rank 1 已经进入集合通信,rank 1 会等待 rank 0,最终表现为卡死或超时。 所以,推荐的调试顺序是...

  • AI Infra 学习资料

    · 1 min read

    非官网资料 北京大学未名超算队x北京大学学生 Linux 俱乐部——AI Infrastructure Seminars LLM Serving 压力测试负载

  • CUDA 学习资料

    · 1 min read

    CUDA 编程指南中文图解

  • Jalapeño 架构设计

    · 3 min read

    附录:参考资源 第三方分析 重新设计推理芯片: 从 Nvidia GPU 的缺陷到 OpenAI Jalapeño Jalapeño 拆解:OpenAI 的第一代推理 ASIC,Prefill-Decode 分离不再必要了? 一、背景:从带宽墙到开销墙(The Overhead Wall) 现代 AI 推理的瓶颈已经发生迁移。在训练或大 batch...

  • 解析 FlashAttention(4):FlashAttention-v2

    · 16 min read

    论文链接: FlashAttention v1:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (NeurIPS 2022) —— https://arxiv.org/abs/2205.14135 FlashAttention v2:FlashAtte...

  • 解析 FlashAttention(5):FlashAttention 和常用 triton 算子

    · 1 min read

    1. triton 代码 triton_docs_tutorials-main.zip 附件中的代码包含以下算子的 triton 实现,以及 .ipynb 文件内的可视化交互图: 04_vector_addition:向量加法算子。 05_fused_softmax:融合 softmax 算子。 06_matmul:矩阵乘算子。 07_dropo...

  • 解析 FlashAttention(1):从标准 Attention 讲起

    · 4 min read

    1. 标准 Attention 的定义 在正式分析 FlashAttention 之前,要先彻底地了解标准 Attention 的做法和含义。 给定单个 Query 向量 q∈RN×d\mathbf{q} \in \mathbb{R}^{N \times d},以及 Key 矩阵 K∈RNkv×d\mathbf{K} \in \mathbb{R}^{N_{kv} \times d} 和 Value 矩阵...

  • 解析 FlashAttention(2):FlashAttention-v1 前向传播

    · 11 min read

    上一篇:解析 FlashAttention(1):从标准 Attention 讲起 参考:万字长文详解FlashAttention v1/v2 整个 FlashAttention v1 的分块运算可视化过程: flash_attention_visualization.html 1. 背景 & 动机 1.1 标准 Attention 的核心矛...

  • 解析 FlashAttention(3):FlashAttention-v1 反向传播

    · 15 min read

    解析 FlashAttention(3):FlashAttention-v1 反向传播 前置阅读:解析 FlashAttention(2):FlashAttention-v1 前向传播 FlashAttention-v1 反向传播可视化:flashattention_backward.html 1. 背景 & 动机 1.1 标准反向传播的内存...

  • torch.compile 加速 Pytorch (01):简介

    · 3 min read

    来源:Introduction to torch.compile 作者:William Wen 适用版本:PyTorch >= 2.0 1. torch.compile 简介 torch.compile 是加速 PyTorch 代码的新方式。它通过 JIT 编译 将 PyTorch 代码编译为优化的内核(optimized kernels),同...

  • APOGEE: Adaptive Prefetching On GPUs for Energy Efficiency

    · 2 min read

    论文链接:APOGEE: Adaptive Prefetching On GPUs for Energy Efficiency APOGEE 核心方法 FOA 预取器: 一个 warp 里的线程同时暴露地址规律,预取器瞬间学会"步长",下次按公式批量预取。 学习(Training) 场景: 8 线程的 warp 执行 load...

  • 每日听力口语训练

    · 21 min read

    001. 小镇英语老师经济独立,为何不混任何圈子 全英|小镇英语老师经济独立,为何不混任何圈子 I'm a young independent English teacher. At a young age, I've achieved financial independence and have complete control over my li...

  • 大模型中的数学(002):DP 中的梯度缩放

    · 2 min read

    数据并行中的梯度缩放 考虑一个大小为 NN 的全局 batch B={(xi,yi)}i=1N\mathcal{B} = \{(\mathbf{x}_i, \mathbf{y}_i)\}_{i=1}^N。全局目标损失函数采用 mean reduction: L(W)=1N∑i=1Nℓi(W)L(\mathbf{W}) = \frac{1}{N} \sum_{i=1}^{N} \ell_i(\mathbf{W}) 其梯度为基准真值: g⋆=∇L(W)=1N∑i=1N∇ℓi(W)(1)\mathbf{g}^\star = \nabla L(\mathbf{W}) = \frac{1}{N} \sum_{i=1}^{N} \nabla \ell_i(\mathbf{W}) \tag{1} 1. 单卡...

  • Pycharm 和 VSCode 调试

    · 1 min read

    PyCharm 调试 PyCharm 提供两种主要的调试配置:Script 与 Module。 Script 调试 Script 调试即常规的 python3 直接运行脚本的方式,同时支持指定命令行参数。 Module 调试 Module 调试适用于非标准的启动方式,例如通过 torchrun 启动: ⚠️ 注意:分布式训练场景下通常不建议使用...

  • torch.distributed 分布式训练(02):基本用法

    · 3 min read

    1. torchrun 启动参数 单节点训练 如果机器上有 8 张 GPU,并且希望每张 GPU 使用一个进程,可以执行: CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \ torchrun --standalone --nproc_per_node=8 train.py 也可以省略 CUDA_VISIBLE_DEVICE...

  • torch.distributed 分布式训练(03):TP/PP/DP 代码实例

    · 5 min read

    代码 parallel_all_in_one_test.py TP、PP、DP 并行通信笔记 示例配置为: TP=2,PP=2,DP=2TP=2,\qquad PP=2,\qquad DP=2 因此总进程数为: WORLD_SIZE=TP×PP×DP=2×2×2=8WORLD\_SIZE=TP\times PP\times DP=2\times2\times2=8 测试模型的主要维度为: B=8,S=16,H=32,I=64,L=4B=8,\qquad S=16,\qquad H=32,\qquad I=64,\qquad L=4 其...

  • 大模型中的数学(001):Gumbel-Max Trick 代替随机采样

    · 2 min read

    Gumbel-Max Trick 这里不展开 Gumbel-Max 的严格数学证明,只说明它解决什么问题,以及为什么需要它。 1. 我们想解决什么问题? 假设有一个离散随机变量 XX,它有三个可能取值: P(X=1)=p1,P(X=2)=p2,P(X=3)=p3P(X=1)=p_1,\quad P(X=2)=p_2,\quad P(X=3)=p_3 其中: p1+p2+p3=1p_1+p_2+p_3=1 我们希望按照这个概率分布采样一个...

  • torch.distributed 分布式训练(01):简介

    · 1 min read

    【大模型训练笔记】分布式训练利器torch.distributed

  • GPU Benchmarks 收集

    · 1 min read

    完全单独切分的 NVIDIA GPU Kernel 1. 只有 kernel,不带 makefile kernel_split_benchmark_src_code.zip 2. 有 kernel + makefile mykernel_split_benchmark.zip

  • Python 和 Pytorch 语法备忘录

    · 1 min read

    Python 使用 Python 魔法方法:比如 __repr__、__init__ 等。 Python 装饰器:常用如 @property(属性化访问)、@dataclass(自动生成 __init__/__repr__)。 注释 Google Python Style Guide:在指引 AI 进行编程时,可以要求遵循该规范。 扩展:其他语言...

  • docker 环境问题

    · 1 min read

    docker 出现中文乱码 进入容器后执行: # 1. 安装 locales 和中文字体 apt update apt install -y locales fonts-wqy-zenhei fonts-noto-cjk # 2. 生成 UTF-8 locale locale-gen zh_CN.UTF-8 en_US.UTF-8 # 3. 设置环境...

  • GPU 内存子系统分析(四):L2 布局

    · 5 min read

    所有测试脚本和代码:l2c-test-tangyuhan.zip 演示 PPT: rtx5080_gpu_memory_subsystem_analysis_structured.pptx NVIDIA RTX 5080 L2 缓存微体系结构测量 本文以 NVIDIA GeForce RTX 5080 作为实验平台,基于一套 CUDA 微基准测试程序...

  • GPU 内存子系统分析(二):DRAM 带宽分析

    · 6 min read

    DRAM 带宽分析

  • GPU 内存子系统分析(一):延迟分析

    · 17 min read

    分析GPU 的 L1/Shared Memory,L2,DRAM 的访问延迟

  • Sequence Parallelism序列并行(一)

    · 3 min read

    原始论文 Reducing Activation Recomputation in Large Transformer Models 序列并行 序列并行是在张量并行的基础上进行的进一步深度优化,旨在减少“中间值”带来的显存占用(“中间值”是反向传播所必需的。如果不保存这些中间值,在反向传播过程中就必须重新执行前向计算来生成它们,这会显著增加训练的时间开销...

  • Tensor Parallelism张量并行(二)

    · 2 min read

    这是一篇基于 Megatron-LM Tensor Parallelism (TP) 核心逻辑的源码解析文章。 代码路径:Megatron-LM/megatron/legacy/model/transformer.py 前言 在大模型训练中,Tensor Parallelism (张量并行,TP) 是最核心的并行策略之一。它不仅仅是简单的分片训练,而是...

  • Tensor Parallelism张量并行(三)

    · 2 min read

    在分布式大模型训练(如 GPT-3, Llama 3, DeepSeek)中,张量并行 (Tensor Parallelism, TP) 是处理超大规模参数的核心技术。而 Megatron-LM 的 TP 源码设计充满了系统工程的智慧。 今天我们将深入 Megatron-LM 剖析其最基础的组件——ColumnParallelLinear(列并行线性层)...

  • Tensor Parallelism张量并行(一)

    · 2 min read

    论文来自 Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism。 什么是 Tensor Parallelism(张量并行) 大模型训练通常面临两个核心问题: 显存压力大:当模型参数规模达到数十亿甚至更高时,在每张 GPU 上都完整保存一...

  • Data-Parallelism数据并行(二)

    · 3 min read

    Model Parallelism 之 Data Parallelism: Naive Data Parallelism, Distributed Data Parallelism (DDP), ZeRO Data Parallelism

  • Data-Parallelism数据并行(一)

    · 3 min read

    Model Parallelism 之 Data Parallelism: Naive Data Parallelism, Distributed Data Parallelism (DDP), ZeRO Data Parallelism

  • Pipeline-Parallelism流水线并行(一)

    · 5 min read

    Model Parallelism 之 Pipeline Parallelism: Naive Pipeline Parallelism, Gpipe, PipeDream