NVIDIA GPU显卡介绍

一、参考资料

NVCC学习笔记

NVIDIA GPU 架构演进

Nvidia GPU架构 - Cuda Core,SM,SP等等傻傻分不清?

请问英伟达GPU的tensor core和cuda core是什么区别?

CUDA 专栏

二、相关概念

1. dGPU

dGPU(discrete GPU),独立显卡。

2. FLOPS(Floating-point operations per second)

每秒浮点运算次数(亦称每秒峰值速度)是每秒所运行的浮点运算次数;

一个MFLOPS(megaFLOPS)等于每秒一百万(10^6)次的浮点运算;
一个GFLOPS(gigaFLOPS)等于每秒十亿(10^9)次的浮点运算;
一个TFLOPS(teraFLOPS)等于每秒一兆/一万亿(10^12)次的浮点运算;
一个PFLOPS(petaFLOPS)等于每秒一千兆/一千万亿(10^15)次的浮点运算;
一个EFLOPS(exaFLOPS)等于每秒一百京/一百亿亿(10^18)次的浮点运算;

3. TOPS(Tera Operations Per Second)

1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。

4. SM流处理器

流式传输多元处理器。

5. SMP(SM Processing Block)

流处理块。比如GPU Pascal架构里,每个SM由两个SMP组成。

1 SM = 2个SMP = 64 CUDA Core + 1 RT Core + 8 Tensor Core

6. CUDA Core

在这里插入图片描述

CUDA Core(Shader processors),也称为Streaming Processor(SP),是 全能通吃型的浮点运算单元。CUDA Core名称正式出现的位置是在Fermi架构(2010年),在此之前称为processor core ,也称为streaming processors (SPs) 或者称为 thread processors。CUDA Core在显卡里是并行运行的,CUDA Core越多,算力越强。

CUDA Core包含了一个 integer arithmetic logic unit (ALU)整数运算单元和一个 floating point unit (FPU)浮点运算单元。CUDA Core能进行一种fused multiply-add (FMA)的操作,即一个加乘操作的融合。特点:在不掉精度的情况下,单指令完成乘加操作,并且这个是支持32-bit精度。

更通俗一点,比如公式:
Z = W ∗ X + b Z = W * X + b Z=WX+b
在这里插入图片描述

Volta GV100 Tensor Core 流程图

输出Z等于W乘以输入X加上bias,深度学习中,有大量这种运算。如果用常规的CPU,会怎么处理呢?先把寄存器里面的数据送入乘法器,然后把结果送回寄存器,然后再把寄存器的数据送入加法器。但是,在CUDA Core中,单指令完成该运算

但是,对于一些场景,比如混合精度的矩阵操作,CUDA Core计算不是很高效,于是NVIDIA就开始专门针对tensor张量运算的硬件单元Tensor Core。

7. RT Core(光线追踪运算核心)

光线跟踪专用的运算单元。

8. Tensor Core(硬件核)

张量运算核心Tensor Core;
深度学习运算单元Tensor Core;
Tensor Core比流处理器更强大的专门针对 深度学习矩阵操作 有特别优化的一个运算核;
Tensor Core第一代是在volta架构上推出的,格外擅长加速 矩阵—矩阵乘法,这是训练神经网络和推理功能的核心算法,换句话说,这就是机器学习所必须的硬件基础。

9. DLA单元(Deep Learning Accelerator)

深度学习加速器。

Nvidia DLA is designed specifically for the deep learning use case and is used for offload the inference effort from GPU.
These engines improve energy efficiency and free up the GPU to run more complex networks and dynamic tasks implemented by the user.

10. LD/ST(load store unit)

用来操作内存的。

11. SFU(Special function unit)

用来做cuda的intrinsic function的。

12. TensorRT(软件库)

加快推断(inference)的速度。

Nvidia:CUDA GPU,面向嵌入式的Jetson;
Intel:Movidius VPU(NCS2);
Apple:A12处理器(及之后)上的NPU;
高通:骁龙处理器(上的AIE引擎,目前到了第5代);
华为:麒麟处理器(达芬奇架构);

13. NVIDIA的显卡架构出道顺序

  1. Tesla1.0 (2006年, 代表GeForce8800)
  2. Tesla2.0 (GT200)
  3. Fermi(算力可以支撑深度学习啦)
  4. Kepler(core增长)
  5. Maxwell(core继续增长)
  6. Pascal(算力提升)
  7. Volta(第一代tensor core)
  8. Turning(第二代 tensor core)
  9. Ampere(第三代tensor core)

14. AI程序如何调用显卡计算资源

用户代码 -> AI框架(PyTorch/Tensorflow/Caffe等)-> CUDA lib -> Driver -> 显卡。

三、GPU架构

查看显卡驱动、算力、cuda版本

compute-capabilities

Matching CUDA arch and CUDA gencode for various NVIDIA architectures

0. 序言

计算能力并不是描述GPU设备计算能力强弱的绝对指标,准确的说,这是一个架构的版本号。一般来说,越新的架构版本号更高,计算能力的第一个数值也就最高(例如3080计算能力8.6),而后面的6代表在该架构前提下的一些优化特性。

GPU的“代”

CUDA:NVCC编译过程和兼容性详解

GPU有个重要参数,计算能力,计算能力的值对应GPU的“代”值,如计算能力3.0,对应的“代”为sm_30,也对应kepler架构。

为了实现GPU架构的演变,NVIDIA GPU以不同代次发布。新一代产品在功能和/或芯片架构方面会引入重大改进,而同一代产品中的GPU模型显示出较小的配置差异,对功能和/或性能产生中等的影响。

实践证明,计算能力高的GPU可以运行编译成低代的程序,反之则不行,如计算能力6.1的GPU可以运行编译成compute_30,sm_30的程序;例如-arch=compute_30;-code=sm_30表示计算能力3.0及以上的GPU都可以运行编译的程序,但计算能力2.0的GPU就不能运行了。

GPU的小“代”

CUDA:NVCC编译过程和兼容性详解

除了sm_20,sm_30,sm_50,sm_60这些大的代号,还有sm_21, sm_35, sm_53 ,sm_61这些小代,这些小代不会做大的改变,会有一些小的调整,如调整寄存器和处理器集群的数量,这只影响执行性能,不会改变功能程序更精确的对应GPU代号可能可以达到最佳性能

1. Fermi(费马架构)

  • CUDA 3.2 until CUDA 8
  • SM20 or SM_20, compute_30
    • GF110:NVIDIA GeForce GTX 590, NVIDIA Quadro 6000
    • GF100:NVIDIA Tesla C2050, NVIDIA Quadro 4000

在这里插入图片描述

Fermi 架构 SM

每个 SM 包含

  • 2 个 Warp Scheduler/Dispatch Unit;
  • 32 个 CUDA Core(分在两条 lane 上,每条分别是 16 个)
    • 每个 CUDA Core 里面是 1 个单精浮点单元(FPU)和 1 个整数单元(ALU),可以直接做 FMA 的乘累加;
    • 每个 cycle 可以跑 16 个双精的 FMA;
  • 16 个 LD/ST Unit;
  • 4 个 SFU;

2. Kepler(开普勒架构)

  • CUDA 5 until CUDA 10
  • SM30 or SM_30, compute_30
    • GK110:NVIDIA Tesla K80, NVIDIA Quadro K6000
    • GK104:NVIDIA GeForce GTX 780 Ti, NVIDIA GeForce GTX 780
    • GK106:NVIDIA GeForce GTX 760
  • SM35 or SM_35, compute_35
    Tesla K40.
    Adds support for dynamic parallelism.
    Deprecated from CUDA 11, will be dropped in future versions.
  • SM37 or SM_37, compute_37
    Tesla K80.

在这里插入图片描述

Kepler 架构 SM

每个 SM包含

  • 4 个 Warp Scheduler,8 个 Dispatch Unit;
  • CUDA Core 增加到 192 个(4 * 3 * 16,每条 lane 上还是 16 个);
  • 单独分出来 64 个(4 * 16,每条 lane 上 16 个)双精运算单元。;
  • SFU 和 LD/ST Unit 分别也都增加到 32 个;

3. Maxwell(麦克斯韦架构)

  • CUDA 6 until CUDA 11

  • SM50 or SM_50, compute_50
    Tesla/Quadro M series.
    Deprecated from CUDA 11, will be dropped in future versions, strongly suggest replacing with a Quadro RTX 4000 or A6000.

  • SM52 or SM_52, compute_52

    • GM200:NVIDIA GeForce GTX Titan X, NVIDIA Quadro M6000
    • GM204:NVIDIA GeForce GTX 980, NVIDIA GeForce GTX 970
    • GM206:NVIDIA GeForce GTX 960
  • SM53 or SM_53, compute_53
    Tegra (Jetson) TX1 / Tegra X1, Drive CX, Drive PX, Jetson Nano.

在这里插入图片描述

Maxwell架构 SM

每个SM包含

  • 4个 Warp Scheduler,8个 Dispatch Unit;
  • 128个CUDA Core(4 * 32);
  • 32个 SFU 和 LD/ST Unit(4 * 8);

每个 Process Block包含

  • 1个Warp Scheduler 和 2个 Dispatch Unit;
  • 32个 CUDA Core;
  • 8个 SFU 和 LD/ST Unit;

4. Pascal (帕斯卡架构)

  • CUDA 8 and later
  • SM60 or SM_60, compute_60
    Quadro GP100, Tesla P100, DGX-1 (Generic Pascal)
  • SM61 or SM_61, compute_61
    • GP100:NVIDIA Tesla P100
    • GP102:NVIDIA GeForce GTX 1080 Ti
    • GP104:NVIDIA GeForce GTX 1080, NVIDIA GeForce GTX 1070 Ti
    • GP106:NVIDIA GeForce GTX 1060
    • GP107:NVIDIA GeForce GTX 1050 Ti, NVIDIA GeForce GTX 1050
    • Titan Xp, Tesla P40, Tesla P4
  • SM62 or SM_62, compute_62
    Integrated GPU on the NVIDIA Drive PX2, Tegra (Jetson) TX2

Pascal架构是NVIDIA于 GTC 2016发布的GPU架构,CUDA Core在这一代终于有升级,硬件直接支持FP16的半精度计算,半精度性能是单精度的2倍,一个单精度单元用两个半精度计算。
在这里插入图片描述

Pascal 架构 SM

每个SM包含

  • 2个 Warp Scheduler,4个Dispatch Unit;
  • 64个 CUDA Core(2 * 32);
  • 32个双精度浮点单元(2 * 16);
  • 16个 SFU 和 LD/ST Unit(2 * 8);

每个 Process Block包含

  • 1个Warp Scheduler 和 2个 Dispatch Unit;
  • 32个 CUDA Core;
  • 多了16个 DP Unit;
  • 8个SFU 和 LD/ST Unit;

5. Volta架构(瓦特架构)

深度解析Volta架构,专为深度学习而生的Tensor Core

Volta架构于 GTC 2017发布。Volta架构的核心是GV100 GPU,Volta架构首次引入了Tensor Core。

Tensor Core 是Volta架构中引入的一种专用硬件单元,它通过专门优化矩阵运算来显著提高深度学习性能。在深度学习任务中,尤其是神经网络的训练和推理阶段,大量的计算资源被用于执行矩阵乘法和累加(MATMULs)操作。Tensor Core能够高效地处理这些操作,因为它们被设计为执行特定的低精度(如FP16)乘积累加(FMA)指令,这种混合精度计算可以在不损失模型精度的情况下加快计算速度。Tensor Core的设计还包括对TF32这一NVIDIA特有的32位浮点格式的支持,这种格式旨在提供接近FP32的精度,同时保持接近FP16的性能优势。通过这种方式,Tensor Core不仅加速了计算过程,而且还帮助减少了所需的内存带宽,因为较低精度的数据类型需要较少的存储空间。

  • CUDA 9 and later
  • SM70 or SM_70, compute_70
    GV100:NVIDIA Tesla V100, Titan V, NVIDIA Quadro GV100
    GV104:GTX 1180
  • SM72 or SM_72, compute_72
    Jetson AGX Xavier, Drive AGX Pegasus, Xavier NX

在这里插入图片描述

Volta 架构 SM

每个SM包含

  • 4 个 Warp Scheduler,4 个 Dispatch Unit;
  • 64 个 FP32 Core(4 * 16);
  • 64 个 INT32 Core(4 * 16);
  • 32 个 FP64 Core(4 * 8);
  • 8 个 Tensor Core (4 * 2);
  • 32 个 LD/ST Unit(4 * 8);
  • 16 个 SFU;

每个 Process Block 包含

  • 1 个 Warp Scheduler,1 个 Dispatch Unit;
  • 16 个 FP32 Core;
  • 16 个 INT32 Core;
  • 8 个 FP64 Core;
  • 2 个 Tensor Core;
  • 8 个 LD/ST Unit;
  • 4 个 SFU;

6. Turning(图灵架构)

Turning架构是NVIDIA于 在 SIGGRAPH 2018发布的GPU架构。Turing架构首次引入了实时光线追踪(Ray Tracing)核心(RT Core),实时光线追踪特性实际上是旧有光线跟踪技术与近年兴起的人工智能(AI)、深度学习结合的产物,先是利用光线跟踪专用的运算单元RT core生成图像的关键要素,剩余的非关键要素则是交由深度学习运算单元Tensor Core来补全。

  • CUDA 10 and later
  • SM75 or SM_75, compute_75
    • GeForce RTX 20系列,主要面向消费级市场,包括GeForce RTX 2080 Ti、GeForce RTX 2080、GeForce RTX 2070、GeForce RTX 2060等型号。
    • Quadro RTX系列,主要面向专业级市场,包括Quadro RTX 8000、Quadro RTX 6000、Quadro RTX 5000, Quadro RTX 4000等型号。
    • TU116/TU117:NVIDIA GeForce GTX 1660 Ti, NVIDIA GeForce GTX 1650

在Turning图灵架构中,每个SM单元包含了64个CUDA核心、1个RT核心和8个张量核心,即:
1 SM = 64 CUDA Core + 1 RT Core + 8 Tensor Core \text {1 SM = 64 CUDA Core + 1 RT Core + 8 Tensor Core} 1 SM = 64 CUDA Core + 1 RT Core + 8 Tensor Core
在这里插入图片描述

Turning 架构 SM

每个 SM 包含

  • 4 个 Warp Scheduler,4 个 Dispatch Unit;
  • 64 个 FP32 Core(4 * 16);
  • 64 个 INT32 Core(4 * 16);
  • 8 个 Tensor Core(4 * 2);
  • 16 个 LD/ST Unit(4 * 4);
  • 16 个 SFU;

每个 Process Block 包含

  • 1 个 Warp Scheduler,1 个 Dispath Unit;
  • 16 个 FP32 Core;
  • 16 个 INT32 Core;
  • 2 个 Tensor Core;
  • 4 个 LD/ST Unit;
  • 4 个 SFU;

7. Ampere(安培架构)

Ampere架构是NVIDIA于 GTC 2020发布的GPU架构,NVIDIA Ampere 由540亿晶体管组成,是7nm芯片。

  • CUDA 11.1 and later

  • SM80 or SM_80, compute_80
    NVIDIA A100 (the name “Tesla” has been dropped – GA100), NVIDIA DGX-A100

  • SM86 or SM_86, compute_86
    Tesla GA10x cards。
    RTX A2000, A3000, RTX A4000, A5000, A6000。
    NVIDIA A40, RTX A10, RTX A16, RTX A40, A2 Tensor Core GPU。
    GA102:NVIDIA GeForce RTX 3090 Ti, NVIDIA GeForce RTX 3090, NVIDIA GeForce RTX 3080 Ti, NVIDIA GeForce RTX 3080 12GB。
    GA104:NVIDIA GeForce RTX 3070 Ti, NVIDIA GeForce RTX 3070。
    GA106:NVIDIA GeForce RTX 3060 Ti, NVIDIA GeForce RTX 3060。
    GA107:NVIDIA GeForce RTX 3050。

  • SM87 or SM_87, compute_87 – , introduced with PTX ISA 7.4 / Driver r470 and newer) – for Jetson AGX Orin and Drive AGX Orin only

在这里插入图片描述

Ampere 架构 SM

每个 SM 包含

  • 4 个 Warp Scheduler,4 个 Dispatch Unit;
  • 64 个 FP32 Core(4 * 16);
  • 64 个 INT32 Core(4 * 16);
  • 32 个 FP64 Core(4 * 8);
  • 4 个 Tensor Core (4 * 1);
  • 32 个 LD/ST Unit(4 * 8);
  • 16 个 SFU;

每个 Process Block 包含

  • 1 个 Warp Scheduler,1 个 Dispatch Unit;
  • 16 个 FP32 Core;
  • 16 个 INT32 Core;
  • 8 个 FP64 Core;
  • 1 个 Tensor Core;
  • 8 个 LD/ST Unit;
  • 4 个 SFU;

8. Ada Lovelace

NVIDIA的Ada Lovelace GPU架构是继Turing和Ampere之后的最新一代图形处理单元架构,它在图形渲染、光线追踪和AI计算方面带来了显著的性能提升。

  • CUDA 11.8 and later
  • SM89 or SM_89, compute_89
    AD102:NVIDIA GeForce RTX 4090
    AD103:NVIDIA GeForce RTX 4080
    AD104:NVIDIA GeForce RTX 4070
    NVIDIA RTX 6000, NVIDIA L40

9. Hopper

Hopper架构的GPU,以美国计算机科学家Grace Hopper的名字命名。

  • CUDA 12 and later
  • SM90 or SM_90, compute_90
    NVIDIA H100 (GH100)

四、算力

Matching CUDA arch and CUDA gencode for various NVIDIA architectures

CUDA:NVCC编译过程和兼容性详解

1. 算力表

NVIDIA算力表
【原】CUDA的deviceQuery命令

2. GPU处理能力(TFLOPS/TOPS)

GPU处理能力(TFLOPS/TOPS)
GPU运算能力对比(详细)

3. 不同算力支持的量化等级

hardware-precision-matrix

GPU有个重要参数-算力,算力值对应GPU的“代”值,如算力5.0,对应的“代”为sm_50,也对应Maxwell架构。

为了实现GPU架构的演变,NVIDIA GPU以不同代次发布。新一代产品在功能和/或芯片架构方面会引入重大改进。同一代产品中的GPU模型显示出较小的配置差异,对功能和/或性能产生中等的影响。

除了sm_20,sm_30,sm_50这些大的代号,还有sm_21,sm_35,sm_53这些小代,这些小代不会做大的改变,会有一些小的调整,如调整寄存器和处理器集群的数量。这只影响执行性能,不会改变功能。程序更精准的对应GPU代号可能达到最佳性能。

在实际结论中,compute_30以上的程序,算力高的GPU可以运行编译成低代的程序,反之则不行,如算力5.0的GPU可以运行编译成compute_30,sm_30的程序。虚拟框架由compute_开头,真实框架由sm_开头。

'-gencode', 'arch=compute_50,code=sm_50'
表示算力5.0以上的GPU都可以运行编译的程序,但算力3.0的GPU就不能运行了。
-gencode,-genarate-code的缩写,保证用户GPU可以动态选择最合适的GPU架构(最适合GPU的大代和小代)

在这里插入图片描述

五、相关介绍

1. GPU类型

  • 用于训练的DGX;
  • 用于超大规模云的HGX;
  • 用于边缘的EGX;
  • 用于终端的AGX;

2. 搭建GPU服务器

【保姆级教程】个人深度学习工作站配置指南

个人深度学习工作站-效果演示

实验室多用户GPU深度学习环境搭建

3. GPU虚拟化技术

GPU有哪些虚拟化手段?
启用Docker虚拟机GPU,加速深度学习

4. GPU支持的编解码器

Video Encode and Decode GPU Support Matrix

NVIDIA VIDEO CODEC SDK

5. GPU购买参数和对比

六、特殊产品

1. Xavier SOC

NVIDIA声称Xavier是迄今为止发明的最复杂的SOC

NVIDIA Jetson Xavier性能首测:AI性能碾压苹果A12,自研CPU架构看齐骁龙845

  • 用于无人机和机器人的Jetson Xavier;
  • 用于诸如L3-4级驾驶辅助的Drive Xavier;
  • 旗舰Drive Pegasus,具有双Xavier SOC和2瓦GPU,以支持完全自动驾驶的L5级别;
    在这里插入图片描述

2. Jetson平台

CUDA 初学者统一内存

CUDA中的Unified Memory

Jetson是NVIDIA嵌入式产品,不存在独立的显存和内存,即CPU和GPU共用存储器。

硬件参数对比
极智AI | 英伟达 Jetson 系列边缘盒子硬件参数汇总

性能对比
极智AI | 英伟达 Jetson 系列边缘盒子性能测评

2.1 Jetson TK1

2018年已经下架
属于探索性产品

2.2 Jetson Nano

AI | Nvidia Jetson Nano介绍与使用指南

Jetson-Nano开箱配置及Tensorflow安装使用

Jetson Nano 开发者套件入门

Nano入门教程基础篇

Jetson Nano系列教程

售价899RMB
最新推出,主打便宜
在这里插入图片描述

2.3 Jetson TX2

教育售价2899RMB
迭代升级

2.4 Jetson Xavier NX

教育售价2899RMB
迭代升级

2.5 Jetson AGX Xavier

教育售价7099RMB
迭代升级

专为自动驾驶技术和汽车产品使用的超算解决方法,是所谓的车规级SoC芯片。

Jetson NanoJetson TX2Jetson Xavier NXJetson AGX Xavier
架构Maxwell™Pascal™Volta™Volta™
NVIDIA CUDA 核心128256384512
Tensor 核心4864

在这里插入图片描述

2. RTX3060

RTX3060是安培构架,RTX3060不支持CUDA 11以下版本,会报错:cuda的算力要支持你的显卡算力。

  • CUDA SDK 11.0 support for compute capability 3.5 – 8.0 ;
  • CUDA SDK 11.1 – 11.6 support for compute capability 3.5 – 8.6 所以,RTX3060对应的CUDA≥11.1;

CUDA Compute Capability of the GeForce 30 series is 8.6。

七、FAQ

Q. RTX 3060驱动版本不兼容

Win10+RTX3060配置CUDA等深度学习环境

错误原因:当前驱动版本与RTX 3060不匹配。

解决办法:下载RTX 3060对应版本的驱动,重新安装驱动。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花花少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值