十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

学习GPU 物理架构与内存层级和KV Cache 与显存增长的一些思考

学习GPU 物理架构与内存层级和KV Cache 与显存增长的一些思考 datawhale社区Datawhale-学用 AI,从此开始llm-algo-leetcode教程地址GitHub - datawhalechina/llm-algo-leetcode: LLM algorithm practice lab with theory, solutions, and test cases.《大模型算法与系统教程》面向大模型入门到进阶的算法实战教程覆盖原理讲解、答案解析、测试用例与 CUDA/Triton 实战。 · GitHub1.GPU 是一座超级工厂把 GPU 想成一座只做一件事的工厂——做矩阵乘法算力TFLOPS 车间里工人的数量和工作速度每秒能做多少次乘加运算显存带宽TB/s 原料传送带的速度每秒能从仓库搬多少数据进车间缓存L2 / shared memory 车间旁边的小料场近但小随时取HBM 显存 远方的巨型仓库容量大但路远精度FP16/BF16/FP8... 秤的精度秤越粗称得越快但可能称不准延迟ns 从下单到拿到原料的时间根据这个框架所有问题都可以归结为一句话大模型的权重和中间结果数据量太大车间算力永远在等传送带带宽喂料——所以 GPU 设计的每一个改动本质上都是在让传送带更快或者减少需要搬运的原料量。2.英伟达GPU逐代拆解每个特性到底是什么意思VoltaV100, 2017——第一次有专门的乘法车间Tensor Core张量核心以前矩阵乘是拿通用算术单元硬算的一条指令算一次乘加Tensor Core 是专门为矩阵乘设计的硬件电路一条指令直接算一个 4×4×4 的小矩阵乘。相当于以前工人一个个搬砖现在是叉车整板搬运。FP16 混合精度配合 Tensor CoreV100 的 FP16 算力125 TFLOPS是 FP3215.7 TFLOPS的约 8 倍。意味着什么深度学习第一次拥有专用硬件训练 ResNet、早期 Transformer 的时间从周缩到天。V100 是 GPT-1/GPT-2 时代的主力卡。AmpereA100, 2020——精度档位大扩充 缓存扩容TF32这是最白嫖的一项——把 FP32 的尾数从 23 位截断到 10 位变成 19 位格式。精度几乎不损失训练 96% 场景无感但算力直接 8 倍。原本为了保险用 FP32 跑的代码改成 TF32 白拿加速。BF16Google 提出的格式。FP16 的问题是指数只有 5 位训练时 loss 一大就容易溢出infBF16 把指数补回 8 位范围和 FP32 一模一样训练时不用担心溢出代价只是尾数糙一点——但训练对此不敏感。从此 BF16 成为大模型训练的默认格式。HBM2e 带宽翻倍HBM 是立体堆叠的显存像高楼用硅通孔把几层 DRAM 叠起来层数越多带宽越高。A100 从 V100 的 0.9 TB/s 提到 2.0 TB/s。L2 缓存 40MBV100 只有 6MB。L2 是车间门口的大料场权重和中间结果如果能在 L2 里被复用就不用每次去远方的 HBM 取——这是缓解带宽压力的最直接手段。40MB 正好能容纳大模型一层的关键中间数据比如大 batch 的激活。MIG多实例 GPU把一块 A100 物理切成最多 7 个相互隔离的小 GPU给不同租户用云服务场景。Sparse Tensor Core稀疏权重里如果有一半是零结构化稀疏2:4 模式硬件直接跳过零不计算白得 2 倍加速。意味着什么GPT-31750 亿参数就是用 A100 集群训练出来的。Ampere 是大模型训练时代的开端。HopperH100, 2022——为 LLM 量身定制FP8比 FP16 再少一半位数。推理时对精度不敏感FP8 让推理吞吐直接翻倍训练也有 FP8 路径代价是要做 loss scaling 等保护。Transformer Engine这是最妙的设计——自动为每一层选择用 FP8 还是 FP16。因为模型不同层的精度敏感度不同有的层用 FP8 会崩有的层用 FP16 纯属浪费Transformer Engine 在前向传播时实时监测数值范围自动切换。相当于给每层配了一个精度管家。Thread Block Cluster多个 SMGPU 里的计算核心组的线程块结成簇可以互相访问对方的 shared memory。这是为长序列注意力准备的——比如处理 128K 长上下文时K/V 矩阵太大放不进一个 SM需要跨 SM 协作FlashAttention 的分布式版本就是靠它实现的。TMATensor Memory Accelerator之前 GPU 搬数据必须经过寄存器相当于所有货物都要先搬进车间再转手TMA 是一个独立的 DMA 引擎允许 HBM 直接异步搬数据到 shared memory完全绕开寄存器。数据搬运和计算可以同时进行双流水线进一步隐藏带宽延迟。HBM3 3.35 TB/s、NVLink 900 GB/sNVLink 是 GPU 与 GPU 之间的高速公路PCIe 只有 64 GB/s 左右多卡训练 GPT 级别模型时卡间通信是另一大瓶颈。意味着什么H100 的 FP8 推理吞吐约为 A100 FP16 的 3~6 倍是 ChatGPT 时代的主力训练/推理卡。BlackwellB200, 2024——把精度压到极限FP4 第二代 Transformer Engine推理进一步降到 4 位精度吞吐再翻倍。B200 的 FP4 标称算力约 9000 TFLOPS。第五代 NVLink 1.8 TB/s双向多卡互连带宽继续翻倍支撑万卡级集群训练。HBM3e 8 TB/s、单卡 192GB带宽比 H100 又翻一倍多。意味着什么单卡能装下 1-2TB 量级的 MoE 模型配合超大容量推理成本大幅下降。这就是生成式 AI 爆发背后的硬件基础。性能指标怎么读TFLOPSTera Floating-point Operations Per Second每秒万亿次浮点运算——看任何算力指标必须先看它是在什么精度下测的FP4 FP8 FP16 FP32数字大不代表全面。TB/s每秒搬运万亿字节——传送带速度大模型场景下它比算力更关键。关键比值算力 ÷ 带宽 该硬件能喂饱的算术强度上限。大模型算术强度低所以带宽几乎是硬约束。3.HBM完整谱系代号世代代表 GPU带宽量级HBM第一代V1000.9 TB/sHBM2第二代V100升级版等~1 TB/sHBM2e第三代e extendedA1001.5~2.0 TB/sHBM3第四代H1003.35 TB/sHBM3e第五代e extendedB2008 TB/s所以说A100 提升了 HBM2e 的带宽和说HBM 带宽可达 1.5 TB/s指的是同一根传送带——只是前一句强调了 A100 用的是第三代型号HBM2e后一句是泛称。既然 A100 板上装的就是 HBM2e 颗粒那么HBM 带宽实际就等于HBM2e 带宽。4.完整数据通路一次典型计算HBM芯片外大仓库│ ← ① 搬运带宽瓶颈1.5~8 TB/s▼L2芯片级中转站40~50MB所有 SM 共享 ← 数据必经之路│ ← ② 搬运更快~5.5~12 TB/s▼SM 内部┌─────────────────────────────────────┐│ L1 / Shared Memory小料场~164KB/SM ││ │ ← ③ 搬运最快19~33 TB/s ││ ▼ ││ 寄存器工人桌面每个线程独占 ││ │ ← ④ 读取几乎零成本 ││ ▼ ││ 计算单元CUDA Core / Tensor Core │└─────────────────────────────────────┘5.为什么不全用最快的存储SRAM因为物理上不可能、成本上不划算。这是一个容量-速度-成本三角不可能三角存储类型速度密度每 GB 成本寄存器/SRAM极快ns 级低6 个晶体管存 1 位极贵L2 SRAM快中贵HBM DRAM慢百 ns高1 个晶体管电容存 1 位相对便宜如果把 HBM 80GB 全部用 SRAM 造物理上GPU 芯片面积要 1000 倍增长A100 整颗 die 才 826mm²全 SRAM 化要 1 平米以上的硅片一片晶圆根本切不出来成本上SRAM 每 GB 成本是 DRAM 的 50~100 倍一块全 SRAM 卡要几百万美金电力上晶体管数量爆炸功耗也爆炸所以必须分层只有当前要用的那一小撮数据放最贵的 SRAM每 SM 寄存器 ~256KB、SMEM ~164KB、L2 40MB总共加起来几十 MB绝大部分历史数据放便宜的 HBM几十~上百 GB这是个工程妥协。6.真正减少数据搬迁的是FlashAttention不是 PagedAttentionFlashAttentionPagedAttention解决什么算 Attention 时少搬数据KV cache怎么存、怎么访问核心思路算子在 SMEM 里算完再写回 HBM按页分块 块表映射收益减少 HBM 往返次数提升显存利用率、支持长序列共同点都是 vLLM 用的核心优化两者不冲突、互补vLLM 框架里先 PagedAttention 存 KV管得稳再用 FlashAttention 算搬得少。
返回列表