原帖由 acqwer 于 2007-9-29 20:00 发表
Spec2000,基本都是C和fortran的数值运算,发布的时候SSE刚出,代码显然是没有为SSE优化的。
除了SSE外规格完全相同的Athlon1600+和Athlon1.4G成绩:
http://www.spec.org/osg/cpu2000/results/res2001q2/cpu ...
原帖由 紫色 于 2007-9-29 21:10 发表
我看了cfp2000的结果。我觉得不可靠。首先,cvf ,ifort等编译器版本不一样。即使忽略版本,但对同一程序,甚至连编译器都不一样,这就不好比较了,因为不同编译器往往都有不小性能差。
171.swim: f90 ...
原帖由 紫色 于 2007-9-29 21:18 发表
不要打岔,不要断章取义。我说的是相关数据用于作比较不可靠。
说到believe,你要拿出烧饼而不是画饼,才能让别人believe。
你觉得多弄些人凭空想象、彼此支持、彼此吹拍甚至还不存在的nehalem有多强,就能让 ...
原帖由 akeyyeka 于 2007-9-29 21:40 发表
spec源代码花钱就能买到,自己用sse开关编译一下不就晓得了。老等别人证明给你看。
BTW,我不相信地球是圆的,哪位证明给我看一下?
原帖由 Ricepig 于 2007-9-29 22:42 发表
其实就一个矩阵乘法,有SSE会快不少.
SSE本身速度快是现实,但是目前貌似算法能适应SSE的不多,即很大部分问题不能用SIMD模式的算法搞定~~~
原帖由 acqwer 于 2007-9-29 22:46 发表
http://en.wikipedia.org/wiki/AMD64
The original AMD64 architecture adopted Intel's SSE and SSE2 as core instructions.SSE3 instructions were added in April 2005. SSE2 replaces the x87instru ...
原帖由 Intelife 于 2007-9-29 22:51 发表
上面的代码几乎没有加什么注释,只是在读入每行第一个数据时作了标记。因为,SSE的指令可读性还是比较好的,除了要加上一些后缀以外,它们和普通的整数运算指令很相似。
一些关键性的指令有必要解释一下:
mo ...
原帖由 Intelife 于 2007-9-29 22:50 发表
举例子是可以的,但就怕你看不懂。
举例详解
下面的程序是一个矩阵相乘的函数。在三维图形空间变换中,要用到4乘4的浮点矩阵,
而矩阵相乘的运算是很常用的。下面的函数的参数都是4乘4的浮点矩阵。写成这种形 ...
原帖由 Ricepig 于 2007-9-29 22:59 发表
我查了一下Intel优化手册,似乎SSE和X87的最大差距就在80位浮点运算了,不过这个手册时间有点早,现在的SSE能搞定80位浮点数不?
原帖由 Dr.BT 于 2007-9-29 22:54 发表
:huh: 给bc看代码干什么,看得懂才怪
就看看广告宣传的文字就可以了:
不认识e文说一下哦
我可以义务用google翻译成中文w00t)
The 64-bit and 128-bit SIMD instructions—SSE, SSE2, SSE3, SSE4a instruc ...
原帖由 Ricepig 于 2007-9-29 23:08 发表
不是,当时手册上说SSE不能算80位浮点
另外,我觉得你可能有点理解错了SSE的128位的意思,这128位其实是2个64位浮点拼起来的吧,不能支持单一大于64位的浮点运算.不知道现在的SSE能不能支持大于64位浮点了
原帖由 Dr.BT 于 2007-9-29 23:11 发表
sse当然可以直接128bit
否则c2d怎么玩转的,k10怎么玩转的
sse的确需要从架构上去看的
现在两家公司最新的产品都根本不需要拆分了
以前是没办法,现在么:whistling:
早期说的不能处理80bit你理解错了吧 ...
原帖由 紫色 于 2007-9-29 23:19 发表
请问:sse的128位能直接支持IEEE X_floating吗?
也就是直接能否支持128位浮点操作?单周期是否能完成128位的x_floating浮点相乘?
如果是,那么这确实是sse的一大优势。将x87的80浮点精度提高到128位。
我 ...
原帖由 Ricepig 于 2007-9-29 23:19 发表
IA-32 Intel Architecture Optimization Reference Manual 2-56页
"x87 supports 80-bit precision, double extended floating point.
Streaming SIMD Extensions support a maximum of 32-bit
precisio ...
原帖由 Dr.BT 于 2007-9-30 00:01 发表
你不会连最基本的概念都没有吧
cell怎么处理dp的?
还不是32l,32h,最多效率下来一大截罢了
MULPD xmmreg1, xmmreg2
随便拿条乘法出来说说嘛
xmm能是两个dp为什么不是一个128?
64l,64h不就是128:huh: ...
原帖由 Dr.BT 于 2007-9-30 00:01 发表
你不会连最基本的概念都没有吧
cell怎么处理dp的?
还不是32l,32h,最多效率下来一大截罢了
MULPD xmmreg1, xmmreg2
随便拿条乘法出来说说嘛
xmm能是两个dp为什么不是一个128?
64l,64h不就是128:huh: ...
原帖由 紫色 于 2007-9-30 02:31 发表
看来也没有人来提供程序和数据,那就这样结束。感谢ricepig提供了对sse2优化的一个例子。非图形图像程序,simd如真能贡献10%的性能提升就令人刮目相看了。
顺便反驳一下前面3位兄弟:
1) p3/p4依靠sse压倒 ...
原帖由 紫色 于 2007-9-30 02:31 发表
看来也没有人来提供程序和数据,那就这样结束。感谢ricepig提供了对sse2优化的一个例子。非图形图像程序,simd如真能贡献10%的性能提升就令人刮目相看了。
顺便反驳一下前面3位高手:
1) p3/p4依靠sse压倒 ...
原帖由 紫色 于 2007-9-30 02:31 发表
看来也没有人来提供程序和数据,那就这样结束。感谢ricepig提供了对sse2优化的一个例子。非图形图像程序,simd如真能贡献10%的性能提升就令人刮目相看了。
顺便反驳一下前面3位高手:
1) p3/p4依靠sse压倒 ...
原帖由 Intelife 于 2007-9-30 07:38 发表
晕倒,看了你这套理论,AMD都得给活活笑死!谁告诉你而x87能够一个周期搞完一条128位精度运算的?还有,128位是寄存器的宽度,不是指令的精度,你喷出的这套理论来看,你完全从根本上都不知道SSE为何物!SS ...
原帖由 acqwer 于 2007-9-30 09:39 发表
东西都有了,非要其他人给你详细指出吗?
Spec的189.lucas是fortran99编的质数判定,标准的数值运算,P4 1.4执行时间269,P3-s 1.4执行时间517,AthlonXP 1.4G执行时间369,Athlon 1.4G执行时间654,论X87性 ...
原帖由 紫色 于 2007-9-30 12:05 发表
我没有看到那个程序的源码,不敢说更多。
质数判定可能是整数编程吧?判定质数需要解析数论的知识从而引入浮点计算么?who knows?
我说了,最好有源码,大家动手编一遍跑一遍,否则你只能去猜。
原帖由 Prescott 于 2007-9-30 14:32 发表
晕死,随便来个简单的吧
#include
#include
float a[512][512], b[512][512], c;
int main () {
srand(0);
for (int i=0; i < 512; i++){
for (int j = 0; j < 512; j++){
...
原帖由 Prescott 于 2007-9-30 14:32 发表
晕死,随便来个简单的吧
#include
#include
float a[512][512], b[512][512], c;
int main () {
srand(0);
for (int i=0; i < 512; i++){
for (int j = 0; j < 512; j++){
...
原帖由 紫色 于 2007-9-30 15:30 发表
8错的例子。不过只不过是比较了gcc和icc。
对icc,有其他优化选项完全相同,仅有浮点单元是sse/x87的一点区别的数据提供吗?
PS:能否说一下cpu是啥。类似的程序我跑过不少,p4上加了sse优化,速度还 ...
原帖由 紫色 于 2007-9-30 15:30 发表
8错的例子。不过只不过是比较了gcc和icc。
你的程序看似循环了512*512次,但每次循环都是独立的对c赋值。其实c最终就等于a(512,512)+a(512,512)*b(512,512)?聪明点的编译器把它优化到运行时间0.0001 ...
原帖由 slice 于 2007-9-30 19:23 发表
:loveliness:
扯那么多干嘛,AMD的U主板bios有个功能可以关掉SSE支持。intel就不知道如何屏蔽了。
如果你是用的X2之类的,大可以关掉SSE回到远古时代,看看会不会是世界末日。
结果是不会,还好Windows不是 ...
原帖由 slice 于 2007-9-30 19:23 发表
:loveliness:
扯那么多干嘛,AMD的U主板bios有个功能可以关掉SSE支持。intel就不知道如何屏蔽了。
如果你是用的X2之类的,大可以关掉SSE回到远古时代,看看会不会是世界末日。
结果是不会,还好Windows不是 ...
原帖由 slice 于 2007-9-30 20:33 发表
试了下Mark03。
My God!跑还是能跑,结果有点匪夷所思!放720P的WMVCPU也就30%多变成40%多而已。没想到Mark03会这样子。谁能tell me why?
关SSE简直就是超级幻灯片啊,92分。不关是720分。w00t) 问题出 ...
原帖由 slice 于 2007-9-30 20:33 发表
试了下Mark03。
My God!跑还是能跑,结果有点匪夷所思!放720P的WMVCPU也就30%多变成40%多而已。没想到Mark03会这样子。谁能tell me why?
关SSE简直就是超级幻灯片啊,92分。不关是720分。w00t) 问题出 ...
原帖由 slice 于 2007-9-30 20:33 发表
试了下Mark03。
My God!跑还是能跑,结果有点匪夷所思!放720P的WMVCPU也就30%多变成40%多而已。没想到Mark03会这样子。谁能tell me why?
关SSE简直就是超级幻灯片啊,92分。不关是720分。w00t) 问题出 ...

原帖由 紫色 于 2007-9-30 21:54 发表
找了台双Xeon的机器,跑prescutt的程序。gcc版本是4.3.0pre
运行时间竟然是6m40s w00t) ,我还以为死机了呢。
[19:50:08][~]$g++ -O3 -mfpmath=387 1.c -o a.out.387
[19:52:15][~]$time ./a.out.387
resu ...
原帖由 Prescott 于 2007-9-30 17:21 发表
稍微修改一下程序,满足你一下:
#include
#include
float a[512][512], b[512][512], c[512][512], d = 0;
int main () {
int i,j,N;
srand(0);
for (i = 0; i < 512; i++ ...
| 欢迎光临 POPPUR爱换 (https://we.poppur.com/) | Powered by Discuz! X3.4 |