POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: hunguqi
打印 上一主题 下一主题

我觉得Intel和Amd能够将任何单线程的程序,都可以用多核同时运行加速处理。欢迎探讨。

[复制链接]
81#
发表于 2011-9-1 18:45 | 只看该作者
不过我觉得楼主的想法是好的,非常值得鼓励的,很多时候的突破都是依赖于这种创意。

只是老外比我们先进太多了,我们想到的东西,大多都是他们10-20年前都已经想到了。
回复 支持 反对

使用道具 举报

82#
发表于 2011-9-1 18:47 | 只看该作者
largewc 发表于 2011-9-1 00:14
睿频跟反超线程完全没关系……
睿频指的是动态超频技术而已,功耗一定的情况下,可以单核更高频率或者多 ...

反超线程 就是 今天的睿频

反超线程当年是幻想多核共同处理一个单任务程序;但根据程序编写的原理,super PI这类单任务程序上这是根本不可能的,继而诞生了睿频,以关闭空闲核心所降低的TDP来提高单核心的频率以达到让单线程任务也受益的目标。
回复 支持 反对

使用道具 举报

83#
发表于 2011-9-1 18:52 | 只看该作者
反超线程就我的理解看来,是在分支运算的时候,两个并发支路由两个核心来分别执行,这样无论丢弃哪个,都能保证一个是正确的,而不是用算法近似取一个,这样就可以大多数忽视分支的损失了。

但是我觉得也很有限,因为现在cpu计算的深度问题,单流水线长度内往往碰到的不是一个分支运算,而是若干个,这样仍然没有太高的提升空间。

反超线程应该是一个被废弃的技术吧,睿频确实是是因为反超线程的另外思路,但是应该不是同一个东西,睿频主要依赖的还是动态超频技术,是把cpu功率由多核全部加载到单个核心来超频单个核心,从而提高运行速度的。
回复 支持 反对

使用道具 举报

84#
发表于 2011-9-1 18:56 | 只看该作者
-------------------------------
AMD已经在双核心Socket AM2处理器当中内置了回击Conroe处理器的杀手锏,即反超线程技术(Reverse-HyperThreading)。用户可以通过升级处理器驱动程序和主板BIOS来激活反超线程技术,介时微软有可能为反超线程技术发布
操作系统补丁。AMD反超线程技术可以作动态调整,即在需要的情况下,开启反超线程,双核处理器被系统视作单核心处理器。

  如此双核处理器的两颗核心可以共同处理一个任务,采用该技术后的AM2处理器每个时钟周期可以处理6条指令,完成计算之后又可以恢复成双核心。
-------------------------------------------------


找到之前的一个新闻,如果我没记错,P4是三并发的,同时代的AMD也是三并发的,所以反超线程就是六并发的,也就是楼主说的,六个核心同时加速单个程序

但是早就证明了,一旦超过4并发,除了费电外,根本没什么性能提升,因为分支错误太多了,所以这个技术并不可行
回复 支持 反对

使用道具 举报

85#
发表于 2011-9-1 19:01 | 只看该作者
没考虑任务同步性,没考虑跨CPU延迟,没考虑广播机制,没考虑……先不说这些你完全没考虑过的细节,我们直接面对这问题的本质吧。

任务的无损拆解和网格化。

请自行股沟败毒……

图灵奖已经连续给搞这个的人了,但是从数学层面上来讲这依旧是个进步缓慢到近乎无解的问题。

所以,都歇了吧,说说容易,做起来没基础的。
回复 支持 反对

使用道具 举报

86#
发表于 2011-9-1 19:03 | 只看该作者
换个说法,其实就是你压根没明白问题到底出在哪里,就这么简单。
大家都这么忙,没人有闲心专门跑来无缘无故笑话你的楼主
回复 支持 反对

使用道具 举报

87#
发表于 2011-9-1 19:04 | 只看该作者
mooncocoon 发表于 2011-9-1 19:03
换个说法,其实就是你压根没明白问题到底出在哪里,就这么简单。
大家都这么忙,没人有闲心专门跑来无缘无 ...

楼主的思路是正确的,这个东西是早就存在的,楼主的方案也是很接近现在cpu的设计的
回复 支持 反对

使用道具 举报

88#
发表于 2011-9-1 19:05 | 只看该作者
-------------------------------------

整数性能应该是Pentium 4的强项。天才的双频ALU设计,快速执行引擎,尤其考虑到126个upos的动态指令窗口和新访问算法的L1数据Cache,是迄今最强有力的整数执行引擎。然而,由于追踪Cache每时钟周期仅能发射3条指令,限制了Pentium 4每时钟周期仅能支撑3条整数指令。在运行单纯整数测试的CPUmark评价Pentiun 4时,所有的整数处理能力似乎都消失了。
----------------------------------

百度搜索,P4确实是三并发的,我没有太优化过P4程序,但是P1-P3的UV双并发还是比较熟悉的。
回复 支持 反对

使用道具 举报

89#
发表于 2011-9-1 19:07 | 只看该作者
核心问题就是,这个程序中,是微小计算独立,还是整体计算集成。如果是微小计算独立,自然可以满负荷。
回复 支持 反对

使用道具 举报

90#
发表于 2011-9-1 19:10 | 只看该作者
largewc 发表于 2011-9-1 19:04
楼主的思路是正确的,这个东西是早就存在的,楼主的方案也是很接近现在cpu的设计的

{sweat:]你跟楼主一个路数,都没明白问题到底出在哪里以及哪个层面上。
用瑞士军刀切原子核,就是楼主想做的事情
回复 支持 反对

使用道具 举报

91#
发表于 2011-9-1 19:14 | 只看该作者
mooncocoon 发表于 2011-9-1 19:10
你跟楼主一个路数,都没明白问题到底出在哪里以及哪个层面上。
用瑞士军刀切原子核,就是楼主想 ...

那你说具体一些,我想听听?
回复 支持 反对

使用道具 举报

92#
发表于 2011-9-1 19:21 | 只看该作者
cpu的多管道本质就是多核,多运算管道,只是没有独立的寄存器而已,奔腾一就是依赖这个东西傲视群雄的。
回复 支持 反对

使用道具 举报

93#
发表于 2011-9-1 19:22 | 只看该作者
卧槽火了,不必为了任务管理器那个图表纠结吧,在有HT的情况下,这个可是很好玩的哦。
任务管理器显示是两个50%,就是两个逻辑核心分工干了一半?显然这只是绘图方式问题,并不是什么厂家限制之类,WINDOWS只是告诉你CPU的大概负载,而不是每个逻辑核心的具体负载。正如你永远达不到绝对的满负荷一样,那样的话你会彻底卡死。。。
回复 支持 反对

使用道具 举报

94#
发表于 2011-9-1 19:23 | 只看该作者
本帖最后由 mooncocoon 于 2011-9-1 19:26 编辑
largewc 发表于 2011-9-1 19:14
那你说具体一些,我想听听?


任务的无损拆解和网格化。

想要明白我下面在说什么,请先自行股沟败毒上面这个简单的黑字,都给了路了还要做伸手党,而且相隔不到10楼却需要第二次强调这个,真囧……

对绝大部分单任务的无损拆解就像切割原子核,虽然并不是不可能,但需要天量的边际条件和辅助数学过程来保证回溯以及结果组合的正确性。
而你俩现在要干的事情,就是把这种单任务用4,5行不知所云的语句分割开来。

我在说得直白点,你想让很多个运算器一起计算“1+1=?”,然后却不考虑或者说不知道这个任务需要以及怎么拆分成很多个能够回溯同时能够组合结果的过程。


现代处理器的多线程并行处理,针对的是多个并行的不可拆分的单任务的并行执行,跟楼主所说的东西根本就没在一个层面上。而superpi所使用的这么典型的不可拆分算法,就这么被他给凌迟了……
回复 支持 反对

使用道具 举报

95#
发表于 2011-9-1 19:28 | 只看该作者
whhwhhwhh 发表于 2011-8-31 23:15
其实还是可以把单线程变多线程的,当有核 心没事做时, 可以假设前一步得到了某一个结果,再按这个结果进行下 ...

这类分支论断的事情只有向GPU这类有巨型并行计算资源的时候才可能(目前应该只有Fermi可以)。CPU不可能那么来,太浪费资源了。
回复 支持 反对

使用道具 举报

cellwing 该用户已被删除
96#
发表于 2011-9-1 21:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

kuge801 该用户已被删除
97#
发表于 2011-9-1 21:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

kuge801 该用户已被删除
98#
发表于 2011-9-1 21:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

99#
 楼主| 发表于 2011-9-1 22:06 | 只看该作者
kuge801 发表于 2011-9-1 21:25
主要是楼主的标题嚣张了点

{titter:]你的头像把楼主我吸引了回来,
回复 支持 反对

使用道具 举报

100#
发表于 2011-9-2 02:13 | 只看该作者
本帖最后由 largewc 于 2011-9-2 04:25 编辑
mooncocoon 发表于 2011-9-1 19:23
任务的无损拆解和网格化。

想要明白我下面在说什么,请先自行股沟败毒上面这个简单的黑字,都给了路 ...


I服了U,我说了那么多,看来你完全没看懂啊,你以为单核CPU就是在单个线程每个周期顺序执行一个指令啊,从奔腾一开始,CPU就可以在一个线程内,一个周期运行两条指令,这个其实就是相当于双核了,这是基于单核顺序执行外,额外增加了一套计算单元,明白了吗。

现在讲的单核,基本上指的是已经经过若干路计算单元加速过的单核,跟楼主提出的原理是一样的。

比如说
mov eax,0
mov ebx,0
add eax,ebx

mov eax
mov ebx
在奔腾一上,可以同时执行,因为他们互相没有关联。


由于有大量的上下文关联存在,所以双运算单元加速单线程,并不能按照倍数关系,所以大概双计算单元可以加速60%-80%附近,这也是为什么当初奔腾一 133可以顶上其他家200的,因为实际上,它相当于两个133运算单元在加速单个线程程序,大概相当于200m附近了。


现在之所以不再增加计算单元,而改成做多核,实际上是无奈的,因为超过四套运算单元后,同时计算四个,之间的相关性大大提高,反而没有性能提升,所以奔四实际上有四套运算单元,但是加速单线程,实际上只允许三条同时运行,关闭了一条。除了使用SIMD以后,可以用满计算单元,或者利用超线程来用满所有运算单元。

但是你不能否认,楼主的设想没问题的,多套运算单元确实可以加速单线程程序。


不知道你是做什么的,我是游戏这个行业的,工作了十多年了,经历过汇编级别优化,对CPU运算的一些系列略有了解。

多核是因为多运算单元已经到瓶颈,在增加计算单元,已经不能加速单线程程序以后,才补充了完整的寄存器和内存控制单元,做成多核并行运行多任务的,并不是不能加速单任务,我说的够明白了吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 15:45

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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