POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 5165|回复: 31
打印 上一主题 下一主题

R700有什么新招数?

[复制链接]
跳转到指定楼层
1#
发表于 2008-2-13 14:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家都知道AMD收购ATi在GPU领域和NV争没什么好果子吃。果然R6XX成了惨败的一代。但是细致分析一下,R600和AMD没什么关系,就算ATi不被收购,去年一年恐怕也要了老命了。要放到去年下半年被收购,恐怕用不了当初一半的价钱。当然主人也许就换成Intel或者NV了。从这样的趋势看,AMD抢先收购ATi不算是战略失误,只是代价高了些。事实上算是AMD帮ATi及早解脱了困境。(变成了AMD的困境)

现在AMD正在根本性的转变ATi。过去ATi从偏安一隅到两雄争霸一直带着一些酸气,在价格战上始终处于被动地位,就算在人气鼎盛的R3XX时代,在细分市场方面也远远比不上NV。后来虽然产品线丰富了许多,可是性价比上一直无法超越对手。当然其中的根本原因还在于工艺上被NV超越架构设计出现失误。R600算是这两方面汇集的顶点,被AMD给撞着了。
但是RV670带来一些明显的变化。首先是工艺上再次领先NV,其次是一改ATi两年来几乎每款产品都要跳票的毛病。这就在成本上占据了一定的优势。在此基础上AMD主动打起了价格战。NV G9X系列在架构和市场上很成功,可是成本上不尽人意。就算是将出的9600系列成本相比RV670也没有优势。R600兵败如山倒之后RV670总算是有点起色。
下一步呢?架构效率问题不解决,AMD这点起色很快就会过去。
R600相对于G80/G92的弱点在哪里?这应该就是R7XX应该改进的地方。
有人说NV的标量架构就是G8X/G9X最大的优势,它能够实现100%的效能输出。真的是这样吗?反正我知道不停地拆分和合成矢量指令也会消耗大量的时间。除非指令全部是标量。当然NV搞了4096个线程分配单元和一大堆一级缓存和二级缓存,这对提高G80的效率是至关重要的。相比较来说R600的指令分配体系就简陋的可怕,每16条管线为一个单元只能处理一种指令和G80每一条管线都全速运行灵活搭配各种指令相比效率最多能差50%!所以基于G80架构开发的游戏不对R600进行优化的话速度有可能差30%——50%。NV效能提升的另一大关键就是Shader频率。这玩意是效果倍增器,排除其他干扰后Shader频率对性能的提升是立竿见影的。R600在架构上就很难做到这点。第三就是ROP部分,R5XX和R6XX两代都在这方面栽了跟头。不知道ATi为什么会坚持这种强劲的指令运算和低下的效能输出相结合架构。R600低下的抗锯齿形能严重对不起512bit显存位宽。
当然R600的架构并非一无是处。4D+1D的矢量架构还是比较科学的。他能够实现密度更大的指令运算,在晶体管利用效率上要好于标量处理器。这种核心架构AMD恐怕不会有什么改变的打算。关键是在指令分配上必须赋予每条管线绝对的灵活性,这才是提升效率的关键。事实上,矢量架构不需要G80那样变态的指令分配体系和掩藏延迟的设计,可以节省大量晶体管用在有效提升效能的地方,比如显存控制单元。
R700仍然坚持R600的矢量架构是铁定的,我估计改进主要在指令分配部分,如果还不能实现每条管线独立运作那就太叫人失望了。至于管线内部改进就不是我们能想的。R700能不能让Shader单独以更高频率运行还不清楚,我估计可能性不大。当然不是不可能,只是矢量管线的规模和复杂程度比标量架构要高许多,频率提升会很麻烦,我估算能实现1.5倍频就很了不起了。显存控制部分R700可能会放弃环形总线,占用大量晶体管不说效率也不理想。未来R700是多核心,环形总线会成为绊脚石。
R7XX的高端基础架构是RV770,据说性能比RV670提高50%而晶体管数和后者类似。(也有可能超过8亿)R700是RV770的双核心版本,512bit显存带宽,有可能使用GDDR5显存。RV770今年5、6月份就能发布,R700会晚一些。如果GDDR5大量使用的话,中高端1G显存的时代很快就会到来。另外还有主流市场的RV740,性能类似于G94而核心面积要小很多。从G94/R740开始,主流市场GPU显存带宽全面进入256位时代。其实现在制约G92和未来的RV770的瓶颈就是显存带宽。就算是GDDR5,256位也满足不了高端GPU的需要。
2#
发表于 2008-2-13 14:56 | 只看该作者
沙发:loveliness:
回复 支持 反对

使用道具 举报

3#
发表于 2008-2-13 15:05 | 只看该作者
楼主别分析了, N粉们快受不了了...

刚来了个3870X2, 人家那边的双PCB还没出呢,你就蹦出来分析R700?!

还用问吗,在我们伟大的NV 前面, ATI永远是废柴一堆!:loveliness:
回复 支持 反对

使用道具 举报

4#
发表于 2008-2-13 15:21 | 只看该作者
按照hotball的说法,G8X的分支是4个一组,这样如果有4个"thread"在动态分支走不同的路,就需要串行化("serialize"),由于double pump的关系,结果4个SIMD看上去就好像是8个SP;此外,g8x把threads组织成warp,例如8个threads一个warp,但是一次只执行其中的一半即half-warp,这也可以看作是double pump的特征。如果这个说法成立,那么大家看到的shader clock其实应该再x2。
回复 支持 反对

使用道具 举报

5#
发表于 2008-2-13 15:29 | 只看该作者
shader分频不知道AMD会不会去搞.

不过也不想看到2个公司走相同路线:lol:

希望AMD做出自己的风格.
回复 支持 反对

使用道具 举报

6#
发表于 2008-2-13 15:57 | 只看该作者
看看,恩,写的很多:o
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2008-2-13 16:06 | 只看该作者
原帖由 Edison 于 2008-2-13 15:21 发表
按照hotball的说法,G8X的分支是4个一组,这样如果有4个"thread"在动态分支走不同的路,就需要串行化("serialize"),由于double pump的关系,结果4个SIMD看上去就好像是8个SP;此外,g8x把threads组织成warp,例如8个 ...

是的,G8X的分支确实是4个一组,当初R520好像也是这样,后来R580以后又改成16个一组了。不过我不明白老大说一次执行一半warp可以看作是shader频率再翻倍,这和指令运算有什么关系?
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2008-2-13 16:21 | 只看该作者
原帖由 yyzjp 于 2008-2-13 15:05 发表
楼主别分析了, N粉们快受不了了...

刚来了个3870X2, 人家那边的双PCB还没出呢,你就蹦出来分析R700?!

还用问吗,在我们伟大的NV 前面, ATI永远是废柴一堆!:loveliness:


我也不认为AMD会在NV面前翻身。NV的手腕和魄力我是非常欣赏的,而且我一直用的都是NV的产品。不过我也不象某些N饭势利眼,眼里除了伟大的“嗯伟大”谁都容不下了。NV不是一好百好,AMD也不是十臭百臭。我其实是想看看AMD手里的ATi能有怎样的变化和起色。RV670算是比较好的开始,RV7XX系列在成本的前提下在主流市场的作为应该有和NV比肩的希望。但是高端一定是NV的天下。
回复 支持 反对

使用道具 举报

9#
发表于 2008-2-13 17:04 | 只看该作者
原帖由 shu0202 于 2008-2-13 14:37 发表
大家都知道AMD收购ATi在GPU领域和NV争没什么好果子吃。果然R6XX成了惨败的一代。但是细致分析一下,R600和AMD没什么关系,就算ATi不被收购,去年一年恐怕也要了老命了。要放到去年下半年被收购,恐怕用不了当初一半的 ...

有几个基本东西反了
G8X的scalar SP在控制和管理上比 Vector SIMD要复杂的多
r700不太可能使用Shader异步 G8X 做到Shader异步很大方面是靠Gigathread作支撑才能吸收掉它的负面影响
r6xx 构架衍生版本这样做只会进一步突出自己的缺点
回复 支持 反对

使用道具 举报

10#
发表于 2008-2-13 17:16 | 只看该作者
若R770还用矢量架构但要shader倍频,必须首先解决多个矢量指令打包的问题。不是指co-issue,而是指co-issue好的多个矢量指令再打包让矢量架构shader分多次执行。例如把3个4+1D矢量指令打包,然后把此指令包交给矢量架构shader分3次执行完成。但即使能做到,整个GPU都要大改才行。而最后的GPU架构可能除了shader部分,其它的和G80/G92就很类似了...
回复 支持 反对

使用道具 举报

11#
发表于 2008-2-13 18:13 | 只看该作者
原帖由 wenlee 于 2008-2-13 17:16 发表
若R770还用矢量架构但要shader倍频,必须首先解决多个矢量指令打包的问题。不是指co-issue,而是指co-issue好的多个矢量指令再打包让矢量架构shader分多次执行。例如把3个4+1D矢量指令打包,然后把此指令包交给矢量 ...

=.= 完全不知所云了。。
Co-issue 是最后交给ALU指令发射的时候了 还哪儿来的在打包。。。
VLIW打包是用来喂饱 4D SIMD ALU的
最完美的情况下是 Co-issue [ (VLIW PACK)4D SIMD   +1D scalar ]
但是能够符合这样条件的情况少得可怜  不管是VLIW 还是Co-issue 知识亡羊补牢 尽量减少ALU资源浪费的做法
如果Shader Program 本身就考虑到优化的话 基本并不靠谱
现在是TWMTBP的年代。。。如果反过来的话 可能r6xx的现状会好些
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2008-2-13 18:25 | 只看该作者
矢量单元Shader频率异步应该不是架构难题,G7X系列已经实现了频率异步,也没出现什么矢量指令非打包不可的问题。我不清楚频率异步为什么指令必须要打包执行?G8X的Gigathread确实是效能表现的关键之一,而我也正希望R700在指令调度方面做出重要变化,本来R600糟糕的就是这一点。我想R700除了shader部分,其他方面真有可能向G9X靠拢。
回复 支持 反对

使用道具 举报

13#
发表于 2008-2-13 18:30 | 只看该作者
原帖由 shu0202 于 2008-2-13 18:25 发表
矢量单元Shader频率异步应该不是架构难题,G7X系列已经实现了频率异步,也没出现什么矢量指令非打包不可的问题。我不清楚频率异步为什么指令必须要打包执行?G8X的Gigathread确实是效能表现的关键之一,而我也正希望 ...

G71那个只是分频而已 VS不是访存组件 加上外部落差也不大

Shader 动不动比外部组建提高2.5 倍甚至更高  意味着 相对的内部leatency 直接 翻2.5倍甚至更高。。。
本来r600 512thread MAX 面对现在的条件就不是很富于  直接再把外Shader core 和TMU 等外部部件延迟再提高2.5倍+
效率彻底烂掉了好不好。。
这个东西不是随便小修不久能遮掩掉的。。。
异步和指令打包文完全是风马牛不相干的东西 。。

r600 指令调度也不存在问题 其实VLIW ,CO-ISSUE之类的没什么必要讨论 SIMD传统构架就是这样 Peak flops水分是必然的 只是说能够减少一点是一点
继续衍生下去 不如继续提高SIMD资源好了

[ 本帖最后由 ayanamei 于 2008-2-13 18:39 编辑 ]
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2008-2-13 18:56 | 只看该作者
G80 shader倍频确实和标量架构有莫大关系。R700的矢量架构现阶段能跑1.5倍就不错了。我说指令调度应该是说错了,应该说是管线的独立性,不过这和指令调度方法有密切关系,512thread对R700来说远远不够。实现4管线一组RV770也需要2048thread。基本架构不变的情况下实现效能最大化比单纯增加SIMD资源要有意义得多,因为成本、功耗的压力对GPU来说非常大。
回复 支持 反对

使用道具 举报

15#
发表于 2008-2-13 19:06 | 只看该作者
原帖由 shu0202 于 2008-2-13 18:56 发表
G80 shader倍频确实和标量架构有莫大关系。R700的矢量架构现阶段能跑1.5倍就不错了。我说指令调度应该是说错了,应该说是管线的独立性,不过这和指令调度方法有密切关系,512thread对R700来说远远不够。实现4管线一组 ...

为什么G8X Shader倍频和 标量矢量扯上关系。。。
g8x 是由于使用scalar SP 通过TLP来提高效率  所以必然的使用了内部平行度空前的Gigathread体系
如果r6xx 如果内部平行组够大 可以遮掩掉 倍频带来的额外延迟 完全可以去做
问题是现在的情况是不允许
提高thread 不是说提高就能提高的 SRAM Regsiterfile 都会爆增

倍频不是必然的东西 只是g8x的方案中适合用这种方式解决
转嫁成本而已 在整体结构能够消化的前提下 加资源自然是更好

[ 本帖最后由 ayanamei 于 2008-2-13 19:25 编辑 ]
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2008-2-13 19:26 | 只看该作者
标量单元运算部分比矢量单元简单得多,因此提升频率也容易得多。G80/G92运算部分在全部晶体管中所占的比利是NV历史上最低的,这对控制功耗和发热量有好处。
R700不是应该大大增加内部平行度吗?这要看怎么改变了。

当初G80坚决搞标量单元实现管线自由度的最大化造成执行单元偏少就用大规模的Gigathread和倍频来弥补不足。即便如此G80的核心面积都够变态了。就算现在65nm的主流G94核心面积仍然要比过去大很多。
回复 支持 反对

使用道具 举报

17#
发表于 2008-2-13 19:45 | 只看该作者
原帖由 shu0202 于 2008-2-13 19:26 发表
标量单元运算部分比矢量单元简单得多,因此提升频率也容易得多。G80/G92运算部分在全部晶体管中所占的比利是NV历史上最低的,这对控制功耗和发热量有好处。
R700不是应该大大增加内部平行度吗?这要看怎么改变了。
...

1D scalar x128  和 4D SIMD  x32  哪个成本更低?
ALU部分都不会很复杂 除了SFU比较复杂以外
提升频率和ALU是scalar还是Vector没有什么关系。。。 其实现在许多玩CUDA的人已经怀疑G80的低层其实还是SIMD 比较有意思 只是外部特征和128 X 1D scalar无异
本来那个就是不是重点 整个控制和数据管理是要点
R700基本上 加大内部平行度 基本也不会有什么突破 因为Shader U肯定也增加了 总体平行度不会提高多少
不增加Shader Unit  搞倍频Shader 那几乎是是把Thread manage 和整个Shader core的构架换掉 那就是大动作了 基本等于推掉r600 重新来过
r700不可能走这条路

[ 本帖最后由 ayanamei 于 2008-2-13 19:47 编辑 ]
回复 支持 反对

使用道具 举报

18#
 楼主| 发表于 2008-2-13 20:35 | 只看该作者
我也认为R700不会搞倍频啊!但是ATi在R3XX时代就提出过倍频技术并购买过这方面的专利,应该说倍频一定是GPU发展的一个方向,但是ATi现有的架构设想很难和这项技术相融,否则ATi不会放着不用。
管线功能细化和数量增加到几十条以后控制和数据管理确实成了重中之重,他本来是为了提高效率的,但是设计不当居然成了提升效率的拦路虎。NV这方面确实让人吃惊,从G7X到G8X NV在这方面的进步简直就是从农牧社会一步跨进信息时代。
我一直认为NV还会回到SIMD的,现在的工艺和外围拖住了GPU的后腿。
回复 支持 反对

使用道具 举报

19#
发表于 2008-2-13 21:18 | 只看该作者
看半天我这个外行都看懂了

增加shader单元可以吃更多指令,增加shader频率也可以吃更多指令;前提是thread管理部分增加晶体管提高指令吞吐量。

所以问题就是增加shader单元,thread部分一样也要加强,不过相对4D+1D,16管线1组的r600来说这个代价很小,增加1组thread资源可以带动16(x5D)个shader单元。

而g80的1d scalar需要的thread资源非常变态(16x1D)。对于g80构架来说,增加shader单元本身的晶体管不算什么(运算单元占晶体管份额空前小),但连带的控制单元代价太高了。为了弥补这个成本——极大提升shader频率是一个办法;继续增加额外的1d scalar单元是另外1个。哪个节省晶体管资源呢?答案很明显——频率提升不需要增加晶体管。

所以,并不是shader频率提升导致thread资源增加,而是thread资源太丰富导致需要靠增加频率的办法去提高效率,g80的128X1d scalar及相应的thread部分的晶体管规模已经是极限。

如果amd如果极大地改进了thread性能,也完全可以提升shader频率。同样管理16管线的构架,拿到rv770上去改1改,管4条管线,shader频率就可以提升4倍。
==
无论如何,增加频率都是成本最低的方式。在工艺允许的条件下,尽量提升频率是人人都要去做的。运算单元的频率提升比控制单元容易,这个在cpu上早几百年就得到印证了,nv不过拿过来用在gpu上而已。amd如果不这么干才是傻子。别的不说,如果可能的话,r670的shader砍1半,频率提升2.5倍,别的资源不变,性能恐怕是不降反升——当然实际上这么做还有大量优化要搞,例如5D shader的co-issue问题。但至少这么干在运算资源上,在理论的峰值性能上是肯定提升的。
回复 支持 反对

使用道具 举报

20#
发表于 2008-2-13 21:20 | 只看该作者
:wacko: :wacko: 还是蛮多误解的...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-12-17 04:51

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表