mooncocoon 发表于 2012-5-12 01:59 ![]()
怎么说呢……说老实话,我真的不知道该怎么说了……
曲线平行的话那说明相对差距在变小。所以两辆车以一 ...
咱一个一个说:
首先你所谓的曲线, 理论上来说不可能平行, 因为起点在0mhz, 起始性能都是0. 但是你只是测了某个频率起步的数据 (在tahiti那篇文章中是500mhz), 因为带宽的瓶颈, 理论上说随着核心频率的增长, 实际性能增长的斜率会变小比如这样, 红色是理论增长 (线性), 蓝色是实际增长 (受限于带宽, 其实和什么周边资源(你所谓的 thread arbiter等等) 没关系, 因为周边资源的工作频率和核心是同步的)
现在建一个简单模型考虑你说的问题, gpu计算分为运算和存储两个部分, 读取速度依赖于带宽和显存延迟, 运算 (包括各种算数, 逻辑运算, 线程调度) 依赖于核心能力, 在位宽等条件相同的情况下, 其实分别对应于显存频率和核心频率, 如果你把显存频率调成一样的, 那么带宽就确定了.
可以假定核心计算速度是a (大致理解为核心频率*核心计算单元及其周边资源的规模), 带宽是b.
那么实际工作中由于需要经过存储->计算->存储这样反复的过程. 计算能力相当于是 "串联" 的.
也就是说总的计算速度是1/(a+b), 如果去调整核心频率, 固定带宽b=1, 那么a=k/x, 其中k是一个参数, 相当于核心资源的规模的倒数, x就是核心频率 (与核心速度成反比), 这样总的计算速度就变成1/(k/x+1)=x/(x+k),
你考虑的相当于是两种k值不同的情况作对比, 为了简单起见, 取k=1, k=2作对比画图看看 (相当于是一种的sp数是另一种的一半)
第一种情形, 核心频率较小的情况下, 增长基本线性:
第二种情形: 核心频率足够大的时候, 受限于带宽瓶颈, 总速度无法进一步增长
你所说的 "平行" 实际上就是第二种中间的那一段, 这是差距在变小的预兆. 后来就会慢慢接近.
受制于带宽因素, 即使你把核心频率调成+∞, 那么7950和7970的测试成绩也会稳定在一个相同的数值上, 不会去到+∞.
还有一点很离谱的是你的数据中居然能够出现核心频率上升但是测试性能下降的情况, 你居然不去怀疑本身数据记录错误以及软件设置错误就贴出来.
比较性能从来都是看相对性能, 用比值来确定的, 平行增长说明较弱的那个相对增幅就快, 这么简单的道理你就是不接受, 让人怎么说? 你连点基本的数学常识都没有, 就学别人搞那些专业的测试, 民科披上华丽的外衣还是民科, 说了还不听.
|