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

news2025/5/15 7:33:45

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矩阵)低(需调用大量标量运算)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2375911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MongoDB从入门到实战之Windows快速安装MongoDB

前言 本章节的主要内容是在 Windows 系统下快速安装 MongoDB 并使用 Navicat 工具快速连接。 MongoDB从入门到实战之MongoDB简介 MongoDB从入门到实战之MongoDB快速入门 MongoDB从入门到实战之Docker快速安装MongoDB 下载 MongoDB 安装包 打开 MongoDB 官网下载页面&…

Excelize 开源基础库发布 2.9.1 版本更新

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Excel、WPS、OpenOffice 等办公软件创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式&#xf…

Profibus DP主站转Modbus RTU/TCP网关接艾默生流量计与上位机通讯

Profibus DP主站转Modbus RTU/TCP网关接艾默生流量计与上位机通讯 艾默生流量计与Profibus DP主站转Modbus RTU/TCP网关的通讯,是现代工业自动化中的一个关键环节。为了实现这一过程,我们需要了解一些基础概念和具体操作方法。 在工业自动化系统中&…

Linux proc文件系统 内存影射

文章目录 常见的内存分配函数/proc/pid/ 目录解析 用户进程的内存空间分配算法mmap 分配大内存可能不在堆中换为 malloc 现象相同 常见的内存分配函数 malloc / calloc / realloc(来自 C 标准库) void *malloc(size_t size):分配 size 字节…

五、Hadoop集群部署:从零搭建三节点Hadoop环境(保姆级教程)

作者:IvanCodes 日期:2025年5月7日 专栏:Hadoop教程 前言: 想玩转大数据,Hadoop集群是绕不开的一道坎。很多小伙伴一看到集群部署就头大,各种配置、各种坑。别慌!这篇教程就是你的“救生圈”。 …

电流检测放大器的优质选择XBLW-INA180/INA181

前言: 在当前复杂的国际贸易环境下,关税的增加使得电子元器件的采购成本不断攀升,电子制造企业面临着巨大的成本压力。为了有效应对这一挑战,实现国产化替代已成为众多企业降低生产成本、保障供应链稳定的关键战略。对此芯伯乐推出…

# 深度剖析LLM的“大脑”:单层Transformer的思考模式探索

简单说一下哈 —— 咱们打算训练一个单层 Transformer 加上稀疏自编码器的小型百万参数大型语言模型(LLM),然后去调试它的思考过程,看看这个 LLM 的思考和人类思考到底有多像。 LLMs 是怎么思考的呢? 开源 LLM 出现之后…

【C++】类与对象【下】

文章目录 再谈构造函数构造函数的赋值构造函数体赋值:初始化列表explicit关键字 static成员概念特性 C11中成员初始化的新玩法友元友元类 内部类概念 再谈构造函数 构造函数的赋值 构造函数体赋值: 在创建对象时,编译器会通过调用构造函数…

无人机避障——如何利用MinumSnap进行对速度、加速度进行优化的轨迹生成(附C++python代码)

🔥轨迹规划领域的 “YYDS”——minimum snap!作为基于优化的二次规划经典,它是无人机、自动驾驶轨迹规划论文必引的 “开山之作”。从优化目标函数到变量曲线表达,各路大神疯狂 “魔改”,衍生出无数创新方案。 &#…

Llama:开源的急先锋

Llama:开源的急先锋 Llama1:开放、高效的基础语言模型 Llama1使用了完全开源的数据,性能媲美GPT-3,可以在社区研究开源使用,只是不能商用。 Llama1提出的Scaling Law 业内普遍认为如果要达到同一个性能指标,训练更…

“redis 目标计算机积极拒绝,无法连接” 解决方法,每次开机启动redis

如果遇到以上问题 先打开“服务” 找到App Readiness 右击-启动 以管理员身份运行cmd,跳转到 安装redis的目录 运行:redis-server.exe redis.windows.conf 以管理员身份打开另一cmd窗口,跳转到安装redis的目录 运行:redis-…

LeetCode 热题 100 35.搜索插入位置

目录 题目: 题目描述: 题目链接: 思路: 核心思路: 思路详解: 代码: Java代码: 题目: 题目描述: 题目链接: 35. 搜索插入位置 - 力扣&…

从 “学会学习” 到高效适应:元学习技术深度解析与应用实践

一、引言:当机器开始 “学会学习”—— 元学习的革命性价值 在传统机器学习依赖海量数据训练单一任务模型的时代,元学习(Meta Learning)正掀起一场范式革命。 这项旨在让模型 “学会学习” 的技术,通过模仿人类基于经验…

AI开发者的算力革命:GpuGeek平台全景实战指南(大模型训练/推理/微调全解析)

目录 背景一、AI工业化时代的算力困局与破局之道1.1 中小企业AI落地的三大障碍1.2 GpuGeek的破局创新1.3 核心价值 二、GpuGeek技术全景剖析2.1 核心架构设计 三、核心优势详解‌3.1 优势1:工业级显卡舰队‌‌‌3.2 优势2:开箱即用生态‌3.2.1 预置镜像库…

AWS SNS:解锁高并发消息通知与系统集成的云端利器

导语 在分布式系统架构中,如何实现高效、可靠的消息通知与跨服务通信?AWS Simple Notification Service(SNS)作为全托管的发布/订阅(Pub/Sub)服务,正在成为企业构建弹性系统的核心组件。本文深度…

【PmHub后端篇】PmHub集成 Sentinel+OpenFeign实现网关流量控制与服务降级

在微服务架构中,保障服务的稳定性和高可用性至关重要。本文将详细介绍在 PmHub 中如何利用 Sentinel Gateway 进行网关限流,以及集成 Sentinel OpenFeign 实现自定义的 fallback 服务降级。 1 熔断降级的必要性 在微服务架构中,服务间的调…

2025最新出版 Microsoft Project由入门到精通(八)

目录 查找关键路径方法 方法1:格式->关键任务 方法2:插入关键属性列 方法3:插入“可宽延的总时间”进行查看,>0不是关键路径,剩余的全是关键路径 方法4:设置关键路径的工作表的文本样式​编辑 方法5:突出显示/筛选器…

3.0/Q2,Charls最新文章解读

文章题目:Development of a visualized risk prediction system for sarcopenia in older adults using machine learning: a cohort study based on CHARLS DOI:10.3389/fpubh.2025.1544894 中文标题:使用机器学习开发老年人肌肉减少症的可视…

使用matlab进行数据拟合

目录 一、工作区建立数据 二、曲线拟合器(在"APP"中) 三、曲线拟合函数及参数 四、 在matlab中编写代码 一、工作区建立数据 首先,将数据在matlab工作区中生成。如图1所示: 图 1 二、曲线拟合器(在"APP"中) 然后,…