POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 13095|回复: 47
打印 上一主题 下一主题

这几张图是否说明Win7会优先使用8框超线程中的4个原生线程呢?

[复制链接]
跳转到指定楼层
1#
发表于 2012-9-24 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几张图是否说明Win7/64会优先使用8框超线程中的4个原生线程呢?







感觉,Win7/64的线程调度确实很智能的说……


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
发表于 2012-9-24 23:48 来自手机 | 只看该作者
你才知道,i3跟奔腾,有无超线程天差地别,i5跟i7就那啥了
回复 支持 反对

使用道具 举报

3#
发表于 2012-9-25 00:21 来自手机 | 只看该作者
对于超线程,没有原生线程之说啦,都是平等地位
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2012-9-25 00:39 | 只看该作者
kinno 发表于 2012-9-25 00:21
对于超线程,没有原生线程之说啦,都是平等地位

这个确实如此,看最后一个截图2、4、6、7满载而不是2、4、6、8满载就可以证明你的观点。
但是,低负载时Win7优先启动4个线程,而不是让8个线程平均起来工作,应该是有它的道理的。如果8线程的U只使用四个的话,那就接近于不启用超线程的状态了,Win7在非满载的情况下酌情启动8个线程当中的4个,而让另外4个线程接近0负载,应该就是为了避免超线程拖累系统效能的情况发生。因此,Win7确实为超线程做了一定的优化,至少,在一定程度上努力的去避免超线程带来的负面影响了,这一点要比早期的XP系统还是强很多的……
回复 支持 反对

使用道具 举报

5#
发表于 2012-9-25 06:59 | 只看该作者
应该说是系统会优先使用分属不同物理核心的线程,同一个物理核心里的两个线程是平行平等的,01表示第一个物理核心的线程,至于系统优先用0还是1那是系统随机决定的,而且win7系统会在同一个物理核心的2个线程之间随机切换,win8就不会
回复 支持 反对

使用道具 举报

6#
发表于 2012-9-25 07:32 | 只看该作者
i387dx 发表于 2012-9-25 00:39
这个确实如此,看最后一个截图2、4、6、7满载而不是2、4、6、8满载就可以证明你的观点。
但是,低负载时 ...

你就算开8个线程,8个“核心”也不可能平等


回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-9-25 07:52 来自手机 | 只看该作者
kakaku.bj.cn 发表于 2012-9-25 07:32  你就算开8个线程,8个“核心”也不可能平等

个人理解,kinno朋友说的平等是地位或者机会均等的意思。就是说,让0号逻辑CPU满载和让1号逻辑CPU满载得到的计算能力相当,并不是说0号就比1号强。同理,如果系统需要让四个逻辑U满载,可能会随机在0246和1357四对中挑四个出来,结果都是一样的。
回复 支持 反对

使用道具 举报

8#
发表于 2012-9-25 08:36 | 只看该作者
i387dx 发表于 2012-9-25 00:39
这个确实如此,看最后一个截图2、4、6、7满载而不是2、4、6、8满载就可以证明你的观点。
但是,低负载时 ...

同意,线程调度在4线程需要工作时,应该是优先安排4个核心的4个线程来工作,避免任务过度集中于一个核心的情况
回复 支持 反对

使用道具 举报

9#
发表于 2012-9-26 09:43 | 只看该作者
本帖最后由 kakaku.bj.cn 于 2012-9-26 09:47 编辑
i387dx 发表于 2012-9-25 07:52
个人理解,kinno朋友说的平等是地位或者机会均等的意思。就是说,让0号逻辑CPU满载和让1号逻辑CPU满载得到 ...

总之,闲置状态下0和1有相同的能力
但是在0满载的时候,1的能力就非常有限了,甚至什么也做不了

回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-9-26 13:23 | 只看该作者
kakaku.bj.cn 发表于 2012-9-26 09:43
总之,闲置状态下0和1有相同的能力
但是在0满载的时候,1的能力就非常有限了,甚至什么也做不了

对,这就叫机会均等,既它们都有同样的机会来调用这些同样的资源。但是资源总量是有限的,谁先把资源占了,另一个就没辙了……
但是,实际上,即使抢先的那个把资源全占了,另一个仍然还能调出30%左右的资源来,原因就是标准的冯诺依曼式计算机受其运行方式的限制,单一线程即使完全满载也无法用尽全部的计算资源,还有一部分浪费掉了,而超线程技术就是把这些额外的资源利用起来的技术……
回复 支持 反对

使用道具 举报

11#
发表于 2012-9-26 13:51 | 只看该作者
i387dx 发表于 2012-9-26 13:23
对,这就叫机会均等,既它们都有同样的机会来调用这些同样的资源。但是资源总量是有限的,谁先把资源占了 ...

。。。这和冯若依曼有啥关系你在扯啥。。。
30%只是个统计值,ht能分出来的只有流水线,大致上在很好地支持多线程的程序里,平均能达到30%左右的提升就已经符合ht的设计初衷了,30%是这么来的。
如果碰到不友好的程序,提升0%很正常,即ht核心资源瓶颈无法运行

回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2012-9-26 14:03 | 只看该作者
kakaku.bj.cn 发表于 2012-9-26 13:51
。。。这和冯若依曼有啥关系你在扯啥。。。
30%只是个统计值,ht能分出来的只有流水线,大致上在很好地支 ...

我的意思是说,现在的CPU在仅有一个线程且按照标准的存储程序工作原理来工作时,多少总有一些流水线不能完全被利用。而超线程技术是为了把那一部分实用率不高的流水线利用起来而开发的技术。不知道我这样说是不是在扯,呵呵,如果你还是认为我在扯,那我就没话说了……
回复 支持 反对

使用道具 举报

13#
发表于 2012-9-26 14:18 | 只看该作者
ibt(linpack),这个在ht上有30%的性能下降,比如4c8t的,你跑8t、4t测试性能都很差,关闭ht,跑4t就很高。差距能有30%。

这是开ht跑8t、4t的不同,可见8t是100%占用,4t是50%。但是4t的核心分配是不同的(或许切换频繁造成性能下降)。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2012-9-26 14:38 | 只看该作者
bugbear 发表于 2012-9-26 14:18
ibt(linpack),这个在ht上有30%的性能下降,比如4c8t的,你跑8t、4t测试性能都很差,关闭ht,跑4t就很高。 ...

个人感觉这个应该就是频繁切换造成的性能下降。个人猜测在Win7下跑同样测试,性能下降的程度可能会低一些;在Win8下跑性能下降的程度会更轻一些。Win7的CPU调度器比XP的要智能一点儿,知道优先满足物理核心的需要;而Win8的更智能,同一物理核心的两个逻辑U之间的切换更少……
回复 支持 反对

使用道具 举报

15#
发表于 2012-9-26 14:41 | 只看该作者
i387dx 发表于 2012-9-26 14:38
个人感觉这个应该就是频繁切换造成的性能下降。个人猜测在Win7下跑同样测试,性能下降的程度可能会低一些 ...

我是在win7 x64下跑的

回复 支持 反对

使用道具 举报

16#
发表于 2012-9-26 15:44 | 只看该作者
bugbear 发表于 2012-9-26 14:41
我是在win7 x64下跑的

理论上ht不提升性能很正常,但性能会下降是一种可以修正的bug,只是理论上


回复 支持 反对

使用道具 举报

17#
 楼主| 发表于 2012-9-26 16:38 | 只看该作者
bugbear 发表于 2012-9-26 14:41
我是在win7 x64下跑的

个人感觉,操作系统的CPU调度器对超线程的优化程度也是很重要的。Win7下,低负载应用时,CPU调度器会尽量把负载匀给4个物理核,也就是说,经常会看到其中4个逻辑U干活而另外4个逻辑U闲着的情况,这样就在一定程度上避免了来回切换或者一个核心上的两个逻辑U争抢造成的性能损失。而XP下面,基本上是8个逻辑CPU都有负载的,这样肯定会增加线程切换和资源争抢造成的性能损失的。另外,据说Win8的CPU调度器对超线程做了进一步优化,而且对按摩店的推推机所用的那种蛋疼的“8核4模块”结构也做了优化,呵呵,过几天装个Win8试试,尝尝新鲜的说……
回复 支持 反对

使用道具 举报

18#
发表于 2012-9-26 17:04 | 只看该作者
kakaku.bj.cn 发表于 2012-9-26 15:44
理论上ht不提升性能很正常,但性能会下降是一种可以修正的bug,只是理论上

ibt(linpack)在4c8t上跑8t性能下降30%充分说明了ht的弱点

理论上8t都可以工作,不过因为linpack浮点数负载太大,结果8t互相绊脚了。
回复 支持 反对

使用道具 举报

19#
发表于 2012-9-26 17:06 | 只看该作者
i387dx 发表于 2012-9-26 16:38
个人感觉,操作系统的CPU调度器对超线程的优化程度也是很重要的。Win7下,低负载应用时,CPU调度器会尽量 ...

不管是多线程还是ht(超线程),最后还得靠本身软件优化才行。光靠操作系统是不行的。

比如老版软件在新系统上也不会有性能提升...

你看到的4t在4c8t上分配四个核心工作而不是集中在2个核心除了性能考虑,另外就是温度(平衡)、功耗的考虑了。
回复 支持 反对

使用道具 举报

20#
发表于 2012-9-27 00:18 | 只看该作者
bugbear 发表于 2012-9-26 14:18
ibt(linpack),这个在ht上有30%的性能下降,比如4c8t的,你跑8t、4t测试性能都很差,关闭ht,跑4t就很高。 ...

Linpack在Win8下4t,8t差距比较小了,只有8%左右





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-7 17:54

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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