传统PC的高级框图。北桥包含高带宽接口,连接CPU,内存和PCI总线。 南桥包含传统接口和设备:ISA总线(音频,LAN),中断控制器; DMA控制器;定时/计数器。 在该系统中,显示器由称为VGA(视频图形阵列)的简单帧缓冲子系统驱动,该子系统连接到PCI总线。 1990年的PC环境中不存在具有内置处理元件(GPU)的图形子系统。
GPU相关组件_第1张图片
目前常用的两种配置。 它们的特征在于独立GPU和具有相应存储器子系统的CPU。 图中,使用Intel CPU,GPU通过16通道PCI-Express 2.0链路连接,提供16 GB / s的峰值传输速率(每个方向的峰值为8 GB / s)。
GPU相关组件_第2张图片
当今的GPU使用统一架构
GPU相关组件_第3张图片
从Fermi开始NVIDIA使用一个Giga Thread Engine来管理所有正在进行的工作,GPU被划分成多个GPCs(Graphics Processing Cluster),每个GPC拥有多个SM(SMX、SMM)和一个光栅化引擎(Raster Engine),它们其中有很多的连接,最显著的是Crossbar,它可以连接GPCs和其它功能性模块(例如ROP)。
对于某些GPU(如Fermi部分型号)的单个SM,包含:
32个运算核心 (Core,也叫流处理器Stream Processor)
16个LD/ST(load/store)模块来加载和存储数据
4个SFU(Special function units)执行特殊数学运算(sin、cos、log等)
128KB寄存器(Register File)
64KB L1缓存
全局内存缓存(Uniform Cache)
纹理读取单元
纹理缓存(Texture Cache)
PolyMorph Engine:多边形引擎负责属性装配(attribute Setup)、顶点拉取(VertexFetch)、曲面细分、栅格化(这个模块可以理解专门处理顶点相关的东西)。
2个Warp Schedulers:这个模块负责warp调度,一个warp由32个线程组成,warp调度器的指令通过Dispatch Units送到Core执行。
指令缓存(Instruction Cache)
内部链接网络(Interconnect Network)

在Pascal中,一个SM(流式多处理器)由128个CUDA内核组成。GP100 SM分为两个处理模块,每个模块具有32位单精度CUDA内核,一个指令缓冲区,一个warp调度程序,2个纹理映射单元和2个调度单元。使用统一内存体系结构,借助称为“页面迁移引擎”的技术,CPU和GPU可以同时访问主系统内存和图形卡上的内存。

渲染输出单元(ROP)是现代图形处理器(GPU)最后硬件组件,和在渲染过程的最后步骤之一。绘图管线取像素(每个像素是一个无量纲点),和纹理像素信息,并处理它,经由特定的矩阵和向量运算,变成最终像素或深度值。此过程称为栅格化。当多个样本合并为一个像素时,渲染输出单元控制抗锯齿。 渲染输出单元执行本地存储器中相关缓冲区之间的事务 - 这包括写入或读取值,以及将它们混合在一起。 用于执行基于硬件的抗锯齿方法(如多重采样抗锯齿(MSAA))的专用抗锯齿硬件包含在渲染输出单元中。渲染的所有数据都必须通过渲染输出单元才能写入帧缓冲器,帧缓冲器再传输到VGA 、 DVI 、 HDMI 、 Displayport 、 Mini Displayport线到显示器。历史上,渲染输出单元,纹理映射单元和着色器处理单元/ 流处理器的数量是相等的。然而,从2004年开始,几个GPU已经将这些区域分离,以便为应用程序工作负载和可用内存性能提供最佳的晶体管分配。随着趋势的继续,预计图形处理器将继续解耦其架构的各个部分,以增强其对未来图形应用程序的适应性。这种设计还允许芯片制造商构建模块化阵容,其中顶级GPU基本上使用与低端产品相同的逻辑。