PCEVA,PC绝对领域,探寻真正的电脑知识

标题: 转载个文章,关于SuperPi的 [打印本页]

作者: royalk    时间: 2011-5-21 01:54
标题: 转载个文章,关于SuperPi的
很多人都搞不清楚SuperPi到底是整数还是浮点运算,就连许多媒体编辑也是瞎说。我可以肯定的告诉大家,是整数运算。在网上看到了一篇文章,转给大家看看:

如果有人比较精通编程的,欢迎使用其它语言编写,让我们都来跑跑看会有什么结果。

原文链接:http://www.cppblog.com/hktk/archive/2009/09/24/97148.aspx

不可否认,SuperPi历史非常悠久,用的人之多,其他同类软件难以匹敌。但是对其有更多了解的人却很少,下面这些细节你可能都不知道:
1.SuperPi发布日期是平成7年(1996年)
2.[もとのプログラムはFORTRANで書かれていますが、それをC言語に書き直しました。
原计划使用Fortran编写,最后使用C语言编写
3.ガウス・ルジャンドルのアルゴリズムを採用しています
采用Gauss-Legendre算法
4.创造纪录使用的大型机器是HITAC S-3800/480(95年的配置啊,当时看来可是绝对地强悍啊):
 主記憶容量    :1792.75 MB (主内存)
 拡張記憶容量   :25120 MB  (扩展内存)


アルゴリズム   :ボールウェインの 4 次の収束アルゴリズム
使用算法:Borwein四次迭代算法

注意!和SuperPi所用的算法并不相同!!
许多人都知道,开发SuperPi的作者用大型机跑出了42亿位的纪录,且都认为使用是和SuperPI一样的算法,但是事实并非如此!大家都是在以讹传讹!


6.Pentium 66MHz计算104万位需要 1小时13分22秒
HITAC S-3800/480计算104万位大约只需要5秒!
Pentium 66MHz计算3355万位需要 105小时35分17秒
HITAC S-3800/480计算3355万位大约只需要4分钟!

注意:由于使用算法和软件环境不同,大型机和PC没有绝对地可比性,况且还是95年的大型机,但是其性能优异在一定程度上是可以肯定的。
硬件和软件的发展都是很惊人的,1986年9月,创造42亿位纪录者之一的金田用HITAC S-810/20计算了3355万Pi值,这在当时就是一个世界记录了!但同年10月他们就把记录提高一倍到6千7百万位。
我用QPI使用SuperPi的AGM算法计算3355万位,花了3分47秒就完成了,就算是体验到当年大型机的速度了吧


7.关于Gauss-Legendre算法和Borwein四次迭代算法,SuperPI也给出了详细的介绍:

SuperPI所采用的Gauss-Legendre算法:(PS:又叫做AGM算法(Arithmetic-Geometric Mean))
1.初值确定
    a = 1
        b = 1 / sqrt( 2 )
        t = 1 / 4
        x = 1

2. a与b都取同样的精度,反复迭代计算下式:
      y = a
        a = ( a + b ) / 2
        b = sqrt( b ・ y )
        t = t - x ・ ( y - a )^2
        x = 2 ・ x

3.a和b迭代到足够精度后,根据下式可以计算出PI值
        Pi = ( a + b )^2 / ( 4 ・ t )

这个公式的特点是每迭代一次将得到比前一次迭代高一倍的精度,所以要计算104万位(2的22次方),迭代19次就够了,这就是为什么SuperPi的计算为数都是以2的倍数递增,且计算时会出现一条条的纪录,这就是每一次迭代所花费的时间!理论上每次花费的时间都应该是完全相同的。比较可笑的是 SuperPi MOD版本的汉化翻译,把19次迭代翻译成需要重复计算19次,明显存在着理解上的错误。

计算42亿位的巨型机所使用的Borwein四次迭代式:
1.初值确定:
        a[0] = 6 - 4 ・ sqrt( 2 )
        y[0] = sqrt( 2 ) - 1
   
2. 反复计算下式,提高精度
        y[k+1] = { 1-(1-y[k]^4 )^(1/4) } / { 1+(1-y[k]^4)^(1/4) }
        a[k+1] = a[k]・(1+y[k+1])^4 - 2^(2・k+3)・y[k+1]・(1+y[k+1]+y[k+1]^2)
  
3.当a[n]和b[n]达到足够精度后,可以确定Pi值
        Pi = 1 / a[n]
所以可以看出,该公式首先算出其实是Pi的倒数,算出a[n]后,要做一个“巨型”的除法才能得到真正的Pi值

另一方面必须要认识到,SuperPi的编写年代久远,现在看来实现的效率非常低。Qpi即使用完全同样的算法,在我的E6300机器上只需3.37秒就完成了104万位的计算的19次迭代!
计算过程(QPI4.5版 使用-agm3参数,和SuperPi完全相同算法 E6300未超频 Vista环境 ):
Starting 1st  iteration, time : 0.13
Starting 2nd  iteration, time : 0.19
Starting 3rd  iteration, time : 0.17
Starting 4th  iteration, time : 0.19
Starting 5th  iteration, time : 0.19
Starting 6th  iteration, time : 0.19
Starting 7th  iteration, time : 0.17
Starting 8th  iteration, time : 0.19
Starting 9th  iteration, time : 0.17
Starting 10th iteration, time : 0.19
Starting 11th iteration, time : 0.17
Starting 12th iteration, time : 0.19
Starting 13th iteration, time : 0.19
Starting 14th iteration, time : 0.17
Starting 15th iteration, time : 0.19
Starting 16th iteration, time : 0.19
Starting 17th iteration, time : 0.17
Starting 18th iteration, time : 0.17
Starting 19th iteration, time : 0.17

Total iteration time : 3.37
Computing final value, time : 0.14

Total time : 3.56 seconds
Total memory used : 12,003,171 (11.45 MB)

Processor utilization : 128.98%

CPU 利用率达到了128.98%说明其利用了第二个核心的28.98%的效率,发挥了了一定的双核优势,但即使是完全单核执行应该也不会慢到哪里去,比起 SuperPi漫长的30秒计算几乎达到了10倍速,而这个成绩也比超频榜上的那些个发烫的成绩要快得多了,如果使用最快的chudnovsky算法,只要1.5秒便结束了104万的战斗....如果换成超频榜上的那些牛机,只需零点几秒便解决了!

不知道用SuperPi的人中有几个人知道Pifast,有几个知道Qpi,还有几个人两个都知道的

SuperPi在历史舞台上的地位是永远存在的,但是考验CPU速度,还是换更先进的算法和程序感觉会更好,更能体验飞速的感觉!看着SuperPi的排行榜,我仿佛看到了喷火的跑车发动机装在了拖拉机上...

你真的老了SuperPi...
别了SuperPi....
作者: 50292831    时间: 2011-5-21 03:13
坐个沙发
作者: llt_eva    时间: 2011-5-21 09:22
有个疑问,FriZhess应该也是整数运算吧?计算步数。那按理说supper pi成绩和FRiZchess成绩应该成比例的吧?有没有 I U和 AU在这两个方面的精确数据对比啊。
IU跑PI那么BT,可是同频同线程FriZ并没有和AU拉开很大差距啊,这个差距有数据吗?
作者: royalk    时间: 2011-5-21 11:31
有个疑问,FriZhess应该也是整数运算吧?计算步数。那按理说supper pi成绩和FRiZchess成绩应该成比例的吧? ...
llt_eva 发表于 2011-5-21 09:22


C++语言迭代算法对core架构开始优化就比较好,我也不知道为什么,我自己写的迭代程序当时用C2D跑起来就比K8快很多
象棋和WPRIME都是整数运算,但是加入了多线程情况就不一定一样了,就像WPRIME SNB就很差,不如同频的Nehalem,我也不知道为什么
作者: llt_eva    时间: 2011-5-21 11:39
回复 5# royalk


    是不是可以这样理解?supper pi的迭代算法用到了IU优化过的整数计算指令,象棋的算法没有用到IU优化过的整数计算指令?
看来评测U的整数运算能力还是要PI和象棋都测试下综合评分,而评测U的浮点运算能力用啥测?
作者: royalk    时间: 2011-5-21 11:52
回复  royalk


    是不是可以这样理解?supper pi的迭代算法用到了IU优化过的整数计算指令,象棋的算法 ...
llt_eva 发表于 2011-5-21 11:39


那也不一定是算法的问题,有可能是整个C++编译的问题
就算你用C++编写一个1+1的100万次循环运行起来那还是IU快
浮点多了去了啊,任何渲染和解压缩、转码什么的都算是浮点
作者: llt_eva    时间: 2011-5-21 11:57
本帖最后由 llt_eva 于 2011-5-21 12:14 编辑

回复 7# royalk


    哦,照这样说,那就是说IU比AU整数运算能力更强,所以同频同线程PI和象棋都是IU领先,supper PI差距大,但象棋差距甚微,甚至多线程的整数运算中,AU可能反先?
K8时候就是浮点强(所以游戏好),另一方面也说明K8整数差,看来延续至今啊。不知道推土机的单线程整数1+1,双线程浮点1除2,实际效果如何,能否逆转这个状况...
理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮点略大于或持平K10(2线程共享1个浮点单元,但单元位宽加倍,单线程可以独占全部浮点单元),那样的话原来单线程3.8G K10 supper PI 17.X秒,推土机架构单线程3.8Gsupper PI就能达到8.X秒左右。
作者: jasu30    时间: 2011-5-21 11:58
原来是这样,一直被误导以为sp和wp都是浮点。。
作者: royalk    时间: 2011-5-21 12:10
回复  royalk


    哦,照这样说,那就是说IU比AU整数运算能力更强,所以同频同线程PI和象棋都是IU领先, ...
llt_eva 发表于 2011-5-21 11:57


象棋和WPRIME我觉得是做过了平衡处理所以才会显得AU和IU差不多,并不一定是AU的多线程效率高
K8的浮点强其实只是相对P4来说了,自从C2D之后K8就一直是落后了,当然整数落后得更多
作者: llt_eva    时间: 2011-5-21 12:15
本帖最后由 llt_eva 于 2011-5-21 12:17 编辑

回复 10# royalk


    理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮点略大于或持平K10(2线程共享1个浮点单元,但单元位宽加倍,单线程可以独占全部浮点单元),那样的话原来单线程3.8G K10 supper PI 17.X秒,推土机架构单线程3.8Gsupper PI就能达到8.X秒左右,加上AVX等指令集,之前被爆的7.8秒也许是真的!虽然被"辟谣"...

等待R老师6月底的评测啊,拭目以待~
作者: 世纪冰雷    时间: 2011-5-21 12:21
现在媒体太不负责了- -
我见过的基本都是说浮点计算。干。
学习了
作者: royalk    时间: 2011-5-21 12:54
回复  royalk


    理想状况是:推土机单核整数性能是K10的2倍(单线程是2个整数单元协同工作,1+1),浮 ...
llt_eva 发表于 2011-5-21 12:15


推土机我拿到的未必比你们快。。不过想达到理论我觉得还是非常困难的,就像SNB的浮点能力已经是Nehalem的两倍了,实际上呢,你看看提升了多少
作者: llt_eva    时间: 2011-5-21 13:00
回复 13# royalk


    你有渠道哈,咋会比我们慢呢?我们只能等开售了后才能买一个。还巴望着看完评测再出手呢~ 或者买你评测用过的u:P,只要不是挨过大炮的...
作者: royalk    时间: 2011-5-21 13:02
回复  royalk


    你有渠道哈,咋会比我们慢呢?我们只能等开售了后才能买一个。还巴望着看完评测再出手 ...
llt_eva 发表于 2011-5-21 13:00


我哪有什么渠道,还不是一样跟你们买
作者: llt_eva    时间: 2011-5-21 13:08
回复 15# royalk


AMD的公关太次了,居然不送EVA评测样品?这里评好了,很有影响力啊,起码国内的一波diyer
作者: gin250    时间: 2011-5-21 13:09
囧呀 N多媚体都说是浮点 唉~
作者: royalk    时间: 2011-5-21 13:09
回复  royalk


AMD的公关太次了,居然不送EVA评测样品?这里评好了,很有影响力啊,起码国内的一波diyer ...
llt_eva 发表于 2011-5-21 13:08


AMD一向是很抠门,别指望他们。。
作者: hitclxy    时间: 2011-5-21 13:21
AMD一向是很抠门,别指望他们。。
royalk 发表于 2011-5-21 13:09

听石头说的吧

AMD再扣,也比台系的厂家大方
台系的,我看就技嘉比较大方,安排什么还比较到位
其他...

其实这个东西,跟市场部的经费有莫大关系,有些公司重视市场,市场部的资源就多一些,
作者: llt_eva    时间: 2011-5-21 13:21
本帖最后由 llt_eva 于 2011-5-21 13:32 编辑

回复 18# royalk


    看来还要自己想办法啊,不过R老师亲手评测调教过的推土机想必有收藏意义啊:lol

推土机如果给力,那是最近几年amd的翻身之作!推土机如果不给力,那也许是amd真正没落的转折点!不管如何都收一块玩玩,以后真的没啥心情游戏啥的。

记得我的第一台PC是雷鸟1G,VIA神马芯片组,TNT显卡,装的win98,极品飞车II,RA95,COMMADOS,仙剑啥的,那段时光真的是很纯美。十几年了,换了不少电脑,都找不到那个感觉。i7 920发布后,就换掉了x2 3600,结果发现那个热,半年多就出了,换了开核440,最近又弄个1065T,就等推土机了。
作者: royalk    时间: 2011-5-21 13:23
听石头说的吧

AMD再扣,也比台系的厂家大方
台系的,我看就技嘉比较大方,安排什么还比较到位
其他...

...
hitclxy 发表于 2011-5-21 13:21


AMD确实很抠呀。。不光对我们来说,其它媒体也是 活动很少搞,一年最多搞一次。。
作者: hitclxy    时间: 2011-5-21 13:25
:lolINTEL也不怎么搞活动
一般都是跟某个厂家一起搞

做CPU的,别指望了
现在国内DIY市场急剧荽缩
我感觉似乎还没有从08年经济危机中恢复过来
作者: royalk    时间: 2011-5-21 13:25
回复  royalk


    看来还要自己想办法啊,不过R老师亲手评测调教过的推土机想必有收藏意义啊

推土 ...
llt_eva 发表于 2011-5-21 13:21


我现在关心的是推土机的8个核心实际上到底能用到几个,因为就目前来看单核浮点性能和K10是没两样的
就像Phenom II X6,我一直没觉得它有啥优势
所以可能两模块四核心的推土机会是家用的比较好的选择,但是可能也就跟现在的四核K10没啥两样了,190刀,我认为不值
作者: royalk    时间: 2011-5-21 13:25
INTEL也不怎么搞活动
一般都是跟某个厂家一起搞

做CPU的,别指望了
现在国内DIY市场急剧荽缩
我感觉似 ...
hitclxy 发表于 2011-5-21 13:25


Intel的都是被公关公司卡着,剩下的不用我说你也知道了
作者: junweb    时间: 2011-5-21 13:29
回复 1# royalk


   这个真不错, 受教了
作者: smatk768    时间: 2011-5-21 15:21
确实呢 推土机性能到底如何 目前都是猜测 未知。

话说这科技发展的跟不上了都
作者: 耗子抗着枪    时间: 2011-5-21 21:58
真是能人多啊,这么专业的
作者: lk111wlq    时间: 2011-5-21 22:31
所有楼层看完....    想来关于核心性能和相应的软件优化,应该较为重要...   还有,CPU的研发周期较长(说长貌似也不长,现在性能过剩感觉比较普遍..),很多问题要用时间证明..
作者: 石头    时间: 2011-5-21 22:45
听石头说的吧

AMD再扣,也比台系的厂家大方
台系的,我看就技嘉比较大方,安排什么还比较到位
其他...

...
hitclxy 发表于 2011-5-21 13:21



    不要造谣,我从来没这么说过。其实是比着谁更抠,互有胜负:L
作者: joekoo    时间: 2011-5-21 23:36
3页全看了,学到东西了...
作者: changchar    时间: 2011-5-23 02:41
这个...好像在MATLAB时候学过
作者: royalk    时间: 2011-5-23 11:53
这个...好像在MATLAB时候学过
changchar 发表于 2011-5-23 02:41


求通俗解释~
作者: xiaomudou    时间: 2011-5-23 12:55
学习了,其实现在的CPU性能过剩,对大部分人来说AU足够了,那么IU不用多说了,偶小县城基本都是AU,便宜够用。
作者: plane501    时间: 2011-5-23 13:16
我现在关心的是推土机的8个核心实际上到底能用到几个,因为就目前来看单核浮点性能和K10是没两样的
就像P ...
royalk 发表于 2011-5-21 13:25



   推土机一个模块只能算1.5个核心吧。。。。不是两个完整功能核心
作者: royalk    时间: 2011-5-23 13:52
推土机一个模块只能算1.5个核心吧。。。。不是两个完整功能核心
plane501 发表于 2011-5-23 13:16


也不能算1.5,以目前摩托车的成绩来看还是比较接近2个核心的,不过当然了摩托车是浮点
作者: nacc    时间: 2011-5-23 20:57
这个还真不好说~ 数学无能阿~ 算法看懂 拿来实际算下就知道是浮点 定点 还得 整数了
标记下.. 等我上小学了 再来看看会不会算
作者: changchar    时间: 2011-5-24 10:05
求通俗解释~
royalk 发表于 2011-5-23 11:53



    我说的是那两个算法:

Gauss-Legendre算法和Borwein四次迭代算法

作者: royalk    时间: 2011-5-24 11:28
我说的是那两个算法:
changchar 发表于 2011-5-24 10:05


哦。。好像学复变函数的时候学过很多类似这样的算法
作者: hitclxy    时间: 2011-5-24 15:49
不要造谣,我从来没这么说过。其实是比着谁更抠,互有胜负
石头 发表于 2011-5-21 22:45


专家出来辟谣了,哈哈
作者: 135tt    时间: 2011-5-24 18:08
多产R.高才R 。不得不服啊。不知道R大的职业是?
作者: tcsgwb    时间: 2011-5-24 19:47
好好学习,天天向上。。。。。。。。。。。
作者: kinno    时间: 2011-5-25 16:38
我有pifast,并且认为spi的那个汉化真是有失水准
作者: fosullx    时间: 2011-5-25 20:26
学习一下
作者: y2z    时间: 2011-5-27 01:51
受教了 一直认为是浮点运算
作者: coocoo    时间: 2011-6-14 21:17
[size=9.33333px]1986年9月,创造42亿位纪录者之一的金田用HITAC S-810/20计算了3355万Pi值[size=9.33333px] 这个有问题的吧, 不是说软件才96年发布的,,
作者: royalk    时间: 2011-6-14 23:40
1986年9月,创造42亿位纪录者之一的金田用HITAC S-810/20计算了3355万Pi值 这个有问题的吧, 不是说软件才9 ...
coocoo 发表于 2011-6-14 21:17


算法和软件是两码事
作者: weijin3527    时间: 2011-6-15 08:58
学习进步
作者: plane501    时间: 2011-6-15 13:30
哦。。好像学复变函数的时候学过很多类似这样的算法
royalk 发表于 2011-5-24 11:28



    算法是整数,但貌似pi实现的时候还是用到了非常多的x87浮点运算???
作者: royalk    时间: 2011-6-15 14:21
算法是整数,但貌似pi实现的时候还是用到了非常多的x87浮点运算??? ...
plane501 发表于 2011-6-15 13:30


后边的mod版本精确到毫秒有使用浮点,但那些对性能毫无影响,核心还是整数的。
作者: plane501    时间: 2011-6-15 21:07
后边的mod版本精确到毫秒有使用浮点,但那些对性能毫无影响,核心还是整数的。 ...
royalk 发表于 2011-6-15 14:21



   。。。。。如果真的完全按照那个迭代式,算32m的话那年代内存都不够放中间变量吧{:1_323:}
作者: royalk    时间: 2011-6-15 21:54
。。。。。如果真的完全按照那个迭代式,算32m的话那年代内存都不够放中间变量吧 ...
plane501 发表于 2011-6-15 21:07


浮点更不够好么
作者: 硬件哨兵    时间: 2013-3-1 14:00
这文章说了半天也没说清楚浮点和整数的区别。

如果SUPER PI是整数运算,

解释一下为什么推土机能这么差
作者: royalk    时间: 2013-3-1 14:24
硬件哨兵 发表于 2013-3-1 14:00
这文章说了半天也没说清楚浮点和整数的区别。

如果SUPER PI是整数运算,

1. 第一句话我就有说是整数运算
2. 你难道不知道推土机一个核心只有2个ALU吗?
作者: juv3    时间: 2013-3-1 14:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 硬件哨兵    时间: 2013-3-1 14:43
royalk 发表于 2013-3-1 14:24
1. 第一句话我就有说是整数运算
2. 你难道不知道推土机一个核心只有2个ALU吗? ...

2.我记得推土机模块设计就是把两个核心做成一个核心用 应该是4个ALU, SNB的核心好像也才3个ALU

1.那么浮点和整数的区别捏
作者: royalk    时间: 2013-3-1 14:48
硬件哨兵 发表于 2013-3-1 14:43
2.我记得推土机模块设计就是把两个核心做成一个核心用 应该是4个ALU, SNB的核心好像也才3个ALU

1.那么 ...

1. 整数浮点这种基础概念自己百度
2. 很遗憾superpi只能用半个模块跑,我指的一个核心是半个模块。
作者: 硬件哨兵    时间: 2013-3-1 17:36
royalk 发表于 2013-3-1 14:48
1. 整数浮点这种基础概念自己百度
2. 很遗憾superpi只能用半个模块跑,我指的一个核心是半个模块。 ...

1.我百度就是说 SUPER PI就是浮点, 最明显特征整数就是1,浮点就是0.1。而AMD整数能力并不差
2.那么这个SNB就是几个ALU捏
作者: royalk    时间: 2013-3-1 18:07
硬件哨兵 发表于 2013-3-1 17:36
1.我百度就是说 SUPER PI就是浮点, 最明显特征整数就是1,浮点就是0.1。而AMD整数能力并不差
2.那么这 ...

1. 你百度的是错的,要不我也不用发这篇文章。整数和浮点并不是1和0.1那么简单,你看到的“浮点数”只不过是运算需要的时间而已,并不是运算结果。具体怎么算的自己仔细看文章,需要一点逻辑推理思维和递归概念,以及对Gauss-Legendre基本公式的了解。看不懂就直说等我得空再给你好好讲。
2. SNB每个核心是3个ALU,跟Core架构一样,只不过是基于指令调度、缓存和内存的优化使得superpi比core架构跑的更快。
作者: 硬件哨兵    时间: 2013-3-1 18:19
royalk 发表于 2013-3-1 18:07
1. 你百度的是错的,要不我也不用发这篇文章。整数和浮点并不是1和0.1那么简单,你看到的“浮点数”只不 ...

1. 你百度错了,我见过很多这样的文章,可能就是就10%用到ALU然后就说整数软件 。

2. X4 955 也是3个ALU,而且也差这么多。 反而CineBench R10这个是整数计算, 这个上面AMD的推土机就不差很多
作者: mcszjs    时间: 2013-3-1 18:30
本帖最后由 mcszjs 于 2013-3-1 18:53 编辑
硬件哨兵 发表于 2013-3-1 18:19
1. 你百度错了,我见过很多这样的文章,可能就是就10%用到ALU然后就说整数软件 。

2. X4 955 也是3个ALU ...


CineBench是渲染测试,这个是整数计算?你渲染马赛克吗?

http://zh.wikipedia.org/wiki/%E6 ... %E7%A7%91%E5%AD%A6)

http://zh.wikipedia.org/wiki/%E6%B5%AE%E7%82%B9%E6%95%B0

另外你还是先学好怎么用百度吧。
作者: 硬件哨兵    时间: 2013-3-1 19:13
mcszjs 发表于 2013-3-1 18:30
CineBench是渲染测试,这个是整数计算?你渲染马赛克吗?

http://zh.wikipedia.org/wiki/%E6%95%B4%E6%9 ...

是吗?

你就说说 你回帖这么一下,用到了 CPU里 ALU 还是FPU  ,还是压根都没用?或者用其他的什么?

作者: mcszjs    时间: 2013-3-1 19:53
硬件哨兵 发表于 2013-3-1 19:13
是吗?

你就说说 你回帖这么一下,用到了 CPU里 ALU 还是FPU  ,还是压根都没用?或者用其他的什么?

http://zh.wikipedia.org/wiki/ALU

http://zh.wikipedia.org/wiki/FPU

先学好搜索再来扯吧,你要这么问,我可以告诉你,全都用上或者全都没用上的可能都有。无聊看了一下你都发过些什么帖,我觉得你没被丐还真是奇迹。
作者: 硬件哨兵    时间: 2013-3-1 21:08
mcszjs 发表于 2013-3-1 19:53
http://zh.wikipedia.org/wiki/ALU

http://zh.wikipedia.org/wiki/FPU

全都用上或者全都没用上的可能都有 是吗?

这句用到什么软件都能说,诶 说细一点各占百分比多少?什么情况下各占百分比多少?又能说一下吗? 百度不到了吗?

玩个维基百科还玩出优越感来了。
作者: mcszjs    时间: 2013-3-1 21:19
硬件哨兵 发表于 2013-3-1 21:08
全都用上或者全都没用上的可能都有 是吗?

这句用到什么软件都能说,诶 说细一点各占百分比多少?什么情 ...

我看你连百度都用不好才帮你普及普及基础。

说白了,能问出那问题就表示你的水平有多少了,SuperPi是特地只用来计算Pi这个数学结果的专用程序,你居然拿一个实际应用的问题来问我几乎跟这帖主题同类的问题,答这个如果都需要百度,那我还真得找小学生给我补习补习小学知识了。

连我那个答案的真面目都看不清,我建议你还是别出来献丑了,多潜水,多看帖子少说话,先好好学习学习吧。
作者: 硬件哨兵    时间: 2013-3-1 21:26
mcszjs 发表于 2013-3-1 21:19
我看你连百度都用不好才帮你普及普及基础。

说白了,能问出那问题就表示你的水平有多少了,SuperPi是特 ...

计算PI 是浮点计算还是整数计算这常识问题都没搞清楚,还这里跟我扯一堆。

你怎么不看看你百度的是什么东西呢?

翻出一堆东西自己打自己脸的东西,还这里东扯西拉






作者: mcszjs    时间: 2013-3-1 22:15
硬件哨兵 发表于 2013-3-1 21:26
计算PI 是浮点计算还是整数计算这常识问题都没搞清楚,还这里跟我扯一堆。

你怎么不看看你百度的是什么 ...

连帖都看不懂的家伙还好意思拿这个喷我?因为PI这个结果是浮点数,所以算这个浮点数的方法就一定是浮点运算?一定要拿FPU来执行?

不要这么娱乐我好不好。我都说了,看不懂就先自己努力学习学习吧。哈哈哈哈

那CineBench这个3D渲染,你倒拿证据证明里面全部是整数运算我看看?
作者: 硬件哨兵    时间: 2013-3-2 00:35
本帖最后由 硬件哨兵 于 2013-3-2 00:49 编辑
mcszjs 发表于 2013-3-1 22:15
连帖都看不懂的家伙还好意思拿这个喷我?因为PI这个结果是浮点数,所以算这个浮点数的方法就一定是浮点运 ...


谁看帖不回贴啊?你看到懂你贴的东西吗? 自己又不是什么INTEL里面打工的,都是上网看的就这里贴写自己都一知半解的东西。一个复杂的东西给你说这么简单用来喷的?

SUPER PI一定没有任何浮点运算, SUPER PI没有用到任何CPU 里FPU,是这样说吗?

CineBench 我说肯定有整数运算肯定用到ALU,求反驳!

就知道语言游戏



作者: mcszjs    时间: 2013-3-2 01:13
硬件哨兵 发表于 2013-3-2 00:35
谁看帖不回贴啊?你看到懂你贴的东西吗? 自己又不是什么INTEL里面打工的,都是上网看的就这里贴写自己都 ...

哈哈哈,说不过所以开始瞎扯转移视线了吗?

那我也懂说啊,你看AV的时候还用了ALU呢 求反驳。
作者: 硬件哨兵    时间: 2013-3-2 01:23
mcszjs 发表于 2013-3-2 01:13
哈哈哈,说不过所以开始瞎扯转移视线了吗?

那我也懂说啊,你看AV的时候还用了ALU呢 求反驳。 ...

我一开始就说了  “我见过很多这样的文章,可能就是就10%用到ALU然后就说整数软件 。”

自己不看帖回帖。

我在录相厅第一次看AV的时候,还真没用ALU。 知道什么叫录相厅?说你也不懂  ,够反驳不,要百度么。
作者: mcszjs    时间: 2013-3-2 01:30
硬件哨兵 发表于 2013-3-2 01:23
我一开始就说了  “我见过很多这样的文章,可能就是就10%用到ALU然后就说整数软件 。”

自己不看帖回帖 ...

哈哈,说你多少次了,先去好好学习,把R大帖子看懂再来说话。再这么歪下去,我还真担心你这开心果没法再来娱乐大家呢。

提醒下你,没能力看懂全部,就先把R大标红的字好好的、认真的、仔细的多看几次吧。
作者: 硬件哨兵    时间: 2013-3-2 01:42
看个一知半解,别的不说就说这个C语言写的东西,具体写的什么,不是个码农一下就被忽悠了。

现在程序大多用JAVA语言写的,就更好忽悠外行人了。

这里有程序员或码农来逛么?


作者: James007ss    时间: 2013-3-2 01:45
硬件哨兵 发表于 2013-3-1 21:26
计算PI 是浮点计算还是整数计算这常识问题都没搞清楚,还这里跟我扯一堆。

你怎么不看看你百度的是什么 ...

请你看清楚,R大这帖的重点不在于算PI这个结果是浮点还是整数,而是计算过程采用的方法究竟是浮点运算还是整数运算。而帖子的内容已经很清楚的告诉大家,SuperPi采用了整数运算的方式来计算PI这个结果,即使结果是浮点数,由于运算过程是整数运算,所以它依然测试的是ALC,而非FPU。
作者: 硬件哨兵    时间: 2013-3-2 01:58
James007ss 发表于 2013-3-2 01:45
请你看清楚,R大这帖的重点不在于算PI这个结果是浮点还是整数,而是计算过程采用的方法究竟是浮点运算还 ...

Pi = 【  ( a + b ) / 2  +  sqrt( b ・ y )  】^2 / 【 4 ・ t -2 ・ x ・ ( y - a )^2】

我不知道我这么写公式对不对,但是这样一个公式,明显要做除法。

计算出 π ,PI  ,3.14 肯定要做除法的 ,光用二进制运算之类的运算怎么能算出来, 这个应该是个常识吧.
作者: mcszjs    时间: 2013-3-2 02:06
硬件哨兵 发表于 2013-3-2 01:58
Pi = 【  ( a + b ) / 2  +  sqrt( b ・ y )  】^2 / 【 4 ・ t -2 ・ x ・ ( y - a )^2】

我不知 ...

让你去好好学习你不去。

相信如果我告诉你,计算机理论上其实连减法都不会算,我肯定会被你继续喷我才是瞎扯。
作者: 硬件哨兵    时间: 2013-3-2 02:23
mcszjs 发表于 2013-3-2 02:06
让你去好好学习你不去。

相信如果我告诉你,计算机理论上其实连减法都不会算,我肯定会被你继续喷我才是 ...


算减法是个软件问题。

复杂的问题说的这么简单?我看你帖的东西自己也是一知半解,

半吊子也就算了,还好为人师。


作者: dxkzy    时间: 2013-3-2 04:35
看到这帖子被顶上来,顺带说一句
wprime也根本不是国内很多媒体说的算质数,而是用牛顿迭代法算平方根...
作者: dxkzy    时间: 2013-3-2 05:14
硬件哨兵 发表于 2013-3-2 01:58
Pi = 【  ( a + b ) / 2  +  sqrt( b ・ y )  】^2 / 【 4 ・ t -2 ・ x ・ ( y - a )^2】

我不知 ...

计算机科班出生的来说几句
首先目前冯诺伊曼体系下计算机内所有运算和数据存储都是二进制,不管算什么都用二进制
其次带小数点的数字是人类世界的描述,在计算机内部它既可以是浮点形式、也可以是字符串形式甚至可以是点阵形式,取决于不同的需要,由软件开发者决定
而本文正是介绍了superpi的软件开发者如何通过整数数组完成pi计算的,其原理在程序设计中有一个专门的概念叫高精度计算.所以可以说superpi绝大部分运算是整数运算,小部分运算是逻辑运算,极小部分(远低于1%)的是浮点运算
最后想夹带点私货,虽然这玩意整数运算为主,但很可能最后体现的是cpu读缓存、内存的速度...

作者: role    时间: 2013-3-2 19:11
我是觉得现在能真正将厂商给出的技术标准吃透的越来越少了..
大部分的软件都局限在软件层面的优化,而不是硬件上,软件层面上也有好好处就是提高了开发效率,也避免了兼容性问题.
但是要获取最大的硬件性能,还是针对单独的硬件单独优化.
作者: 硬件哨兵    时间: 2013-3-2 19:59
本帖最后由 硬件哨兵 于 2013-3-2 20:03 编辑
dxkzy 发表于 2013-3-2 05:14
计算机科班出生的来说几句
首先目前冯诺伊曼体系下计算机内所有运算和数据存储都是二进制,不管算什么都 ...



俺的常识告诉俺,PI是一个无理数,算PI用除法。 3.14往下算算算算多少多少位。


俺现又听到“整数运算完成pi计算的.”用0和1 二进制完成pi计算的,  ,


最后总结是 :99%是整数运算为主.     太高端了!算PI不是以除法为主,


这个楼下有没有听懂滴

作者: dxkzy    时间: 2013-3-2 20:11
硬件哨兵 发表于 2013-3-2 19:59
俺的常识告诉俺,PI是一个无理数,算PI用除法。 3.14往下算算算算多少多少位。

简单的说,就是小学学的列竖式计算除法
竖式可以去掉小数点算,算完了再把小数点添上就行了
至于二进制还是十进制,程序编写的时候大多数用十进制,但是编译器会帮程序员变成二进制,CPU只能执行二进制指令(或者更明确的说是导线上的高低电平)
作者: 硬件哨兵    时间: 2013-3-2 20:28
那也是做除法哇。就算不带分号,列竖式计算除法,也是做除法。

http://zh.wikipedia.org/wiki/%E6 ... E.E5.87.BD.E6.95.B0
浮点数运算
作者: dxkzy    时间: 2013-3-2 21:03
本帖最后由 dxkzy 于 2013-3-2 21:11 编辑
硬件哨兵 发表于 2013-3-2 20:28
那也是做除法哇。就算不带分号,列竖式计算除法,也是做除法。

http://zh.wikipedia.org/wiki/%E6%B5%AE%E ...

列竖式算除法只用乘法和减法吧...?
另外整数可以做整数除法的,就是有商和余数那种
至于这个整数除法具体是怎么实现的,是通过FPU变通实现还是用一个很强的ALU实现,就要具体问AMD和INTEL了
但是从使用者或者说开发者的角度看,整数除法也算在整数性能内吧
作者: 硬件哨兵    时间: 2013-3-2 21:17
dxkzy 发表于 2013-3-2 21:03
整数可以做整数除法的,就是有商和余数那种
至于这个整数除法具体是怎么实现的,是通过FPU变通实现还是用 ...

先做除法

然后计算PI这样一个无理数的用整数除法

最后是你说99%的整数运算完成 ,也就是99%的ALU完成


  是这样么?





作者: dxkzy    时间: 2013-3-2 21:20
硬件哨兵 发表于 2013-3-2 21:17
先做除法

然后计算PI这样一个无理数的用整数除法

应该压根就没用除法算吧
除法都是用乘法和减法代替的
作者: 硬件哨兵    时间: 2013-3-2 21:24
dxkzy 发表于 2013-3-2 21:20
应该压根就没用除法算吧
除法都是用乘法和减法代替的

http://zh.wikipedia.org/wiki/%E6 ... E.E5.87.BD.E6.95.B0

这么说浮点运算的

还有这个公式

1.初值确定
    a = 1
        b = 1 / sqrt( 2 )
        t = 1 / 4
        x = 1

2. a与b都取同样的精度,反复迭代计算下式:
      y = a
        a = ( a + b ) / 2
        b = sqrt( b ・ y )
        t = t - x ・ ( y - a )^2
        x = 2 ・ x

3.a和b迭代到足够精度后,根据下式可以计算出PI值
        Pi = ( a + b )^2 / ( 4 ・ t )
作者: dxkzy    时间: 2013-3-2 21:43
硬件哨兵 发表于 2013-3-2 21:24
http://zh.wikipedia.org/wiki/%E6%B5%AE%E7%82%B9%E6%95%B0%E8%BF%90%E7%AE%97#.E6.B5.AE.E7.82.B9.E6.9 ...

我一开始就说的很明确了吧,你眼中的浮点数在代码里面是用整数数组表示的...
作者: 硬件哨兵    时间: 2013-3-2 21:55
dxkzy 发表于 2013-3-2 21:43
我一开始就说的很明确了吧,你眼中的浮点数在代码里面是用整数数组表示的... ...

又绕回去了,SUPER PI就是算圆周率哇  

π ≈22/7    这个公式不精确

肯定是以整数开始,然后做除法,最后结果是无限不循环小数



作者: dxkzy    时间: 2013-3-2 22:01
硬件哨兵 发表于 2013-3-2 21:55
又绕回去了,SUPER PI就是算圆周率哇  

π ≈22/7    这个公式不精确

建议你去看看什么叫高精度计算,如果不会编程的话,可以学点编程的基础
作者: 硬件哨兵    时间: 2013-3-2 22:08
dxkzy 发表于 2013-3-2 22:01
建议你去看看什么叫高精度计算,如果不会编程的话,可以学点编程的基础 ...

好吧,  反正就是99%的整数运算  反正就是用了 99%的ALU

你是这意识吧?

我只是靠逻辑和常识判断而已。
作者: dxkzy    时间: 2013-3-2 22:13
硬件哨兵 发表于 2013-3-2 22:08
好吧,  反正就是99%的整数运算  反正就是用了 99%的ALU

你是这意识吧?



所以你的下一个问题是为什么AMD整数性能好,但是superpi却不强对吧
我个人理解,AMD模块化之后,每个模块整数运算时可以当双核心用
但是superpi软件没有针对多核优化,所以只能用到一个核心也就是半个模块
作者: 硬件哨兵    时间: 2013-3-2 22:21
dxkzy 发表于 2013-3-2 22:13

所以你的下一个问题是为什么AMD整数性能好,但是superpi却不强对吧
我个人理解,AMD模块化之后,每个 ...

X4 955 有3个ALU   同频率 也慢了一半了

所以了

整数浮点都慢了一半了,就说不通了嘛
作者: dxkzy    时间: 2013-3-2 22:41
硬件哨兵 发表于 2013-3-2 22:21
X4 955 有3个ALU   同频率 也慢了一半了

所以了

你是说这个帖子里和intel的比?
http://bbs.pceva.com.cn/thread-82532-1-1.html
实际上不同架构的CPU性能对比的话有很多可能性了,比如流水线不行,分支预测不行等等
我估计是内存控制器或者缓存不给力
就像我最早那帖子里夹带的私货,superpi是个内存密集型的应用
就是说ALU只起到算寄存器里面数据的作用,如果数据来不及从内存放到寄存器中的话,ALU再多都没用
作者: dxkzy    时间: 2013-3-2 22:59
硬盘哨兵 发表于 2013-3-2 22:55
主要是差距太大

一个14秒  一个26秒

我只能说这很正常,CPU执行程序比你想象得复杂的多,如果有兴趣的话可以pm我私聊
作者: 大D来了    时间: 2013-3-2 23:09
评论好看,笑尿了
作者: cnzyan    时间: 2013-3-3 11:47
最早的8086不带fpu不也一样算除法吗
来自:PC绝对领域 Windows Phone 7 客户端
作者: mhsk    时间: 2013-5-25 11:24
严重学习!
作者: 无根无相    时间: 2013-5-25 15:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: bdzyq    时间: 2013-5-25 16:06
本帖最后由 bdzyq 于 2013-5-25 16:14 编辑
硬件哨兵 发表于 2013-3-1 18:19
1. 你百度错了,我见过很多这样的文章,可能就是就10%用到ALU然后就说整数软件 。

2. X4 955 也是3个ALU ...

两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,而不是说小数就是。




欢迎光临 PCEVA,PC绝对领域,探寻真正的电脑知识 (https://bbs.pceva.com.cn/) Powered by Discuz! X3.2