Gpu阳春白雪与下里巴人笔记

第一章 绪论

GPU的发展历程

1,GPU vs CPU:

GPU具有高效并行结构,所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率

image-20250326105018130

CPU大部分面积为控制器和寄存器GPU拥有更多的ALU用于数据处理,而非数据高速缓存和流控制
这样的结构适合对密集型数据进行并行处理。

CPU执行计算任务的时候,一个时刻只会处理一个数据,不存在真正意义上的并行。(OS的时间片轮转算法)

而GPU具有多个处理器核,在一个时刻可以并行处理多个数据

GPU采用流式并行计算模式,可以对每一个数据进行独立的并行计算,所谓“对数据进行独立计算”,即,流内任意元素的计算不依赖于其他同类型数据。(例如计算一个顶点的世界坐标,不依赖于其他顶点的位置,而所谓并行计算是指”第一个数据可以被同时使用,多个数据并行运算的时间和1个数据单独执行的时间是一样的“。)

image-20250326105736291

2,GPU相比CPU的缺点:

数据之间相互关联的算法在GPU上难以实现

GPU在控制流方面弱于CPU
(GPU的控制器少于CPU,而控制器的主要功能是取指令,并且指出下一条指令在内存中所在的位置,控制盒协调计算机各个部件有条不紊地进行工作,GPU编程依赖于图形硬件,较早版本的gpu不满足编程需要)

进行GPU编程需要图形学知识、以及图形处理API,早期GPU编程只可以使用汇编语言,开发难度比较高,效率低

3,书的主要内容结构

入门GPU编程

四大部分:

第一部分:GPU的发展历史、GPU和CPU优劣比较、GPU的图形绘制管线、在GPU上使用的shader Language,这一部分由3章组成,尤为重要的是第二章“GPU图形绘制管线”和第三章“Shader Language”

第二部分:CG语言的使用方法

第三部分:阐述光照模型的知识

第四部分:针对投影纹理映射和阴影算法进行讲解

第五部分*:阐述了体绘制知识点以及基于GPU的光线投射算法。

第二章 GPU图形绘制管线

4,图形绘制管线的三个阶段

应用程序阶段:使用高级编程语言进行开发,主要和CPU、内存打交道,诸如碰撞检测、场景图建立、空间八叉树更新、视椎裁剪等经典算法都在其中

在该阶段末端,几何数据将会通过数据总线传送到图形硬件(时间瓶颈)

几何阶段: