| 热点推荐 |
|---|
势均力敌?两款GPU特性及抗锯齿功能分析
● 风格迥异 G80和R600架构思路不同
G80和R600都是符合微软DirectX 10规范的高性能GPU,殊途同归的使用统一着色器基本单元代替沿用多年的像素、顶点着色器分离体系,两者在强调着色器操作的大规模并行思路也有相似之处,然而更多的方面还是体现出了很大的差异。

G80 体系架构图
G80内置96或128个流处理器,每一个即是通用着色单元,是更彻底的超标量体系架构。GigaThread硬件逻辑一视同仁的把任何指令拆成1D标量指令,在强大的硬件线程调度能力和高容量缓存资源的支撑下去管理128个1D标量着色器执行这些指令。考虑到片内缓存的高实现成本,G80在GigaThread上耗费了大量晶体管,标量着色器绝对数目相对R600处于劣势,但它使用着色器频率异步来提高计算能力。
G80的这种设计思路使GPU能够在所有应用中保持稳定的均一性能,理论上最高的着色器资源利用率,和便于开发的驱动程序编译器。与之向悖,R600的着色器设计思路是把大量晶体管用在堆积海量流处理单元上,而向量、标量指令的并行推动力则交由中间件编译器实现,提高并行处理的方式是对原始指令进行组合,封装成流处理器组适应的形式。

R600 体系架构图
Radeon HD 2900 PRO使用的R600 GPU内置惊人数量的通用标量着色器,共计达320个!但由于这些着色器组织形式、调度及运行频率等规格在两款顶级GPU上存在很大差异,我们并不能仅从着色器个数来判断GPU整体性能优劣。
R600虽然宏观上是320个流处理单元的超标量体系,但在微观实现上具有浓厚传统4D向量着色器特征。这些流处理单元被每5个分成一组4D+1D模式的5D向量着色器,和传统向量着色器不同的是,它能够理论上实现每周器发射最多5个标量指令,形成逻辑上的1D*5着色执行模式,和G80每个流处理器都是完整的拥有自己执行资源的ALU不同的是,R600的每5个流处理单元才能行使完整的ALU功能,向外部申请执行资源。
在硬件上R600并不能把各种向量指令分解成若干1D标量指令,它现程分支处理逻辑只能进行保持数据原结构基础上的调度。这和G80的GigaThread逻辑完全把向量指令分解成1D标量指令在进行超大规模的标量化线程调度,直接输出给流处理器的运行模式完全不同。