当前位置: 首页 > news >正文

FlashInfer - 测试的GPU H100 SXM、A100 PCIe、RTX 6000 Ada、RTX 4090

FlashInfer - 测试的GPU H100 SXM、A100 PCIe、RTX 6000 Ada、RTX 4090

flyfish
在这里插入图片描述

GPU 技术参数术语

1. Memory bandwidth (GB/s)

中文:显存带宽(单位:GB/秒)
定义:显存(GPU 内存)与 GPU 核心之间每秒的数据传输速率,反映显存与计算单元之间的“数据高速公路”宽度。
作用:带宽越高,GPU 每秒能处理的数据量越大,尤其影响需要频繁读写显存的场景(如大规模矩阵运算、高分辨率图形渲染)。
:H100 SXM 的 3352 GB/s 远高于 RTX 4090 的 1008 GB/s,适合需要海量数据吞吐的 AI 训练。

2. Number of SM

中文:流多处理器数量(SM,Streaming Multiprocessors)
定义:NVIDIA GPU 的核心计算单元,每个 SM 包含多个 CUDA 核心、Tensor Core、共享内存等组件,是并行计算的基本单元。
作用:SM 数量越多,GPU 的并行计算能力越强(尤其是矩阵运算、图形渲染等并行任务)。
:RTX Ada 6000 的 142 个 SM 多于 RTX 4090 的 128 个,适合更复杂的专业图形计算。

3. Peak Tensor Cores Performance (TFLops/s)

中文:峰值张量核心性能(单位:万亿次运算/秒)
定义:Tensor Core 是 NVIDIA GPU 中专门优化矩阵运算的硬件单元,用于加速 AI 训练和推理中的矩阵乘法与累加(如 FP16/BF16 混合精度计算)。
作用:性能越高,AI 模型训练/推理速度越快,是衡量 GPU 机器学习能力的核心指标。
:H100 的 989 TFLops 远高于 A100 的 312 TFLops,使其成为大模型训练的首选。

4. Peak (Non-Tensor Cores) FP32 Performance (TFLops/s)

中文:峰值(非张量核心)FP32 浮点性能(单位:万亿次运算/秒)
定义:不依赖 Tensor Core 时,GPU 传统浮点单元(CUDA 核心)处理 32 位单精度浮点运算(FP32)的峰值性能,用于衡量传统科学计算、图形渲染等场景的能力。
作用:FP32 是图形渲染(如 3D 建模、光线追踪)和部分科学计算的基础,性能越高,传统浮点任务速度越快。
:RTX Ada 6000 的 90 TFLops 高于 A100 的 20 TFLops,更适合专业图形处理。

5. Max Shared Memory (KB/SM)

中文:每 SM 最大共享内存(单位:KB/流多处理器)
定义:每个 SM 内部的高速缓存,用于存储线程块内共享的数据,速度远快于显存,减少对外部显存的访问。
作用:共享内存容量越大,线程间数据交互效率越高,适合需要高频数据共享的并行计算(如 AI 训练中的小批量数据处理)。
:H100 每 SM 228 KB 共享内存,支持更高效的本地化数据处理。

6. L2 Cache (KB)

中文:二级缓存(单位:KB)
定义:GPU 芯片上的全局高速缓存,介于显存和 SM 共享内存之间,存储常用数据以减少显存访问延迟。
作用:容量越大,数据命中率越高,延迟越低,尤其对需要频繁访问非连续数据的场景(如深度学习中的参数读取、科学计算中的数组操作)有显著优化。
:RTX Ada 6000 的 98304 KB(96MB)L2 缓存是四款中最大的,适合专业软件的复杂数据处理。

参数核心影响场景数值意义
显存带宽数据密集型任务(AI 训练、高分辨率渲染)越高,数据吞吐量越快
SM 数量并行计算能力(矩阵运算、图形渲染)越多,并行任务处理能力越强
Tensor Core 性能AI 训练/推理(矩阵乘法为主)越高,AI 计算速度越快
FP32 性能传统浮点任务(图形渲染、科学计算)越高,传统浮点运算越快
共享内存(每 SM)线程内数据共享效率越大,本地化数据处理效率越高
L2 缓存全局数据访问延迟越大,数据缓存命中率越高

在 NVIDIA GPU 的技术规格中,sm_xx(如 sm_90sm_80sm_89)代表 计算能力版本(Compute Capability),用于标识 GPU 架构支持的硬件特性和指令集,是 NVIDIA 定义的一套技术标准。以下是具体含义和解析:

sm_xx

sm_xx 是 NVIDIA 用于标识 GPU 架构能力的“技术身份证”,直接决定了 GPU 支持的计算精度、指令集和硬件特性。选择 GPU 或开发 CUDA 程序时,需根据 sm_xx 判断其是否满足任务需求(如 AI 训练需要 sm_80 以上的 Tensor Core 支持,而老旧架构可能无法运行新框架的优化功能)。

1. 计算能力版本的定义

sm_xx 中的 smStreaming Multiprocessor(流多处理器)的缩写,xx 是版本号,格式为 主版本.次版本(如 9.08.08.9),用于区分不同代次的 GPU 架构及其技术特性。

  • 主版本(第一个数字):代表 GPU 架构的代次(如 Hopper 是 9.0,Ampere 是 8.0)。
  • 次版本(第二个数字):代表同代架构中的小版本迭代(如 Ada Lovelace 架构下的 8.9 可能针对特定型号优化)。

2. sm_xx 的具体含义

架构名称计算能力(sm_xx)对应 GPU 型号核心特性
Hoppersm_90(9.0)H100 SXM、H100 PCIe 等支持第四代 Tensor Core(FP8/FP16/BF16 混合精度计算)、双精度浮点性能大幅提升,专为 AI 训练和科学计算设计。
Amperesm_80(8.0)A100 PCIe、RTX 3090 等引入第三代 Tensor Core(支持 FP16/BF16)、稀疏矩阵加速,兼顾 AI 训练和高性能计算(HPC)。
Ada Lovelacesm_89(8.9)RTX Ada 6000、RTX 4090 等第四代 Tensor Core(支持 FP8 混合精度)、Ada 架构优化图形渲染(如光线追踪加速),同时兼容 CUDA 12.x 及新指令集,平衡 AI 与图形性能。

3. 计算能力的作用

(1)区分硬件特性
  • 不同 sm_xx 对应不同的硬件功能,例如:
    • sm_90(Hopper)支持 FP8 精度计算,适合大模型训练的低精度加速;
    • sm_80(Ampere)首次支持 TF32 格式,简化 FP32 计算流程;
    • sm_89(Ada)支持 双并发矩阵运算,提升 Tensor Core 利用率。
(2)指导 CUDA 开发

开发者需根据 GPU 的计算能力编译 CUDA 代码,确保兼容性:

  • 例如,使用 PyTorch/TensorFlow 时,框架会检查 sm_xx 以启用对应优化(如 sm_90 支持更高效的混合精度训练)。
  • 低计算能力的 GPU(如 sm_80)无法运行依赖 sm_90 特性的代码。
(3)性能定位
  • 主版本号越高,架构越新(如 9.0 > 8.0),通常代表更强的计算能力和更先进的技术(但次版本号可能因型号定位调整,如 sm_89 是 Ada 架构的高端版本,高于同代低端型号的 sm_86)。

4. 常见误区与说明

  • 非 SM 数量:这里的 sm_xx 不是流多处理器(SM)的数量,而是计算能力版本(前文提到的 Number of SM 才是 SM 数量,如 H100 有 132 个 SM)。
  • 同架构不同型号的次版本
    • Ada Lovelace 架构下,RTX 4090(sm_89)和 RTX 4060(可能为 sm_86)主版本均为 8,但次版本不同,反映硬件规格差异(如 SM 数量、显存带宽)。
  • 历史版本示例
    • Volta 架构(V100):sm_70(7.0)
    • Pascal 架构(GTX 1080):sm_61(6.1)

165 (f32 accum)`和 330 (f16 accum)

165 (f32 accum)330 (f16 accum) 分别表示 Tensor Core 在 FP32 累加FP16 累加时的峰值计算能力,反映了 GPU 在不同精度需求下的性能上限。前者适合高精度任务,后者适合追求速度的场景,是 NVIDIA 混合精度计算技术的核心体现。
在 GPU 规格中,165 (f32 accum)330 (f16 accum) 描述的是 Tensor Core(张量核心)的峰值计算性能,具体含义如下:

1. 核心术语解析

(1)Tensor Core

NVIDIA GPU 中专门加速矩阵运算(如矩阵乘法 + 累加,GEMM)的硬件单元,主要用于深度学习中的卷积神经网络(CNN)和Transformer模型计算,可大幅提升训练/推理速度。

(2)f32 accum / f16 accum
  • f32:32位浮点数(FP32,单精度浮点数)。
  • f16:16位浮点数(FP16,半精度浮点数)。
  • accum累加器(Accumulator)的精度,即矩阵运算结果累加时使用的数据精度(不是输入数据的精度)。
    • Tensor Core 通常支持混合精度计算,例如输入可能是更低精度(如 FP16/BF16),但累加结果用更高精度(如 FP32)以减少误差。

2. 数值含义

RTX 4090 为例:

  • 165 (f32 accum)
    Tensor Core 在 累加结果为 FP32 精度时的峰值性能,即每秒钟可完成 165 万亿次矩阵乘法 + 累加运算(TFLops/s)。

    • 场景:当需要高精度计算(如科学计算、部分需要稳定性的训练任务)时使用。
  • 330 (f16 accum)
    Tensor Core 在 累加结果为 FP16 精度时的峰值性能,即每秒钟可完成 330 万亿次矩阵乘法 + 累加运算(TFLops/s)。

    • 场景:当允许较低精度以换取更高速度时使用(如深度学习中的混合精度训练,可加速计算并减少显存占用)。

3. 为什么会有两种累加精度?

(1)精度与速度的平衡
  • FP32 累加:结果更精确(减少数值误差),但计算吞吐量较低(因为每次累加需要处理更多位)。
  • FP16 累加:结果精度较低,但吞吐量更高(适合对精度不敏感的任务,如大部分深度学习训练/推理)。
(2)硬件设计特性

Tensor Core 支持 混合精度计算(如输入为 FP16,累加结果为 FP32),但部分 GPU(如消费级显卡)为了平衡性能与成本,会针对不同累加精度提供不同的峰值性能指标。

  • 例如:RTX 4090 的 Tensor Core 输入可能支持 FP16,但累加器可配置为 FP16 或 FP32,前者吞吐量翻倍(330 vs 165)。

Tensor Cores和 Non-Tensor Cores

在NVIDIA GPU架构中,Tensor CoresNon-Tensor Cores(即传统CUDA核心) 是两类不同的计算单元

  • Tensor Cores:为矩阵运算而生,是深度学习和高性能计算的“加速器”,牺牲通用性换取极致特定场景性能;
  • Non-Tensor Cores:通用计算主力,覆盖图形渲染、标量运算等广泛任务,但在矩阵运算上效率远低于Tensor Cores。

1. 架构设计与定位

  • Tensor Cores

    • 专用加速核心:从Volta架构(如V100)开始引入,专为矩阵运算(尤其是深度学习中的矩阵乘法和累加操作,即GEMM:General Matrix Multiplication)设计的专用硬件单元。
    • 优化目标:聚焦于加速神经网络中的关键运算(如卷积层、全连接层),大幅提升训练和推理效率。
  • Non-Tensor Cores(传统CUDA核心)

    • 通用计算单元:即GPU中传统的浮点运算单元(FP32/FP64核心),负责处理通用计算任务(如标量运算、图形渲染、科学计算等),不针对特定矩阵运算优化。
    • 定位:处理非矩阵相关的通用计算,或作为Tensor Cores的补充(如处理无法向量化的复杂逻辑)。

2. 核心功能与运算类型

  • Tensor Cores

    • 核心操作:支持 矩阵乘累加(MMA),即一次运算完成 M × N + N × K = M × K M \times N + N \times K = M \times K M×N+N×K=M×K 的矩阵运算,并累加结果(Accumulate)。
    • 数据类型支持
      • 主要支持 混合精度计算,例如:
        • FP16矩阵乘法 + FP32累加(FP16 Accum);
        • BF16矩阵乘法 + FP32累加(BF16 Accum,如Hopper架构);
        • 部分架构也支持FP32矩阵运算(如H100的FP32 Tensor Core)。
    • 性能优势:相同时间内,Tensor Cores的矩阵运算吞吐量远高于传统CUDA核心(例如H100的Tensor Core性能是其Non-Tensor Cores FP32性能的14倍以上)。
  • Non-Tensor Cores(传统CUDA核心)

    • 核心操作:处理单个标量的浮点运算(FP32/FP64)或整数运算(INT32),例如加减乘除、三角函数等。
    • 数据类型支持:主要支持FP32、FP64、INT32等通用数据类型,不支持专用的矩阵运算优化。

3. 应用场景

  • Tensor Cores

    • 深度学习:加速训练(如PyTorch/TensorFlow的自动混合精度训练)和推理(如大模型推理加速);
    • 科学计算:加速矩阵分解、线性代数运算(如cuBLAS库中的GEMM优化)。
  • Non-Tensor Cores

    • 图形渲染:处理图形管线中的顶点着色、像素着色等通用计算;
    • 通用计算:如加密、数据处理、非矩阵相关的科学计算(如FFT、微分方程求解);
    • 控制逻辑:处理条件判断、分支逻辑等难以向量化的任务。

4. 性能对比(以H100为例)

指标Tensor CoresNon-Tensor Cores (FP32)
峰值性能989 TFLops (FP16 Accum)67 TFLops
每运算能耗极低(专用硬件优化)较高(通用计算)
矩阵运算吞吐量极高(单次处理64x64矩阵)低(需调用大量标量运算)

相关文章:

  • Docker 介绍与使用
  • Mysql 存储引擎
  • 系统漏洞扫描服务:维护网络安全的关键与服务原理?
  • 打卡DAY25
  • [Vue3]语法变动
  • 企业报表平台如何实现降本增效
  • 数字信号处理-大实验1.3
  • vue中,created和mounted两个钩子之间调用时差值受什么影响
  • 静电的起因与静电效应:技术分析与应用
  • SVG 知识详解:从入门到精通
  • 如何远程执行脚本不留痕迹
  • 3DMAX脚本病毒Spy CA查杀方法
  • TypeScript泛型:从入门到精通的全方位指南
  • 软考软件设计师中级——软件工程笔记
  • 通用软件项目技术报告 - 术语词典
  • YashanDB V23.4 LTS 正式发布|两地三中心、库级闪回重磅特性上线,生产级可用性再升级
  • 流速仪数据处理及流量断面线绘制
  • CS4334:一款高性能的立体声音频数模转换器
  • Linux操作系统实战:中断源码的性能分析(转)
  • C# 调试技巧——日志记录,NuGet内断点
  • 向猫学习禅修之后,你会发现将生活降格为劳作是多么愚蠢
  • 北京13日冰雹过后,已受理各险种报案近3万件
  • 横跨万里穿越百年,《受到召唤·敦煌》中张艺兴一人分饰两角
  • “远践”项目启动公益生态圈,上海青少年公益力量蓬勃生长
  • 多地警务新媒体整合:关停交警等系统账号,统一信息发布渠道
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心