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

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

相关文章:

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 核心…...

MCP:开启AI的“万物互联”时代

MCP:开启AI的“万物互联”时代 ——从协议标准到生态革命的技术跃迁 引言:AI的“最后一公里”困境 在2025年的AI技术浪潮中,大模型已从参数竞赛转向应用落地之争。尽管模型能生成流畅的对话、创作诗歌甚至编写代码,但用户逐渐发现…...

企业级IP代理解决方案:负载均衡与API接口集成实践

在全球化业务扩张与数据驱动决策的背景下,企业级IP代理解决方案通过负载均衡技术与API接口集成,可有效应对高频请求、反爬机制及合规风险。以下是基于企业级场景的核心实践要点: 一、负载均衡与IP代理的深度协同 动态IP池的负载均衡策略 轮询…...

Vector和list

一、Vector和list的区别——从“它们是什么”到“区别在哪儿” 1. 它们是什么? Vector:类似于一排排整齐的书架(数组),存放元素时,元素排成一条线,连续存储。可以很快通过编号(索引…...

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…...

package-lock.json能否直接删除?

package-lock.json能否直接删除? package-lock.json 生成工具:由 npm 自动生成。 触发条件:当运行 npm install 时,如果不存在 package-lock.json,npm 会创建它;如果已存在,npm 会根据它精确安…...

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

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

promise的说明

目录 1.说明 2.创建promise 3.处理promise结果 4.promise的链式调用 5.静态方法 6.错误处理及误区 7.then() 内部进行异步操作时,需返回新的 Promise 8.promise链式调用控制异步方法的执行顺序 9.总结 1.说明 Promise 是 JavaScript 中处理异步操作的核心对…...

Pass-the-Hash攻击原理与防御实战指南

当黑客说出"我知道你的密码"时,可能连他们自己都不知道你的真实密码。在Windows系统的攻防战场上,​​Pass-the-Hash(哈希传递攻击)​​就像一把可以复制的万能钥匙——攻击者不需要知道密码明文,仅凭密码的…...

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

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

5.18-AI分析师

强化练习1 神经网络训练案例(SG) #划分数据集 #以下5行需要背 folder datasets.ImageFolder(rootC:/水果种类智能训练/水果图片, transformtrans_compose) n len(folder) n1 int(n*0.8) n2 n-n1 train, test random_split(folder, [n1, n2]) #训…...

毕业论文,如何区分研究内容和研究方法?

这个问题问得太好了!😎 “研究内容”和“研究方法”经常被初学者(甚至一些老油条)混淆,尤其写论文开题报告时,一不小心就“内容”和“方法”全混在一块儿,连导师都看懵。 今天就来给大家一文讲…...

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

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

三种常见接口测试工具(Apipost、Apifox、Postman)

三种常见接口测试工具(Apipost、Apifox、Postman)的用法及优缺点对比总结: 🔧 一、Apipost ✅ 基本用法 支持 RESTful API、GraphQL、WebSocket 等接口调试自动生成接口文档支持环境变量、接口分组、接口测试用例编写可进行前置…...

EF Core 数据库迁移命令参考

在使用 Entity Framework Core 时,若你希望通过 Package Manager Console (PMC) 执行迁移相关命令,以下是常用的 EF Core 迁移命令: PMC 方式 ✅ 常用 EF Core PMC 命令(适用于迁移) 操作PMC 命令添加迁移Add-Migra…...

剖析提示词工程中的递归提示

递归提示:解码AI交互的本质,构建复杂推理链 递归提示的核心思想,正如示例所示,是将一个复杂任务分解为一系列更小、更易于管理、逻辑上前后关联的子任务。每个子任务由一个独立的提示来驱动,而前一个提示的输出(经过必要的解析和转换)则成为下一个提示的关键输入。这种…...

互联网大厂Java求职面试:AI内容生成平台下的高并发架构设计与性能优化

互联网大厂Java求职面试:AI内容生成平台下的高并发架构设计与性能优化 场景背景: 郑薪苦是一名经验丰富的Java开发者,他正在参加一家匿名互联网大厂的技术总监面试。这家公司专注于基于AI的内容生成平台,支持大规模用户请求和复杂…...

用Redis的List实现消息队列

介绍如何在 Spring Boot 中使用 Redis List 的 BRPOPLPUSH命令来实现一个线程安全且可靠的消息队列。 整合Redis 整合Redis 用Redis的List实现消息队列 Redis的List相关指令 **「LPUSH key element [element ...]」**把元素插入到 List 的首部,如果 List 不存在…...

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

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

Python uv包管理器使用指南:从入门到精通

Python uv包管理器使用指南:从入门到精通 作为一名Python开发者,你是否曾经为虚拟环境管理和依赖包安装而头疼?今天我要向大家介绍一个强大的工具——uv包管理器,它将彻底改变你的Python开发体验。 什么是uv包管理器&#xff1f…...

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

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

高德地图在Vue3中的使用方法

1.地图初始化 容器创建&#xff1a;通过 <div> 标签定义地图挂载点。 <div id"container" style"height: 300px; width: 100%; margin-top: 10px;"></div> 密钥配置&#xff1a;绑定高德地图安全密钥&#xff0c;确保 API 合法调用。 参…...

Llama:开源的急先锋

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

SDIO EMMC中ADMA和SDMA简介

在SDIO和eMMC技术中&#xff0c;ADMA&#xff08;Advanced Direct Memory Access&#xff09;和SDMA&#xff08;Simple Direct Memory Access&#xff09;是两种不同的DMA&#xff08;直接内存访问&#xff09;模式&#xff0c;用于优化主机控制器与存储器&#xff08;如eMMC&…...

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

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

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

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

【THRMM】追踪情绪动态变化的多模态时间背景网络

1. 单一模态的局限性​​ ​​不足​​:传统方法依赖生理信号(如EEG、ECG)或静态图像特征,数据收集成本高,且无法捕捉动态交互,导致模型泛化性差。 ​​改进​​:提出​​THRMM模型​​,整合多模态数据(面部表情、声学特征、对话语义、场景信息),利用Transformer的全…...