现代GPU:它们有多“智能”?
3D编程(OpenGL或DirectX)以及相应的图形管道上有很多资源,但是我想知道它们在现代GPU上的哪个级别上实现。 到目前为止,我已经发现,已经从实现图形管线各个阶段的非常专业的循环系统转变为更通用的方法。这种转换已部分以可编程着色器的形式反映在3D API上。大多数晶体管似乎专用于执行实际着色器指令的大规模并行SIMD单元。 但是其余的图形管道又如何呢?仍然在硬件中实现吗? 是现代的GPU(认为Nvidia Fermi),基本上是一组“愚蠢”的SIMD数组,这些数组从CPU和各种缓存中获取指令和数据,并且将图形管线映射到这些指令的所有实际逻辑都在图形驱动程序中发生? 还是在GPU的某处有一些控制单元,将传入的高级指令和数据流(编译的着色器程序,顶点数据和属性以及纹理)转换为实际的SIMD指令,并负责同步,内存分配等工作? 我怀疑现实是介于这两个极端之间,答案会相当冗长,并且基于很多猜测(某些GPU供应商有理由拒绝在其产品上发布任何文档,更不用说驱动程序了。源代码...),但朝着正确方向和有用资源的任何提示将不胜感激。 到目前为止,我发现了一系列博客文章,这些文章对了解现代GPU极为有用,但是我缺少有关整体架构的更高层次的概述-我可以理解大多数提到的概念,但是不太了解它们如何融合在一起。