GPU一些概念总结
记录一些自己理解的GPU相关知识,口语化多一些,有助于理解。
引子
电脑中一般会说集成显卡还是独立显卡,实质是GPU的区别。集成显卡是使用INTEL的GPU,而独立显卡是使用额外的GPU。都知道GPU是处理图像的,生活中需要好一点的GPU是一般在打3D游戏时,使用PS做图时。你加上带有高级GPU的独立显卡后,怎么就可以使用上了呢?一般在Windowns下接上独立显卡后是需要装驱动,那么大型游戏和PS软件就可以直接使用了。但是不同型号的显卡带有不同型号的GPU,为什么作为一个使用者并不会感到有使用上的差异,仅仅会有速度快慢区分。这就源于Windows给做了统一的接口,不同的显卡驱动为Windows系统实现了统一的接口,这样游戏和PS软件只需按照标准的接口进行调用就可以完成GPU的使用。
从开发者角度讲这其实牵扯了几个部分:操作系统,统一接口,GPU硬件,应用程序。他们在Windows平台上分别是:Windows,Direct3D,英伟达,Photoshop。对于「统一接口」,Direct3D是Windows的专属,其它还有OpenCL(Apple公司主导),OpenGL(开源社区)等等,其中OpenGL在Linux/Android上是主流。明白这些后,当你想要让你的程序使用GPU进行渲染图形的时候,搜索资料要使用 xxx opengl,而不是 xxx gpu。
由于我并非一个Windows系统上的开发者,上述以它进行举例也是因为它是目前使用最多的桌面操作系统,以它为切入点。对GPU的使用和理解将基于OpenGL进行梳理。
使用OpenGL
当锁定好要基于OpenGL进行了解和使用GPU,那么第一步是找到一个DEMO,分别基于纯软件和GPU的渲染测试。
其实OpenGL上层再次封装了比如「GLX」针对「X Window System」,主要用在Linux桌面系统中;OpenGL ES(OpenGL for Embedded Systems)主要用于包括Android在内的嵌入式设备中。比如在一个Mali-400 MP的GPU主页中可以查看到它支持的标准为「OpenGL ES 1.1 和 2.0」。
。。。(未完待续)
参考:
1. OpenCL、OpenGL和DirectX三者的区别