为什么要使用GPU编程
OpenGL 使用的的是GPU的高并发能力,那为什么要使用GPU而不是CPU了?
CPU是多指令数据流(MISD)体系结构,擅长的是做逻辑控制,数据处理时基本是单流水线的,所以我们写for循环代码时,CPU需要重复迭代的跑很多遍。
GPU是典型的单指令多数据(SIMD)体系结构,不擅长逻辑控制,但却有强大的并行计算能力,所以处理for循环代码只需要跑一遍,所以在图形界面中那么多的顶点、片段能快速的并行在显卡中渲染处理。GPU的晶体管是几十亿个,而CPU的晶体管通常只有几亿个。
最早图形处理是放在CPU上,后来发现可以在主板上放一个单独的芯片来加速图形绘制,于是命名为图像处理单元。后来NVIDIA把这个处理单元做强大,给它改了个称呼,叫GPU, 也叫图像处理器,再后来GPU就以比CPU高几倍的速度增长性能。
开始的时候GPU不能编程,也叫固定管线,就是把数据按照固定的通路走完。因为和CPU同样具有计算处理能力,所以就出来了可编程的GPU,最开始是用汇编语言编写,所以叫可编程管线。后来支持高级语言更加容易让GPU里面写代码,现在这些高级语言都被称为高级着色语言Shading Language,这些shader目前已经被广泛应用在我们的各种游戏中。