资讯详情

GPU 架构全景:从 CUDA Core 到 Tensor Core,每个单元都讲透

📅 2026/10/4 7:43:34 | 华诺云谱 👁 阅读
GPU 架构全景:从 CUDA Core 到 Tensor Core,每个单元都讲透
导读模型跑得慢先别急着换卡。真正的问题往往不是 GPU 不够强而是你有没有喂饱它。这篇不讲玄学参数表只把 GPU 的关键单元和性能瓶颈一次讲清。1. GPU 到底长什么样可以把 CPU 和 GPU 理解成两种团队CPU像一位经验丰富的全栈工程师单兵能力强擅长复杂控制流、串行逻辑和低延迟响应。GPU像一支高度协同的流水线团队单个单元不比 CPU 强但人多、带宽高适合处理成千上万个相似任务。所以GPU 擅长矩阵乘法、图像处理、大规模 Transformer 计算、深度学习训练和推理但不擅长分支密集的逻辑、强依赖前一步结果的串行任务以及频繁的 Host↔Device 数据搬运。一句话总结GPU 快不是因为频率高而是因为并行任务足够多、数据流足够顺。更具体地说GPU 的优势来自三件事并行度高成千上万个线程同时工作。带宽高数据能快速进入计算单元。专用单元多Tensor Core、专用缓存、互联结构共同服务 AI 负载。反过来如果你的任务只有少量线程、强依赖上一步结果、或者频繁在 CPU 和 GPU 之间搬运数据GPU 就很难发挥价值。2. 执行模型的五层关系在 CUDA 里程序不是按传统函数调用跑的而是按下面五层组织Kernel你写的并行函数会被大量线程执行。Thread最小执行单位。Warp通常 32 个线程组成一个 Warp是 GPU 调度的基本粒度。Block一组线程通常共享一块 Shared Memory。SMStreaming Multiprocessor真正执行线程的计算车间。如果同一个 Warp 内的线程走出不同分支就会出现 Warp Divergence性能下降。所以写 CUDA 时不要只问“线程够不够多”还要问“同一 Warp 里的线程是不是在走相似路径”。3. CUDA Core通用计算单元CUDA Core 是 GPU 里的通用算术单元负责 FP32、INT32 等普通计算。它不是“最强单元”而是“最灵活单元”。适合做的事通用数值计算向量运算图像处理部分 AI 训练辅助任务不太适合做的事大规模矩阵乘法的主力计算强串行逻辑分支密集的控制流一句话总结CUDA Core 是基础算力Tensor Core 才是为 AI 场景准备的高效车道。4. Tensor Core矩阵乘法专用单元可以把 Tensor Core 理解为 GPU 里的“矩阵乘法专用车道”。普通 CUDA Core 更像通用工人什么都能算Tensor Core 则专门优化了小矩阵块乘加运算非常适合深度学习中的 GEMM 操作。以 A100 为例不同精度对应不同吞吐TF32训练中常用的“甜点”代码改动少性能提升明显。BF16更适合训练动态范围更大。FP16训练和推理都常用。INT8 / INT4更适合量化推理。2:4 Structured Sparsity权重满足稀疏模式时可进一步加速。所以模型优化时不要只问“能不能用 Tensor Core”还要问我的精度需求是什么我的瓶颈是算力还是带宽量化后精度是否还能满足业务要求5. SMGPU 里的计算车间SM 是理解 GPU 架构的核心。它里面通常包含Warp Scheduler调度 Warp 执行。CUDA Core执行通用算术。Tensor Core执行矩阵乘法。Register File线程私有寄存器。Shared Memory / L1 CacheSM 内共享缓存。Load/Store Unit负责访存。可以把 SM 理解为一个计算车间Warp Scheduler 是车间主任CUDA Core 是普通工人Tensor Core 是专用工人Register 和 Shared Memory 是车间内的工作台和共享白板。6. 内存层级真正决定性能的地方很多人把“显存”当成一个整体这是最大的误解之一。GPU 里至少要看懂这些层级Register最快线程私有要避免寄存器溢出。Shared MemorySM 内共享低延迟适合缓存复用数据。L1 CacheSM 内缓存有时和 Shared Memory 共享空间。L2 Cache全局共享缓存提高中间结果命中率。Global Memory / HBM容量大、带宽高但延迟更高要合并访问。Host MemoryCPU 侧内存要减少 PCIe 传输。性能差的常见原因不是算力不够而是相邻线程访问了不连续地址本来可以放进 Shared Memory 的数据反复访问 HBM真正的瓶颈在 PCIe而不是 GPU Kernel。记住一句话GPU 的性能不是算出来的是喂出来的。一个常见的判断方法是看计算强度如果计算量大、数据量小通常更容易吃满算力。如果计算量小、数据量大瓶颈大概率在带宽。如果频繁跨设备搬运数据瓶颈可能在 PCIe 或主机内存。7. 互联NVLink、PCIe、GPUDirectGPU 之间不是孤立工作的互联方式决定了多卡效率。PCIe通用互联适合普通数据传输但带宽有限。NVLinkGPU 间高速互联A100 最多 12 links × 25 GB/s总双向 600 GB/s。NVSwitch让多张 GPU 形成更高效的互联拓扑。GPUDirect减少 CPU 中转让 GPU 之间或 GPU 与存储直接通信。多卡训练时互联经常比单卡算力更关键。8. A100 视角这些单元怎么组合起来以 A100-SXM4-80GB 为例Ampere 架构Compute Capability 8.0108 个 SM约 6912 CUDA CoresHBM2e 显存理论带宽约 2 TB/s40 MB L2 Cache支持 TF32、BF16、FP16、INT8、INT4支持 MIG可以把一张物理 GPU 切分成多个隔离实例支持 NVLink 3.0多卡互联带宽 600 GB/sA100 的价值不只是“大显存”而是算力、带宽、互联、精度和资源隔离一起构成的数据中心 GPU 设计。9. 优化顺序按这个方向排查遇到 GPU 性能问题不要马上换卡先按这个顺序排查先 Profile不看数据就优化基本等于猜。看访存是否合并相邻线程访问相邻地址才能充分利用带宽。看数据能否复用能放 Shared Memory 或 L2 的数据不要反复读 HBM。看 Warp 分支是否发散尽量减少同 Warp 内线程走不同路径。看并行度是否足够GPU 需要足够多的并行任务才能吃满。看数据搬运PCIe、NVLink、Host Memory 上的传输经常才是真瓶颈。看同步和调度线程块划分、Kernel 启动、流并行都会影响实际性能。选对精度不是所有任务都需要 FP32。10. 常见坑为什么 GPU 明明很强还是慢很多性能问题并不是“GPU 不够强”而是用法不对。常见坑包括小 batch 吃不满 GPUGPU 需要足够多的并行任务batch 太小会导致利用率低。频繁 CPU↔GPU 拷贝每一步都在主机和设备之间搬运数据GPU 会长时间等待数据。数据布局不连续相邻线程访问不连续地址带宽利用率下降。Kernel 太碎大量小 Kernel 反复启动调度和同步开销盖过计算收益。只看显存不看带宽显存够不代表带宽够很多模型瓶颈其实在 HBM。盲目上低精度INT8/INT4 能提速但精度损失可能影响业务效果。忽略同步和通信多卡训练时通信时间可能比计算时间还长。11. 什么时候才应该换卡换卡前建议先问六个问题Profile 结果显示瓶颈真的在计算吗显存是否已经接近上限带宽是否已经打满多卡通信是否成为主要瓶颈精度和量化是否还能优化任务是否已经充分并行如果这些问题都没检查先换卡通常只是把低效从一个地方搬到另一个地方。12. 一个 5 分钟体检清单拿到一个慢任务可以按这个顺序快速判断看 GPU 利用率利用率低通常是并行度不足或数据供给不够。看显存占用显存接近上限时优先考虑梯度检查点、混合精度或更小 batch。看带宽利用率带宽高而计算不高说明瓶颈在访存。看 PCIe/NVLink 流量多卡任务尤其要关注通信时间。看 Kernel 数量和耗时小 Kernel 过多时考虑算子融合或减少同步。看精度选择在满足业务精度的前提下优先尝试 TF32/BF16/FP16。13. 小结真正理解 GPU不是背型号而是回答三个问题任务能不能被有效并行数据应该放在哪一层内存瓶颈在计算、访存、同步还是搬运把这三个问题想清楚很多“玄学调参”就会变成可解释的工程问题。更实用的做法是先 Profile再看数据流最后才考虑换硬件。GPU 不是玄学它是可以被解释、被测量、被优化的工程系统。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑