POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

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

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

[复制链接]
101#
发表于 2011-9-2 02:33 | 只看该作者
intel新的指令集aux是32位的八路计算单元,但是具体细节我不太了解了,不知道intel允许单线程同时运行几条运行单元了,现在乱序优化编译器已经做得不错了,没必要自己优化了,所以很久不动了。
回复 支持 反对

使用道具 举报

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

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


不过你说的如果是无限无损多核模拟加速,比如说GPU数量级,几百到几千运算管道加速单线程的话,这是目前做不到的,这是一个长久课题,但是仅仅是楼主说的双核这种情况,其实就是cpu两个计算单元加速单任务程序,这个是从奔腾一时代就有的东西,而且双单元比单单元速度快得多得多,在增加运算单元加速单线程中,单路到双路是效果最明显的。



最后继续肯定一下楼主,技术改良就是这样逐渐来的,自己想到的点子,然后发现别人就是这样设计的,也是很有成就感的。保持习惯,总会有你想到,别人没想到的东西,呵呵
回复 支持 反对

使用道具 举报

103#
发表于 2011-9-2 07:08 | 只看该作者
hunguqi 发表于 2011-8-30 18:55
1楼,你没明白我的意思,我的意思是,为什么不支持多线程的软件,就不能用满2个核心。

是Intel故意为之, ...

因为硬件是为软件提供应用基础.

软件不支持硬件的全部功能.当然无法用完硬件的能力了.

当软件优化后.可以支持硬件所提供的全部功能了.就没你说的问题了.
回复 支持 反对

使用道具 举报

104#
发表于 2011-9-2 07:09 | 只看该作者
amx004 发表于 2011-8-30 22:21
楼主你昨天教导我说
barton2500+打开淘宝和在线视频网页 CPU占用率100% 10秒钟
2500K只需要0.5秒, 所以感 ...

老U在新系统的应用中.确实反应比较慢.

用过老机器的人都知道.
回复 支持 反对

使用道具 举报

105#
发表于 2011-9-2 07:13 | 只看该作者
{lol:]建议LZ再想个高级算法,将任务进一步分割,这样就可以交给GPU了……
回复 支持 反对

使用道具 举报

106#
发表于 2011-9-2 08:21 | 只看该作者
大家别等ivy和推土机了,还是等lz的超级cpu吧
回复 支持 反对

使用道具 举报

107#
发表于 2011-9-2 08:22 | 只看该作者
顺便把ati和nvidia两个不求上进的家伙也给干掉,造出超级gpu
回复 支持 反对

使用道具 举报

108#
发表于 2011-9-2 09:19 | 只看该作者
本帖最后由 mooncocoon 于 2011-9-2 09:23 编辑
largewc 发表于 2011-9-2 02:13
I服了U,我说了那么多,看来你完全没看懂啊,你以为单核CPU就是在单个线程每个周期顺序执行一个指令啊, ...


我都说了,你纠缠的层级跟楼主一样,根本就是错的,结果你好越走越深,然后却又在若干楼之后绕回来对问题的本质予以肯定……
我没啥力气吐槽了……

你们继续吧,我只能一击即脱了,闪……
回复 支持 反对

使用道具 举报

109#
发表于 2011-9-2 10:38 | 只看该作者
本帖最后由 largewc 于 2011-9-2 10:57 编辑
mooncocoon 发表于 2011-9-2 09:19
我都说了,你纠缠的层级跟楼主一样,根本就是错的,结果你好越走越深,然后却又在若干楼之后绕回来对问 ...


你根本具体说不了任何东西,不要总拿着去搜索之类去搪塞,你研究过CPU的核心指令吗,多核加速单线程程序的结果就是TMD现在的单核多运算管道,因为是单线程,必须共享寄存器,所以不叫做多核,但是在做SIMD操作的时候,他们也是独立寄存器,只是intel和amd并没有允许这样的多运算单元做多线程而已,只允许加速单线程程序而已。

再简单一点说
奔腾一是把两个核心用作一个线程,这个东西本定义为单核
奔腾四是把四个核心用作一个线程,这个东西也被定义为单核

新的支持AUX指令的CPU,是8个核心用作一个线程,这东西也是单核
而AMD推土机认为这个又浪费,所以做成了8个核心既可以作用一个线程,也允许拆解成两个线程,每个四核心加速单线程,这东西被叫做单模块双核

这个描述够简单了吧
回复 支持 反对

使用道具 举报

头像被屏蔽
110#
发表于 2011-9-2 10:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

111#
发表于 2011-9-2 11:01 | 只看该作者
//////////////////////////////////////////////////////////////////////////////
比如有一段程序如下:
语句1: int test1 = 0;
语句2: int test2 = 0;
语句3: test1 = test1 + 10;
语句4: test2 = test2 + 20;
语句5: int test3 = 0;
语句6: test3 = test1 + test2;

在核心1运行的语句1,3,同时可以在核心2运行的语句2,4,最后在核心1运行语句5,6
总体消耗的时间应该是4个cpu时间,比单线程运行节约了2个cpu时间。
我觉得Intel和Amd能够将任何单线程的程序,当做多线程程序来处理。欢迎各位探讨。
/////////////////////////////////////////////////////////////////////////////

写出上述的假设是因为楼主对计算机和程序的基本原理不清楚。除非在编程的时候显式用开了两个线程,分别在每个线程中运行那两组计算,否则单线程的程序绝不会把指令打乱到多个处理器上执行。乱序执行也是指在同一cpu上不严格按指令序列执行。系统的调度是以线程(进程)为单位的。就算是开了两个线程,也不一定会分摊到两个处理器上分别执行。这样看系统的负荷状况。因为除了你在运行的用户线程,系统自身还有进程需要运行。因为出自同一进程的两个线程数据亲和力高,所以一般系统倾向于在同一个core上执行。
回复 支持 反对

使用道具 举报

112#
发表于 2011-9-2 11:06 | 只看该作者
liwangli 发表于 2011-9-2 11:01
//////////////////////////////////////////////////////////////////////////////
比如有一段程序如下: ...

会同时执行的,所谓的单核CPU本身内部根本不是单核,现在大多是2-4个核心,同时可以运行2-4路

乱序并不是指的cpu不严格按顺序,指的是并发执行带来的上下文相关性阻塞,如果存在上下文相关,那么必然要有一个计算单元等另外一个计算单元,所以乱序优化就是要优化序列,让相邻的2-4个指令尽量无关,满足cpu的2-4通路加速单线程的需求而已。
回复 支持 反对

使用道具 举报

113#
发表于 2011-9-2 11:16 | 只看该作者
hunguqi 发表于 2011-8-30 18:55
1楼,你没明白我的意思,我的意思是,为什么不支持多线程的软件,就不能用满2个核心。

是Intel故意为之, ...

....你也太甜了。。。
首先两个核心各50%只是一个负载平衡的技术,实际上同一时间只有一个核心在运行
其次并行计算程序设计难度太大,主要是数据相关性,后一个运算要等待前一个运算的结果,这才是单线程的本质,核心多有什么用处?
回复 支持 反对

使用道具 举报

114#
发表于 2011-9-2 11:22 | 只看该作者
hunguqi 发表于 2011-8-30 19:44
10楼的说法有点问题,为什么每个核心都只能用50%,不能都用51%,这1%是谁限制的,怎么限制的,为什么限制的 ...

50%是人为平衡,实际上一个60%,另一个40%也一样的,只是两个核心的温度会不一样
这主要是靠时分实现的,就是说一段时间内单个核心只有50%时间在运行,
逻辑上你可以看成是单个核心100%,另一个核心0%
单线程就是指令必须顺序执行,下一个指令需要上一个指令运行的结果
这种情况下一个核心顺序执行所有指令和几个核心轮流执行指令有什么区别,需要的时间明显是一样的
回复 支持 反对

使用道具 举报

115#
发表于 2011-9-2 12:07 | 只看该作者
本帖最后由 reftin2 于 2011-9-2 12:07 编辑
largewc 发表于 2011-9-2 10:38
你根本具体说不了任何东西,不要总拿着去搜索之类去搪塞,你研究过CPU的核心指令吗,多核加速单线程程序 ...


你是认为cpu里除了alu基本就没别的东西了。多指令发射和超标量流水线一样和多处理器是等效的?这个结论也太欢乐吧。
回复 支持 反对

使用道具 举报

116#
发表于 2011-9-2 13:24 | 只看该作者
本帖最后由 largewc 于 2011-9-2 13:37 编辑
reftin2 发表于 2011-9-2 12:07
你是认为cpu里除了alu基本就没别的东西了。多指令发射和超标量流水线一样和多处理器是等效的?这个结论 ...


我说过了,只是不完整的核心而已,因为加速单线程要共享寄存器和内存,所以不算是多核,但是它就是多核加速单线程程序的实施化的产物而已。

HT和推土机的技术就是给了这玩意配套线程支持完整的东西,让它也能既当做单核也能当做多核处理了而已。
回复 支持 反对

使用道具 举报

117#
发表于 2011-9-2 13:48 | 只看该作者
本帖最后由 largewc 于 2011-9-2 14:33 编辑

运算单元不能被叫做一个核心,是因为不能对应一个线程而已,而HT出来以后,这个概念就模糊了,因为这玩意变成动态的了。

未来很可能会有一个技术,比如说GPU的指令集丰富度已经接近CPU了,可以每2到4运算管道合并成一个线程单元,对应单个线程,当做现在的CPU单核来用,也可以作为2-4个独立GPU管道来运行,这种技术不知道AMD或者Intel会叫它什么了。
回复 支持 反对

使用道具 举报

118#
发表于 2011-9-2 14:17 | 只看该作者
其实我也觉得算pi是完全可以并行化的。pi的算法无非是使用无穷级数的原理,对于一个极限和是pi的级数来说,使用泰勒定理很容易得到要去到100万位的精确位需要多少级级数,之后这前面的级数不就可以使用并行运算了吗,他们之间是相互独立的
回复 支持 反对

使用道具 举报

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

使用道具 举报

120#
发表于 2011-9-2 16:39 | 只看该作者
强帖留名,学习学习!
有交流才有进步啊!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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