本篇阅读学习第七、八章,了解GPU架构演进及CPGPU存储体系与线程管理
█从图形到计算的GPU架构演进
GPU图像计算发展
●从三角形开始的几何阶段
在现代图形渲染中,三角形是最常用的基本图形元素之一,用来构建复杂的3D模型和场景。 在图形学中,图元是图形的基本元素。在图形渲染中,一个三角形的每个顶点都包含位置、颜色、纹理坐标等属性。
●光栅化衔接 3D 和 2D 世界
在顶点计算和像素计算之间有一个重要的步骤,即把信息串在一起,这就是光栅化(pRaserizaion)。光栅化是将矢量项点组成的图形进行像素化的过程,它是一个桥梁,连接了(D顶点数据和2D屏幕像素。
●像素着色阶段
像素着色器(Pixel shader)是图形流水线中算力相当强大的功能单元,因为它可以为每个片段执行复杂的计算,从而为最终渲染的图像添加细节和视觉效果。
DirectX API推动 GPU 演进
Directx是由微软设计和维护的图形应用程序接口。。DirectX提供了一个统的、跨硬件的接口,使得开发者只需针对一个 API进行编程即可。DirectX还定义了一系列图形和声音功能的标准,这使得硬件制造商知道自己的设备需要支持哪些功能,同时也让开发者知道自己可以使用哪些功能。
GPGPU指线
指令流水线,指的是将指令执行过程分解为多个阶段,这样在任何给定的时刻,多条指令可以在不同的阶段同时执行,这种并行方式可以提高处理器的吞吐量。并行计算模式(而非图形模式下)GPGPU的流水线是针对线程束进行管理的,也就是NVIDIA所说的 CUDA环境下的 warp 或者AMD 所说的 OpenCL 环境下的 wavefront。
为了提高效率,GPGPU也拥有指令缓存。指令缓存是GPGPU流水线的第一个调度部分。
█GPGPU存储体系与线程管理
GPGPU存储体系本章描述方式采用了CUDA编程框架术语,基本上每个CUDA单元在 OpenCL 编程框架中都有对应的单元。
倒金字塔结构GPU存储体系
共享内存是开发者可配置的编程资源,使用门槛较高,编程上需要更多的人工显式处理。
在并行计算架构中,线程是最基础的执行单元,包括在许多GPU架构中。线程可被理解为独立的指令流,它执行一系列指令,而且这些指令可以和其他线程的指令并行执行。
线程是 GPU最基本的执行单元。通过调度和执行大量的线程,GPU可以实现高效的并行计算,其适用于许多需要大量并行处理能力的任务,如图形渲染和深度学习。
●线程调度和管理
在GPU中,线程以线程束为单位进行调度和执行。每个线程束通常包含32个线程。线程束调度器负责管理和切换不同的线程束以执行不同的指令。指令调度单元负责从指令缓存中取出着色器程序中的操作指令,并将其分配给每个CUDA核心执行。
线程块的设计为 GPU编程提供了一种高效、灵活和易用的方式来组织和管理并行线程从而充分利用 GPU的强大计算能力。在CUDA编程模型中,GPU的计算资源被组织为线期线程块和线程网格3级。线程是基本的执行单元,线程块是包含多个线程的组,线程网格包含多个线程块的组。线程块和线程网格的概念可以帮助我们更好地组织和管理线程,从而化 CUDA 程序。
VLIW 代表超长指令字架构(Very Long Instruction Word,VLIW)。它通过编译器,将多个相互无依赖关系的指令封装到一个超长的指令字中,然后CPU中有对应宽度的 ALU 来完成相应的指令操作。这是一种非常经济的硬件设计方式,它的核心逻辑是通过简单的硬件构造,实现尽可能高的指令并行度。
总的来说,GPU在图形应用上具有独特优势和技术特点,英伟达在GPU上具有技术引领优势。这部分也是比较理论框架化些,通过阅读可以对GPU有些整体了解与熟悉。
更多回帖