二、GPU概述
2.1 GPU是什么?
2.2 GPU历史
2.2.1 NV GPU发展史
2.2.2 NV GPU架构发展史
三、GPU物理架构
3.1 GPU宏观物理结构
3.2 GPU微观物理结构
3.2.1 NVidia Tesla架构
3.2.2 NVidia Fermi架构
3.2.3 NVidia Maxwell架构
3.2.4 NVidia Kepler架构
3.2.5 NVidia Turing架构
四、GPU运行机制
4.1 GPU渲染总览
4.2 GPU逻辑管线
4.3 GPU技术要点
4.4 GPU资源机制
4.4.1 内存架构
4.4.2 GPU Context和延迟
4.4.3 CPU-GPU异构系统
4.4.4 GPU资源管理模型
4.4.5 CPU-GPU数据流
4.4.6 显像机制
4.5 Shader运行机制
4.6 利用扩展例证
五、总结
5.1 CPU vs GPU
5.2 渲染优化建议
5.3 GPU的未来
5.4 结语
参考文献
特别说明
一、导言
对于大多数图形渲染开发者,GPU是既熟悉又陌生的部件,熟悉的是每天都需要跟它打交道,陌生的是GPU就如一个黑盒,不知道其内部硬件架构,更无从谈及其运行机制。本文以NVIDIA作为主线,将试图全面且深入地剖析GPU的硬件架构及运行机制,主要涉及PC桌面级的GPU,不会覆盖移动端、专业计算、图形工作站级别的GPU。1、NVIDIA A100 Tensor Core GPU技术白皮书2、NVIDIA Kepler GK110-GK210架构白皮书3、NVIDIA Kepler GK110-GK210架构白皮书4、NVIDIA Kepler GK110架构白皮书6、NVIDIA Tesla V100 GPU架构白皮书
1.1 为何要了解GPU?
了解GPU硬件架构和理解运行机制,好处多多,总结出来有:- 理解GPU其物理结构和运行机制,GPU由黑盒变白盒。
1.2 内容要点
1.3 带着问题阅读
适当带着问题去阅读技术文章,通常能加深理解和记忆,阅读本文可带着以下问题:1、GPU是如何与CPU协调工作的?
2、GPU也有缓存机制吗?有几层?它们的速度差异多少?
3、GPU的渲染流程有哪些阶段?它们的功能分别是什么?
4、Early-Z技术是什么?发生在哪个阶段?这个阶段还会发生什么?会产生什么问题?如何解决?
5、SIMD和SIMT是什么?它们的好处是什么?co-issue呢?
6、GPU是并行处理的么?若是,硬件层是如何设计和实现的?
7、GPC、TPC、SM是什么?Warp又是什么?它们和Core、Thread之间的关系如何?
8、顶点着色器(VS)和像素着色器(PS)可以是同一处理单元吗?为什么?
9、像素着色器(PS)的最小处理单位是1像素吗?为什么?会带来什么影响?
10、Shader中的if、for等语句会降低渲染效率吗?为什么?
11、如下图,渲染相同面积的图形,三角形数量少(左)的还是数量多(右)的效率更快?为什么?
12、GPU Context是什么?有什么作用?
13、造成渲染瓶颈的问题很可能有哪些?该如何避免或优化它们?
二、GPU概述
2.1 GPU是什么?
GPU全称是Graphics Processing Unit,图形处理单元。它的功能最初与名字一致,是专门用于绘制图像和处理图元数据的特定芯片,后来渐渐加入了其它很多功能。我们日常讨论GPU和显卡时,经常混为一谈,严格来说是有所区别的。GPU是显卡(Video card、Display card、Graphics card)最核心的部件,但除了GPU,显卡还有扇热器、通讯元件、与主板和显示器连接的各类插槽。NVIDIA:英伟达,是当今首屈一指的图形渲染技术的引领者和GPU生产商佼佼者。NVIDIA的产品俗称N卡,代表产品有GeForce系列、GTX系列、RTX系列等。AMD:既是CPU生产商,也是GPU生产商,它家的显卡俗称A卡。代表产品有Radeon系列。当然,NVIDIA和AMD也都生产移动端、图形工作站类型的GPU。此外,生产移动端显卡的厂商还有ARM、Imagination Technology、高通等公司。2.2 GPU历史
GPU自从上世纪90年代出现雏形以来,经过20多年的发展,已经发展成不仅仅是渲染图形这么简单,还包含了数学计算、物理模拟、AI运算等功能。2.2.1 NV GPU发展史
1997 – Riva 128 (NV3), DX31998 – Riva TNT (NV4), DX532位颜色, 24位Z缓存, 8位模板缓存
双纹理, 双线性过滤
每时钟2像素 (2 ppc)
硬件T&L(Transform & lighting,坐标变换和光照)立方体环境图(Cubemaps)
DOT3 – bump mapping
2倍各向异性过滤
三线性过滤
DXT纹理压缩
4ppc
顶点着色器
像素着色器
DirectX 8.0
Shader Model 1.0
可编程渲染管线
3D纹理
硬件阴影图
8倍各向异性过滤
多采样抗锯齿(MSAA)
4 ppc
2003 - GeForce FX系列(NV3x)- 2004 - GeForce 6系列 (NV4x)
- 2010 - GeForce 405(GF119)
- 2014 - GeForceGT 710(GK208)
- 2016 - GeForceGTX 1060 6GB
- 6GPC,36TPC,72SM,72RT Core,...
- 8K分辨率,1770MHz主频,24G显存,384位带宽
从上面可以看出来,GPU硬件是伴随着图形API标准、游戏一起发展的,并且它们形成了相互相成、相互促进的良性关系。2.2.2 NV GPU架构发展史
众所周知,CPU的发展符合摩尔定律:每18个月速度翻倍。处理芯片晶体管数量符合摩尔定律,图右是摩尔本人,Intel的创始人而NVIDIA创始人黄仁勋在很多年前曾信誓旦旦地说,GPU的速度和功能要超越摩尔定律,每6个月就翻一倍。NV的GPU发展史证明,他确实做到了!GPU的提速幅率远超CPU:NVIDIA GPU架构历经多次变革,从起初的Tesla发展到最新的Turing架构,发展史可分为以下时间节点:- Tesla最初是给计算处理单元使用的,应用于早期的CUDA系列显卡芯片中,并不是真正意义上的普通图形处理芯片。
- Fermi是第一个完整的GPU计算架构。首款可支持与共享存储结合纯cache层次的GPU架构,支持ECC的GPU架构。
- Kepler相较于Fermi更快,效率更高,性能更好。
- 其全新的立体像素全局光照 (VXGI) 技术首次让游戏 GPU 能够提供实时的动态全局光照效果。基于 Maxwell 架构的 GTX 980 和 970 GPU 采用了包括多帧采样抗锯齿 (MFAA)、动态超级分辨率 (DSR)、VR Direct 以及超节能设计在内的一系列新技术。
- Pascal 架构将处理器和数据集成在同一个程序包内,以实现更高的计算效率。1080系列、1060系列基于Pascal架构
- Volta 配备640 个Tensor 核心,每秒可提供超过100 兆次浮点运算(TFLOPS) 的深度学习效能,比前一代的Pascal 架构快5 倍以上。
- Turing 架构配备了名为 RT Core 的专用光线追踪处理器,能够以高达每秒 10 Giga Rays 的速度对光线和声音在 3D 环境中的传播进行加速计算。Turing 架构将实时光线追踪运算加速至上一代 NVIDIA Pascal™ 架构的 25 倍,并能以高出 CPU 30 多倍的速度进行电影效果的最终帧渲染。2060系列、2080系列显卡也是跳过了Volta直接选择了Turing架构。
2.3 GPU的功能
现代GPU除了绘制图形外,还担当了很多额外的功能,综合起来如下几方面:- 这是GPU最传统的拿手好戏,也是最基础、最核心的功能。为大多数PC桌面、移动设备、图形工作站提供图形处理和绘制功能。
- GPU硬件集成的物理引擎(PhysX、Havok),为游戏、电影、教育、科学模拟等领域提供了成百上千倍性能的物理模拟,使得以前需要长时间计算的物理模拟得以实时呈现。
- 计算着色器及流输出的出现,为各种可以并行计算的海量需求得以实现,CUDA就是最好的例证。
- 近年来,人工智能的崛起推动了GPU集成了AI Core运算单元,反哺AI运算能力的提升,给各行各业带来了计算能力的提升。
- 音视频编解码、加解密、科学计算、离线渲染等等都离不开现代GPU的并行计算能力和海量吞吐能力。
三、GPU物理架构
3.1 GPU宏观物理结构
由于纳米工艺的引入,GPU可以将数以亿记的晶体管和电子器件集成在一个小小的芯片内。从宏观物理结构上看,现代大多数桌面级GPU的大小跟数枚硬币同等大小,部分甚至比一枚硬币还小。当GPU结合散热风扇、PCI插槽、HDMI接口等部件之后,就组成了显卡(下图)。显卡不能独立工作,需要装载在主板上,结合CPU、内存、显存、显示器等硬件设备,组成完整的PC机。3.2 GPU微观物理结构
GPU的微观结构因不同厂商、不同架构都会有所差异,但核心部件、概念、以及运行机制大同小异。下面将展示部分架构的GPU微观物理结构。3.2.1 NVidia Tesla架构
Tesla微观架构总览图如上。下面将阐述它的特性和概念:- 拥有7组TPC(Texture/Processor Cluster,纹理处理簇)
- 每个TPC有两组SM(Stream Multiprocessor,流多处理器)
- 6个SP(Streaming Processor,流处理器)
- 2个SFU(Special Function Unit,特殊函数单元)
- L1缓存、MT Issue(多线程指令获取)、C-Cache(常量缓存)、共享内存
- 除了TPC核心单元,还有与显存、CPU、系统内存交互的各种部件。
3.2.2 NVidia Fermi架构
3.2.3 NVidia Maxwell架构
采用了Maxwell的GM204,拥有4个GPC,每个GPC有4个SM,对比Tesla架构来说,在处理单元上有了很大的提升。3.2.4 NVidia Kepler架构
Kepler除了在硬件有了提升,有了更多处理单元之外,还将SM升级到了SMX。SMX是改进的架构,支持动态创建渲染线程(下图),以降低延迟。3.2.5 NVidia Turing架构
上图是采纳了Turing架构的TU102 GPU,它的特点如下:- 12x32位 GDDR6内存控制器 (共384位)
3.3 GPU架构的共性
纵观上一节的所有GPU架构,可以发现它们虽然有所差异,但存在着很多相同的概念和部件:GPU为什么会有这么多层级且有这么多雷同的部件?答案是GPU的任务是天然并行的,现代GPU的架构皆是以高度并行能力而设计的。- Real-Time Rendering Resources
- Life of a triangle - NVIDIA\\'s logical pipeline
- NVIDIA Pascal Architecture Whitepaper
- NVIDIA Turing Architecture Whitepaper
- Pomegranate: A Fully Scalable Graphics Architecture
- Performance Optimization Guidelines and the GPU Architecture behind them
- A trip through the Graphics Pipeline 2011
- Graphic Architecture introduction and analysis
- Exploring the GPU Architecture
- Introduction to GPU Architecture
- An Introduction to Modern GPU Architecture
- GPU TECHNOLOGY: PAST, PRESENT, FUTURE
- GPU Computing & Architectures
- GPU Architecture and Models
- Introduction to and History of GPU Algorithms
- GPU Architecture Overview
- GPU Programming Guide GeForce 8 and 9 Series
- Data Transfer Matters for GPU Computing
- Slang – A Shader Compilation System
- Graphics Shaders - Theory and Practice 2nd Edition
- https://www.cnblogs.com/timlly/p/11471507.html
1、NVIDIA A100 Tensor Core GPU技术白皮书2、NVIDIA Kepler GK110-GK210架构白皮书3、NVIDIA Kepler GK110-GK210架构白皮书4、NVIDIA Kepler GK110架构白皮书6、NVIDIA Tesla V100 GPU架构白皮书《异构计算芯片(ASIC/FPGA等)技术合集(1)》《异构计算芯片(ASIC/FPGA等)技术合集(2)》3、Xilinx UltraScale业界首款ASIC级架构.pdf4、先进封装技术:核电子学ASIC技术研讨会.pdf本号资料全部上传至知识星球,更多内容请登录智能计算芯知识(知识星球)星球下载全部资料。
免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言联系删除,谢谢。
电子书<服务器基础知识全解(终极版)>更新完毕,知识点深度讲解,提供182页完整版下载。
获取方式:点击“阅读原文”即可查看PPT可编辑版本和PDF阅读版本详情。
温馨提示:
请搜索“AI_Architect”或“扫码”关注公众号实时掌握深度技术分享,点击“阅读原文”获取更多原创技术干货。