====== gpu 卡性能对比 ======
===== FP32 FP64 性能比较(数据来自 官网和维基) =====
^ gpu卡 ^ FP32(TFLOPS) ^ FP64(TFLOPS) ^ 架构 architecture | 架构代号 | PWmat版本 |
| 3080ti | 34.1 | 0.533 | Ampere | sm_86 | cuda11.6/oneapi |
| 3090 | 35.58 | 0.556 | Ampere | sm_86 | cuda11.6/oneapi |
| 4090 | 82.58 | 1.29 | Ada Lovelace | sm_89 | cuda12.1/oneapi |
| a100 | 19.5 | 9.7 | Ampere | sm_80 | cuda11.6/oneapi |
| a10 | 31.24 | 0.976 | Ampere | sm_86 | cuda11.6/oneapi |
| a40 | 37.420 | 1.168 | Ampere | sm_86 | cuda11.6/oneapi |
| L40 | 90.516 | 1.414 | Ada Lovelace | sm_89 | cuda12.1/oneapi |
| a800 | 19.5 | 9.7 | Ampere | sm_80 | cuda11.6/oneapi |
| T400 | 2.17 | 0.068 | Turing | sm_75 | cuda11.6/oneapi |
| p100 | 9.3 | 4.7 | Pascal | sm_60 | cuda11.6/oneapi |
| H200 | 149.0 | 74.5 | Hopper | sm_90 | cuda12.1/oneapi |
| L20 | 119.2 | 3.73 | Ada Lovelace | sm_89 | cuda12.1/oneapi |
| V100 | 14.0 | 7.0 | Volta | sm_70 | cuda11.6/oneapi |
| H100 | 134.0 | 67.0 | Hopper | sm_90 | cuda12.1/oneapi |
| 5090 | | | | | |
| RTX 5880 Ada | 69.3 | 1.08 | Ada Lovelace | sm_89 | cuda12.1/oneapi |
| A5000 | 27.8 | 0.866 | Ampere | sm_86 | cuda11.6/oneapi |
nvcc -arch=sm_70 my_kernel.cu -o my_program
nvcc -arch=sm_80 --ptxas-options=-O3 my_kernel.cu -o my_program
nvcc -arch=sm_90 --ptxas-options=-O3 -o my_program my_kernel.cu
若需代码在多种 GPU 上运行,可通过 PTX 兼容性 或 多架构编译:
# 为多架构生成代码(例如支持 Ampere 和 Hopper)
nvcc -gencode arch=compute_80,code=sm_80 \
-gencode arch=compute_90,code=sm_90 \
my_kernel.cu -o my_program
- FP32:单精度浮点计算能力
- FP64:双精度浮点计算能力
> 在 GPU 的性能比较中,FP32(单精度浮点运算)通常是更为关键和普遍关注的一个性能指标。
> FP32 主要用于深度学习、图形渲染等许多计算密集型任务,
> 因此在这些领域中,FP32 算力通常被广泛用来评估 GPU 的性能。
>
> 而 FP64 主要在科学计算、数值模拟等需要更高精度计算的领域才会被重点关注
>
> 对于大多数应用来说,FP32 已经足够满足精度要求,并且可以获得更高的计算效率和更低的功耗。
>
> 对于对精度要求极高的应用,例如科学计算、金融模拟等,则需要使用 FP64 来保证计算结果的准确性。
>Ada Lovelace 和 Hopper 是同一代架构,只是分别供货给超算领域和消费级市场。
>
>消费级芯片会带有 RT Core,这些处理器在 Data Center 是用不上的。
>
>所以是同一代制程工艺、架构设计,微调衍生出来的2个变种。
>
===== 显卡架构信息(以每代架构中最强显卡的参数为代表) =====
^ 计算能力 ^ 架构 ^ 发布年代 ^ Cores/SM ^ 总 SM 数 ^ CUDA\\ Cores ^ L1 Cache\\ (KB) ^ L2 Cache\\ (KB) ^
| 1.0 | Tesla | | | | | | |
| 2.0 | Fermi | 2009 | 32 | 16 SM | 512 | 48 | 768 |
| 3.0 | Kepler | 2012 | 192 | 15 SMX | 2880 | 48 | 1536 |
| 4.0 | – | | | | | | |
| 5.0 | Maxwell | 2014 | 128 | 24 SMM | 3072 | 96 | 2048 |
| 6.0 | Pascal | 2016 | 64 | 60 SM | 3840 | 64 | 4096 |
| 7.0 | Volta | 2018 | 64\\ 8 个 Tensor Core | 80 SM | 5120 | 与共享内存共用 128\\ (最多 96) | 6144 |
| 7.5 | Turing | 2018 | 64\\ 8 个 Tensor Core | 72 SM | 4608 | 与共享内存共用 128\\ (最多 96) | 6144 |
| 8.0 | Ampere | 2020 | 64\\ 4 个 Tensor Core | 108 SM | 6912 | 与共享内存共用 192\\ (最多 164) | 40960 |
| 9.0 | Hopper | 2022 | 128\\ 4 个 Tensor Core | 144 SM | 18432 | 与共享内存共用 256 | 61440 |
**[补充]:**
* 从 Turing 开始出现了半代计算能力的区别,实际上 Turing(7.5) 是 Volta(7.0) 的小改款。(Turing 架构 = Volta 架构 – FP64 + RT Cores)
* 在 Ampere 这一代上也有这种区别,计算能力 8.0 对应最早的企业级显卡核心(GA100),8.6 对应之后的消费级核心(GA102、GA104、GA106、GA107),虽然 8.6 没有获得一个额外的架构命名。
* Hopper 架构上,不出意外也会有半代计算能力的区别——这实质上是 Data Center 核心和消费级核心的区别。
===== Ampere 常用显卡的可用 SM 数量 =====
^ 显卡型号 ^ 3060 ^ 3060Ti ^ 3070 ^ 3070Ti ^ 3080 ^ 3080Ti ^ 3090 ^ 3090Ti ^
^ SM 数量 | 28 | 38 | 46 | 48 | 68 | 80 | 82 | 84 |
^ 显存 | 12 GB | 8 GB | 8 GB | 8 GB | 10 GB | 12 GB | 24 GB | 24 GB |
===== 参考 =====
>https://www.nvidia.com/en-us/data-center/a100/
>
>官方 a100 规格参数 Specifications
>https://www.nvidia.com/en-us/design-visualization/a800/
>
>官方 a800 规格参数 Specifications
>https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3080-3080ti/
>
>官方 3080ti 规格参数 Specs
>https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3090-3090ti/
>
>官方 3090 规格参数 Specs
>- https://www.nvidia.com/en-us/geforce/graphics-cards/40-series/rtx-4090/
>- https://en.wikipedia.org/wiki/GeForce_40_series
>
>官方 4090 规格参数 Specs
>https://en.wikipedia.org/wiki/GeForce_30_series
>
>https://en.wikipedia.org/wiki/GeForce_40_series
>
>[[https://en.wikipedia.org/wiki/Ampere_(microarchitecture)#A100_accelerator_and_DGX_A100|A100]]
>
>[[https://en.wikipedia.org/wiki/Nvidia_Tesla|A10, L40, A40]]
>
>维基收录 3080ti 3090 4090 a100 规格参数
> https://www.twisted-meadows.com/nvidia-gpu-architecture/
>
> Nvidia 显卡架构详解
> https://en.wikipedia.org/wiki/Volta_(microarchitecture)#Products
>
> p100 v100 a100 h100 b100 对比
===== 显卡架构参考 =====
^ 显卡架构 ^ 参考 ^
| Ada Lovelace | https://en.wikipedia.org/wiki/Ada_Lovelace_(microarchitecture) |
| Ampere | https://en.wikipedia.org/wiki/Ampere_(microarchitecture) |
| Hopper | https://en.wikipedia.org/wiki/Hopper_(microarchitecture) |
| Turing | https://en.wikipedia.org/wiki/Turing_(microarchitecture) |
| Volta | https://en.wikipedia.org/wiki/Volta_(microarchitecture) |