正文内容 评论(0

ATi纵论DirectX 10
2006-07-04 19:51:00  出处:快科技 作者:Rookie 编辑:Rookie     评论(0)点击可以复制本篇文章的标题和链接

几周前ATi在伦敦召开了一次新闻媒体会议,在会议上ATi讨论了未来DirectX10的一些功能和特性,Elitebastards网站为此刊登了一篇简报文章,以下是ATi对关于众所周知的,统一Shader架构的看法:

"正如我们所知,传统架构Pixel shader和Vertex shader单元是独立的,因此无法获得工作负载的动态分配或平衡,面对不同场景不同工作量的像素和顶点运算,无法获得高效处理方式,进而可能造成瓶颈。


ATi纵论DirectX 10

从上图不难看出,在第一个场景中,该鲨鱼物体有大量多边形组成,而组成多边形或者说三角形的顶点都由GPU的Vertex shader来处理,因此Vertex shader一直处于繁忙状态,相反,这时Pixel shader却没有多少工作可做,这显然是在硬件上对芯片的浪费。

第二个场景是另外一个极端,在这个水波纹场景中,顶点很少,相反为了创建波纹,反射和折射效果,需要非常之多的像素。此时大多数Vertex shader都处于闲置状态,而Pixel shader则满负荷运行。

尽管这是两个极端的场合,但它说明了一个问题-传统的架构很少能完全利用所有的Shader单元。

而这正是统一架构的优势所在,它没有独立的pixel和Vertex shader单元,而是由一个能同时处理Pixel和Vertex的统一shader单元。


ATi纵论DirectX 10

回到上面的例子也许能容易说明统一架构,与上面两个独立场景不同的是,ATi可以将多顶点鲨鱼和多像素的水混合成一个场景,而由于Vertex和Pixel处理共享一个单元,这样可以尽可能在同一时间完成更多工作,这意味着在处理Vertex和pixel数据时,除了硬件性能不足以外,由此带来的瓶颈已不复存在。

当然,统一架构并不是简单的将Vertex和Pixel数据送到单元中去,这显然不行,统一架构需要在单元入口对数据流进行组织和整理,以确定每个时钟所处理的数据类型,那么谁能来承担这个工作?

和很多CPU中的功能单元一样,该功能由线程仲裁器完成,线程仲裁器以最有效的方式将数据送入统一shader单元,数据同时被最优数据处理,以保证最快的处理速度。这意味着线程仲裁器要以指令方式通知shader单元处理的数据类型,时钟周期。

任何事物都不是完美的,统一架构也有自己的弱点,因为它增加了一个单元设计的复杂性,这也意味着成本的增加,与传统架构相比,统一shader单元无疑需要更多的晶体管,还有线程仲裁器所需要的晶体管,对此ATi的答复是"不便宜,但也不是很复杂。"

很不错的文章,如果你需要了解更多DX10,到这里阅读该文

【本文结束】如需转载请务必注明出处:快科技

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#快讯

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...