无题
Gpu阳春白雪与下里巴人笔记
第一章 绪论
GPU的发展历程
1,GPU vs CPU:
GPU具有高效并行结构,所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率
CPU大部分面积为控制器和寄存器,GPU拥有更多的ALU用于数据处理,而非数据高速缓存和流控制
这样的结构适合对密集型数据进行并行处理。
CPU执行计算任务的时候,一个时刻只会处理一个数据,不存在真正意义上的并行。(OS的时间片轮转算法)
而GPU具有多个处理器核,在一个时刻可以并行处理多个数据
GPU采用流式并行计算模式,可以对每一个数据进行独立的并行计算,所谓“对数据进行独立计算”,即,流内任意元素的计算不依赖于其他同类型数据。(例如计算一个顶点的世界坐标,不依赖于其他顶点的位置,而所谓并行计算是指”第一个数据可以被同时使用,多个数据并行运算的时间和1个数据单独执行的时间是一样的“。)
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、内存打交道,诸如碰撞检测、场景图建立、空间八叉树更新、视椎裁剪等经典算法都在其中
在该阶段末端,几何数据将会通过数据总线传送到图形硬件(时间瓶颈)
几何阶段: