GPU设备架构全面解析(持续更新ing)
作为一个7年的GPU开发者,随着加速算法应用的普及以及应用GPU设备的增多,各种设备结构(比如Kepler Maxwell Pascal)和GPU系列混入脑中,经常记不住,希望用这篇博客记录下各个设备架构的特性和最新功能,当然这并不是包含所有的GPU设备,只是笔者经常接触到的或者买不起的又想用的(终究是贫穷)。
目录
一、GPU设备架构和系列产品
二、几个卡相关对比(总览)
三、K80计算卡架构及特性
四、P100计算卡架构及特性
五、V100计算卡架构及特性
六、A100计算卡架构及特性
一、GPU设备架构和系列产品
设备架构:
架构 | Tesla | Fermi | Kepler | Maxcell | Pascall | Volta | Turing | |
GPU时代 | 1.0 | 2.0 | 3.0 | 5.0 | 6.0 | 7.0 | 7.5 | |
时间 | 2008 | 2010 | 2012 | 2014 | 2016 | 2017 | 2018 |
其中Tesla既是架构又是英伟达系列产品中的一个,比如Tesla K20 Teska K40 Tesla K80,所有架构可谓是一代更比一代强,
系列产品:英伟达GPU产品根据应用场景主要分了3个产品系列:GeForce系列(桌面电脑应用)、Tesla系列(专业计算,数据中心)和Quadro系列(专用一体机);
详细可参考官方文档配图:
图:GPU计算应用(GPU被设计成为支持不同语言和应用程序的接口)- (From Pascal-architecture-white-paper)
二、几个卡相关对比(总览)
下表是几个常用卡参数对比:
Name | K80 | P100 | V100 | RTX2080Ti | |
架构 | Kepler | Pascal | Volta | Turing | |
GPU | GK110 | GP100 | GV100 | TU102 | |
计算能力 | 3.7 | 6.0 | 7.0 | 7.5 | |
内存接口 | GDDR5 | HBM2 | HBM2 | ||
显存 | 11520M | 16265M | 16225M | 11264M | |
GPU最大时钟频率 | 0.82GHz | 1.33GHz | 1.38GHz | 1.545GHz | |
L2缓存 | 1536KB | 4096KB | 6144KB | ||
常量内存 | 64KB | 64KB | 64KB | 64KB | |
SM 数量 | 13 | 56 | 80 | 68 | |
SM内Cores数量 | 2496(192) | 3584(64) | 5120(64) | 4352(64) | |
共享内存 Per Block | 48KB | 48KB | 48KB | 64KB | |
共享内存Per SM | 112KB | 64KB | 96KB | ||
SM最大线程 | 2048 | 2048 | 2048 | 2048 | |
Block最大线程 | 1024 | 1024 | 1024 | 1024 | |
Copy Engines | 2个 | 2个2 | 7个 | ||
注意:每个设备最大驻留Grids数量即是CUDA并发kernel执行的数量
图来自CUDA_C_Progrmming_Guide.pdf
其中对一些参数做部分说明:
Maximum number of threads per block: 每个Block内最大线程数量为1024(这个参数所有架构下都一样,到目前)
Warp Size: 线程束数量为32
Maximum number of resident blocks per multiprecessor : 每个SM下最大驻留的线程块数量(3.7及以前是16个,5.0开始是32个)
Maximum number of resident threass per multiprecessor:每个SM下最大驻留的线程数量.都是2048个
Maximum number of resident warps per multiprecessor:每个SM下最大驻留的Warp数量(都是64),因为最大驻留线程数2048/32 =64
Number of 32-bit registers per multiprocessor:每个SM下32寄存器的数量:基本都是64K,只有3.7是128K
Number of shared memory banks:共享内存最大Bank数, 均为32个
Amount of local memory per thread:每个线程的最大局部内存,均为512KB(局部内存实际存在于Global memory)
Constant memory size:常量内存,均是64KB
Maximum amount of shared memory per thread Block: 每个线程块拥有的最大共享内存是48KB(除了7.0是最大可设置为96KB)
Maximum number of 32-bit registers per thread: 每个线程拥有的最大寄存器数量,3.0是63个,3.0之后都是255个
三、K80计算卡架构及特性
四、P100计算卡架构及特性
FMA: Fused Multiply-Add (参考nvidia docs: Floating Point and IEEE 754 :: CUDA Toolkit Documentationhttps://docs.nvidia.com/cuda/floating-point/index.html#fused-multiply-add-fma)
GPU一般一个时钟周期可以操作64bit的数据,1个核心实现1个FMA。
这个GPU的计算能力的单元是:64bit*1FMA*2M/A/64bit=2FLOPs/Cycle
The FMA operation computes rn(X×Y+Z) with only one rounding step
浮点数计算能力公式:
理论峰值 = GPU芯片数量 * GPU Boost主频 * FP32 cores * 单个时钟周期内能处理的浮点计算次数
P100理论峰值 = 1* 1.48GHz * 3584 * 2 = 10.608 TFLOPS
双精度(FP64)计算能力 5.3 TFLOPS)
单精度(FP32)计算能力 10.6 TFLOPS)
半精度(FP16)计算能力 21.2 TFLOPS)
GP100架构核心内建3840个CUDA核心、240个纹理单元、最高32GB HBM2显存、位宽4096bit,L2缓存也从3MB提升到了4MB,据Nvidia官方所说,Nvidia Tesla P100采用的则是“阉割版”的GP100,因此只采用了3584个CUDA核心,而且显存也缩水成了16GB HBM2显存。
GP100架构新特性:
1)Extreme performance(For HPC, DeepLearning,MoreComptuting Areas)
2) NVLink技术(高速高带宽连接)
3) HBM2(快速高容量CoWos Chip-on-Wafer-on-Substrate stacked memory architecture)
4) Unified Memory ,Compute Preemption,and New AI Algorithms
5)16nm FinFET(支持更多的功能、更高的性能和更高的功率效率)
如图:
(From Pascal-architecture-white-paper)
GP100 GPU 的60个SM (P100 只拥有阉割版的56个SM) (From Pascal-architecture-white-paper)
同之前的Tesla系列产品一样,GP100由多个GPU处理集群(GPCs :Graphics Processing Clusters)、纹理处理集群(TPCs:Texture Processing Clusters)、流多处理器(SMs:Streaming Multiprocessors )以及内存控制器(Memory controllers )组成.
如图,一个完整的GP100GPU包含6个GPC(每个GPC包含10个SM),30个TPC(每个TPC包含两个SM), 60个SM, 8个512位的内存控制器(共4096bits)
Pascal GP100 SM Unit (From Pascal-architecture-white-paper) DP Units(Double Precision Units)
GP100 SM 被分为两个处理块(图中左右两部分),每个块都有16个FP64 CUDA Cores(图中黄色块), 32个FP32 CUDA Cores(图中绿色块),一个指令缓冲区 Instuction Buffer,一个warp调度器 Warp Scheduler和两个分派器单位 Dispatch Unit, 以及一些寄存器,Texture, L1 Cache ,和Shared Memory;(一个完整GP100含有1920个FP64 )
五、V100计算卡架构及特性
新特性:
1)专为深度学习优化的全新流多处理器(SM)架构(Tensor cores)
2)第二代 NVIDIA NVLink (能够提供更高带宽与更多链路,GV100 最多支持六条NVLink链路,总带宽为300GB/s , 而GP100 只支持四条NVLink链路)
3)HBM2内存:高速、高效
4)Volta 多进程服务MPS(volta架构新功能,为共享GPU的多个计算应用提高性能实现隔离兵改进服务质量)
5)统一内存寻址和地址转换服务质量提升(GV100统一内存寻址技术包含新的存取计数器)
6)协作组合新的协作启动API
7)针对Volta优化的软件(Volta优化版的GPU加速库 如cuDNN cuBLAS TensorRT)
(Tesla V100 中的新技术)
双精度(FP64)计算能力 7.8 TFLOPS)(比P100提升一大截啊)
单精度(FP32)计算能力 15.7TFLOPS)
Tensor 125 TFLOPS
图:包含84个SM的完整Volta GV100 GPU (V100 只是阉割版的80个SM)
同之前的Tesla系列产品一样,GV100由多个GPU处理集群(GPCs :Graphics Processing Clusters)、纹理处理集群(TPCs:Texture Processing Clusters)、流多处理器(SMs:Streaming Multiprocessors )以及内存控制器(Memory controllers )组成.
如图,一个完整的GV100GPU包含6个GPC(每个GPC包含14个SM, 7个TPC),42个TPC(每个TPC包含两个SM)
84个SM, 每个SM拥有64个FP32 核心、64个INT32核心、32个FP64核心、8个Tensor核心、4个纹理单元
8个512位的内存控制器(共4096bits)
图: Volta GV100流多处理器(SM)
每个SM分为四个处理块,每个处理块拥有16个FP32 核心、16个INT32核心、8个FP64核心、2个Tensor核心、一个L0指令缓存、一个线程束调度器、一个分配单元、一个64KB的寄存器文件;
GV100 中共享内存和L1资源的合并使每个Volta SM 的共享内存容量增加至96KB, 而GP100仅有64 KB的共享内存。
Tensor Core 恐怖之处:V100GPU含有640个 Tensor Cores ,每个Tensor Core每个时钟执行64次浮点FMA运算,一个SM中的8个Tensor Core每时钟总共执行512次FMA运算,毕竟Tensor Core可为训练和推理应用提供高达125Tensor TFLOPS ;
六、A100计算卡架构及特性
GPU设备架构全面解析(持续更新ing)相关推荐
- 重拾CCNA,学习笔记持续更新ing......(4)
重拾CCNA,学习笔记持续更新ing......(4) 路由器作用功能的经典解说(笑)(非原创) 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大 ...
- js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
不知不觉上班一周辽-趁着大好周末,小编挣扎着从床上爬起来,决定对前端日常编程中常用到的一些方法做一个系统的整合. 有些人或许会觉得忘了百度就完事儿,no no no!这事儿小编真的亲践过好多次,百度一 ...
- 程序员的职业选择,你应该知道的,持续更新ing
程序员的职业选择,你应该知道的,持续更新ing 一下内容只是个人认知的表达,仅供参考,互相交流,不喜勿喷 程序员的职业选择,你应该知道的,持续更新ing 我认识很多猎头,有些曾经是经验丰富的HR,以下 ...
- PyCharm使用期间出现报错集合 持续更新ing
PyCharm使用期间出现报错集合 持续更新ing 啥时候用PyCharm发现了奇奇怪怪的错误就整理上来 这几天帮同学安装torch的时候出现了一些奇奇怪怪的问题 1.torch始终安装失败 描述一下 ...
- 开源小程序CMS网站,JeeWx-App-CMS 持续更新ing~
JeeWx-App-CMS开源小程序CMS网站,持续更新ing~ JeeWx-App-CMS 是jeewx开发的小程序网站开源项目,基于小程序wepy语言,具备cms网站的基本功能,能够打造简单易用 ...
- 2023届秋招提前批信息汇总(持续更新ing)
实时更新的文档:2023届秋招提前批信息汇总(持续更新ing) (qq.com) 公司 投递链接 面试网站 工作地点 截止时间 互联网及私企(软件) 网易游戏 网易游戏(互娱)校园招聘官网 https ...
- TS 常见问题整理(60多个,持续更新ing)
TS 常见问题整理(60多个,持续更新ing) https://cloud.tencent.com/developer/article/1593335
- 自然语言处理数据集集锦(持续更新ing...)
诸神缄默不语-个人CSDN博文目录 最近更新时间:2023.6.27 最早更新时间:2023.4.25 文本摘要主题的数据集见我之前写的另一篇博文:文本摘要数据集的整理.总结及介绍(持续更新ing-) ...
- ios快捷指令 python_精选 iOS快捷指令 | 持续更新ing
收好这几款iOS「快捷指令」帮你少下10款app 精选 iOS快捷指令 | 持续更新ing P.S.在 iOS 12.1.4 系统更新之后,苹果已经将 Shortcuts 的译名从「捷径」更换为「快捷 ...
- Python3常用其他API速查手册(持续更新ing...)
诸神缄默不语-个人CSDN博文目录 最近更新时间:2023.5.11 最早更新时间:2022.6.27 运算符 + - * / 取余% 开方** 等式:= == > < >= < ...
最新文章
- 干货整理!10个Python图像处理工具,入门必看,提效大法
- 英特尔近日发布最新版实感™ SDK R5 (v7)
- c++学习笔记之运算符重载
- Eclipse代码自动补全的颜色修改
- poj 2528_2
- C++基础::mutable 关键字
- 自学python能找到工作吗-自学Python好找工作吗?
- 使用ORL人脸库,通过GRNN网络和HOG特征提取的人脸识别算法matlab仿真
- VC++运行库安装难题
- Qt 字符编码转换(UTF-8 转换为 GBK)
- 运营商线路细分_国内三大运营商宽带线路及分级介绍
- 怎么把PDF图片转换成PPT
- 春运正当时 古代人们又是靠什么出行的呢?
- 软测—直播教学 黑盒测试
- 瀚高CEO苗健:用开源软件改变中国基础软件产业格局
- cas:27025-41-8 Glutathione oxidized氧化型谷胱甘肽 活性氧抑制剂
- 解析电子墨水屏技术(工作原理与LCD的区别)【转】
- ffmpeg基础三:H264,从MP4文件获取(av_bsf_get_by_name(“h264_mp4toannexb“))和从TS流获取保存H264
- 多模态理论张德禄_学术会议 | 适用语言学与多模态国际会议
- ffmpeg各种操作处理
热门文章
- 如何运行python 复制粘贴_Python执行选择性粘贴
- win10 linux重置密码,Win10重置Linux子系统用户密码教程
- eclipse debug 多线程
- Day-3 文字排版
- commonAncestor
- Hexo+Github免费搭建个人博客+美化详细教程
- 读取任意编码的文件(转)
- Alien Worlds NFT 自动点击游戏教程 (Allen worlds NFT auto click game tutorial)
- Visio 连线 取消自动附着,取消自动捕捉
- Go 微服务开发框架 DMicro 的设计思路