|
原帖由 itany 于 2008-4-4 02:16 发表 ![]()
你说的没错,复制和竞争性共享是不会照成负面影响,但是静态平分无疑将减少一个线程的资源数量
以前P4的时候也是存在开启HT后性能下降的情况的,只不过从整体上来说,核心数量比较稀缺,两个逻辑核心带来的利大 ...
像buffer这些资源,就算全给一个线程占了也很难说对性能有什么提高。一味挖大指令窗就能提高单线程的ILP吗?何况HT完全可以对一条线程利用所有需要的资源来完成单线程工作,第二条线程操作系统或程序本来就应该先分配给闲置的物理核心,当没有闲置的物理核心可用时才在逻辑核心上进行分配。如果线程数量超过了物理核心数目,那没有SMT技术的CPU对多出来的线程本来就不能有效处理了,效果肯定要比有SMT技术的差。
至于HT技术的性能下降,据我所知应该都是由于线程同步引起的。有些同步加锁技术是让某个核心或CPU不断侦听获取共享资源的锁,拿不到就以死循环空耗CPU资源,这也是Intel给出的典型案例。如果是两个资源完全独立的物理核心当然没什么问题,可上到SMT上,空耗线程就会在某一时刻完全吃掉CPU资源,而这其中一部分完全可以用来给加锁线程执行代码的,使用OS本身的同步对象应该就可以避免这个问题了。
[ 本帖最后由 FENG950 于 2008-4-4 02:51 编辑 ] |
|