POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

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

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

[复制链接]
61#
 楼主| 发表于 2011-8-31 23:09 | 只看该作者
楼上的讨论就讨论,不必上升到人身攻击的高度吧。
回复 支持 反对

使用道具 举报

62#
发表于 2011-8-31 23:15 | 只看该作者
xmasjacky 发表于 2011-8-31 19:10
或许这个例子举得不够贴切,不过LZ的理解能力还有待提高。
给你举这么个例子吧:
有一道题目,得出答案 ...

其实还是可以把单线程变多线程的,当有核 心没事做时, 可以假设前一步得到了某一个结果,再按这个结果进行下一步运算,当上一步算出的正好是这个假设的结果时,当前核心的运算有效,否则当前核心白算徒浪费电而矣,反正闲着也是闲着.
回复 支持 反对

使用道具 举报

63#
发表于 2011-8-31 23:21 | 只看该作者
xinrenaaa 发表于 2011-8-31 22:54
楼主还是去学学基础知识再来吧,或者等你开发出实质性的程序再来发表你的高见。想想为什么每次发明永动机的 ...

LZ的想法并没什么 错的,只是目前的硬件实施不了罢了,当你的电脑有成千上万的核心空闲时完全可以选 用合适的算法,把单线程运算的复杂度降低几个数量等级
回复 支持 反对

使用道具 举报

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

如果是布尔值的话还能保证50%的命中率
如果是双精度浮点值,还是放弃吧
回复 支持 反对

使用道具 举报

65#
发表于 2011-8-31 23:42 | 只看该作者
楼主说的就是指令发射数吧,这在奔腾时代就支持了,奔腾开始就有两条流水线了,这两条流水线类似于你说的双核加速单核任务吧。

多通道发射早就被用滥了,这是90年代就有的技术了,通道数不是越多越好,目前也没有提升的空间了,楼主明白了哈。

Pentium有U、V两条流水线,意味着就是两条可以同时执行。目前大多cpu都是2-4条流水线之间,再高,因为运行无法预测分支,而造成了运算浪费,所以没有意义了。

同样还有单条流水线的深度问题,奔4也证明了,太深的流水线反而会降速很多。



双核运行单核程序,应该跟多发射没什么区别,所以楼主不用得意了。
回复 支持 反对

使用道具 举报

66#
发表于 2011-8-31 23:43 | 只看该作者
所以我选择16,楼主你错了,这个东西早就有了
回复 支持 反对

使用道具 举报

67#
 楼主| 发表于 2011-8-31 23:44 | 只看该作者
楼上指的流水线就是传说中的超线程吗?
回复 支持 反对

使用道具 举报

68#
发表于 2011-8-31 23:47 | 只看该作者
本帖最后由 largewc 于 2011-8-31 23:47 编辑

去看看什么叫做乱序优化,现在cpu自身就可以做一些乱序调整了,90年代你写过汇编优化,就会了解,乱序优化对于多发射有多大的提高空间。

乱序优化就是解决一些冲突,比如说
int a = c + d;
int b = c - d;
int e = 0;
int f = 0;

乱序后,变成了
u通道
int e = 0;
int a = c + d;

v通道
int f = 0;
int b = c - d;


这东西都发展了几十年了
回复 支持 反对

使用道具 举报

69#
发表于 2011-8-31 23:49 | 只看该作者
不过这种冲突仍然会让cpu有丢弃一个通道运行结果的可能,这就是分支预测的损失了。
回复 支持 反对

使用道具 举报

70#
发表于 2011-8-31 23:52 | 只看该作者
流水线不是超线程,超线程说的是一套运行单元,两套寄存器而已

大多数的情况下,cpu的运算性能都远远好于内存存取,大部分程序的瓶颈都在内存读写上,这时候cpu都有一定的空闲,那么怎么办呢,再加入一套寄存器,利用空闲时间的计算,来模拟出来多核。还不影响原来的计算结果。

所以超线程只有10%-20%性能提升,对于优化得很好,内存和cpu占用比较均衡的程序而言,超线程就没有优化空间。
回复 支持 反对

使用道具 举报

71#
发表于 2011-8-31 23:56 | 只看该作者
xmasjacky 发表于 2011-8-31 23:40
如果是布尔值的话还能保证50%的命中率
如果是双精度浮点值,还是放弃吧

但对每一bit来说你必然有1/2的机会猜对.对64位的寄存嚣,当你有2的64次方个核心时你必然能猜对.当然不是一定要有这么多核 心,只要你有足够多的核 心时,你可以通过选 择更合理的算法来提高你猜 对的可能性.
回复 支持 反对

使用道具 举报

72#
发表于 2011-9-1 00:00 | 只看该作者
hunguqi 发表于 2011-8-31 23:44
楼上指的流水线就是传说中的超线程吗?

amd的推土机单核心两套运算单元是什么意思呢,跟超线程有什么区别

是因为现在cpu中,整数单元只占据5%面积,那么除了加入一套寄存器,再加入另外一套整数单元,对于大部分程序而言,这东西就是双核了。而且amd的浮点指令可以拆成两个128位单元独立运行,那么对于99%的程序而言,它就是真实的双核了。

但是它的面积只加了5%,能耗也增加有限,所以跟真正的双核比,还是有很大意义的。

最后简单来说,amd的两个运算单元,就是比超线程多了5%面积的整数模块,还有就是浮点不同于intel的256位单运算单元,而是两个128位的双运算单元,也支持合并成一个256位运算单元,为avx指令做处理(也就意味着avx优化过的浮点程序,推土机是没有双核效果的,跟intel单元一样了,不过这种程序非常少)
回复 支持 反对

使用道具 举报

73#
发表于 2011-9-1 00:02 | 只看该作者
推土机或者apu都是为了未来的平衡应用的,不是用来做最高端机的,不过推土机这种用核心数来加速的做法在桌面未必占优,因为支持的程序并不多,虽然它的多核很巧妙,功耗也很好。

不过我看好这东西在平板,轻薄笔记本或者游戏机领域的用途
回复 支持 反对

使用道具 举报

74#
发表于 2011-9-1 00:14 | 只看该作者
fshx 发表于 2011-8-30 19:29
技术上无法实现,否则 “反超线程”早就出了,现在的 睿频 实际上就是当年吹的 反超线程

实现这个必须程 ...

睿频跟反超线程完全没关系……
睿频指的是动态超频技术而已,功耗一定的情况下,可以单核更高频率或者多核更低频率。

反超线程实话说,我没看懂,我不理解这个东西究竟能用在什么地方。
回复 支持 反对

使用道具 举报

75#
发表于 2011-9-1 00:27 | 只看该作者
Airhouse 发表于 2011-9-1 00:11
你说的这个叫Branch Prediction,几乎现代所有的处理器都有。但是问题就在于分支预测失败后惩罚也是相当 ...

本来就是什对LZ的问题的一个极端的列子,但在爆力密码破解和天气预报这些对时间极端敏感的任务时,选 取一个合理的付出还是可行的.就像我们去笔算1+2+3+.....+N,显然用极限很好做,但对高频的CPU来说每个加一遍很简单.对现在的CPU来说分支预测的命中率对运算的速度影很大, 但对MANYCORE
来说命中率稍低一点也是可以接收的,当然命中率是越高越好的.
回复 支持 反对

使用道具 举报

76#
发表于 2011-9-1 00:31 | 只看该作者
hunguqi 发表于 2011-8-31 23:44
楼上指的流水线就是传说中的超线程吗?

流水线应该是一个内存操作和运算脱离的技术,因为内存往往远慢于cpu指令周期,让内存读取可以分离于内存操作,并且可以并行处理,可以大幅度加速程序运行速度,不然二者就存在互等的状态了。流水线长度应该是可以并行读取和运行的数量吧(具体我也不是太懂,就我的理解),流水线太长的话,内存也会有大量的无用资源,主要是因为跳转指令,原先预读的内存会因为跳转全部废弃。

这也是为什么奔四需要那么多的缓存,因为如果数量不够,大量的废弃的内存读取会让缓存空间瞬间撑满,而当时的amd的u就不需要,因为没有采用长流水线设计。
回复 支持 反对

使用道具 举报

77#
发表于 2011-9-1 09:42 | 只看该作者
whhwhhwhh 发表于 2011-8-31 23:56
但对每一bit来说你必然有1/2的机会猜对.对64位的寄存嚣,当你有2的64次方个核心时你必然能猜对.当然不是一 ...

2的64次方这样一个天文数字的概率还不如把这些核心全部关闭只需把1个核心的频率提升100M就能轻松超越。当然目前Intel和Amd都是这么做的
回复 支持 反对

使用道具 举报

78#
发表于 2011-9-1 09:58 | 只看该作者
我投11,13,14,15{titter:]
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

反超线程 就是 今天的睿频

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-13 20:54

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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