GPU的体系结构几个演进
从体系结构的视角看, GPU的诞生一开始是为了解决访存的问题, 1994年的时候整个图形渲染流水线基本上已经固定成为开放的OpenGL标准。
伴随着GeForce 6的发布,Vertex Shader和Pixel Shader都支持了完整分支、循环、预测等功能实现,最终一个完全支持高级渲染语言(Cg, DirectX HLSL, OpenGL GLSL)的平台诞生了,而HDR等特效也引入了主流游戏平台。
GP-GPU体系架构, CUDA可编程
正是这一系列的思考,2006年nVidia 革命性的Tesla架构芯片GeForce 8发布了。
它采用了将8个标量计算核(Streaming Processor,SP)和2个特殊函数计算单元(SFU)配合一些Cache和共享内存整合构成一个Streaming Multiprocessor(SM), 然后采用SIMT的方式进行,将32个Thread打包成一个Warp,而一个SM又可以同时管理24个Warp. 然后两个SM共享一个Texture Unit和一个Geometry Controller构成一个Texture/Processing Cluster.
SIMT执行方式类似于SIMD,一条指令可以同时对多个数据处理,但是不同的是,由于每个执行的SM都可以有独立的Branch的能力,所以每个thread编程更加灵活,使得我们可以用通用的C语言代码来描述单个thread的执行。
参考文献链接
https://mp.weixin.qq.com/s/2ZrD-FqHeYy9zA7FM_bYXg?search_click_id=6938721431626887156-1722204535437-6536241628