14八/080
关于GPU的一些简单概念
最近看了一些Windows graphics的东西,顺便了解了一下GPU,学了几个显卡设置里常见的单词。Windows vista使用的半透明桌面效果,还有Win+Tab的切换效果都是基于显卡3D加速的。
shader: 不太好翻译,程序纹理着色器,或者着色程序,是一段可以改变像素、顶点和几何学特征的小程序。特点是可编程,原先的显卡里只能调用固定的函数。
vertex shader:把3D坐标变成屏幕上2D坐标(和Z-buffer)
geometry shader:不清楚,一次处理一批vertex?(DirectX 10加入)
rasterization:光栅化,把一个2D坐标换算成一个pixel
pixel shader:对像素上色,考虑texture、光线等因素。(高度并行化,因为每个pixel都是独立的)
unified shader:有利于平衡使用。一个GPU可能有128个处理器,有了unified shader后,某个时刻可以让90%的处理器做vertex shader,10%的做pixel shader;或者反之。(DirectX 10加入)
工作流程:

因为shader是可编程的,所以可以把某些CPU的计算交给GPU做,也就是所谓的general purpose GPU,这是比较时髦的技术了。
现在的GPU里有很多的处理器,也有调度器,有优先级的概念。但是还不支持page table,因此显存里放的东西都是连续的(这意味着显存里可能会有洞,浪费空间);也不支持抢占。可以预计将来的GPU还会有更多改进。
参考文章:
http://diy.pconline.com.cn/graphics/reviews/0708/1076067_1.html