POPPUR爱换

标题: 天阿 有人说SSE 1 不如3dnow 1 是这样的吗 ~~ [打印本页]

作者: 晶晶守护神    时间: 2007-12-1 17:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: awoo    时间: 2007-12-1 17:53
杀发第一排。
作者: 晶晶守护神    时间: 2007-12-1 17:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: slice    时间: 2007-12-1 18:06
两个字一个标点:放屁!
作者: G70    时间: 2007-12-1 18:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: 晶晶守护神    时间: 2007-12-1 18:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: jakenchao    时间: 2007-12-1 20:14
3DNOW好,3DNOW好强
3DNOW技术先进超过SSE100
就是没有软件支持:whistling:
作者: zyxel2008    时间: 2007-12-1 20:20
原帖由 jakenchao 于 2007-12-1 20:14 发表
3DNOW好,3DNOW好强
3DNOW技术先进超过SSE100
就是没有软件支持:whistling:


谁说的,CPU-Z就可以检测出3DNow!,呵呵:w00t)::w00t)::w00t):
作者: 晶晶守护神    时间: 2007-12-1 20:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: Flightposite    时间: 2007-12-1 21:03
pci的振兴就考这样的贴了。一个星期出2个饭喷量就不少了:rolleyes:
作者: 紫色    时间: 2007-12-1 21:14
SSE INSTRUCTION SET:
• Packed and scalar single-precision floating-point instructions
• 64-bit SIMD integer instructions
• State management instructions
• Cacheability control, prefetch, and memory ordering instructions
这问题基本上没啥意义。sse1也只在在单精度浮点上混混日子。

搭车请教各位一个以前碰到的问题,怎么才能让libm库的sin/cos系列函数支持sse?
我已经把libm编译成sse支持,简单用objdump检查一下,
objdump -d /lib/libm-2.7.so |grep xmm
    35b3:       f2 0f 10 4d 08          movsd  0x8(%ebp),%xmm1
    35b8:       f2 0f 10 45 10          movsd  0x10(%ebp),%xmm0
    35c0:       f2 0f 11 4d e0          movsd  %xmm1,-0x20(%ebp)
    35c5:       f2 0f 11 45 e8          movsd  %xmm0,-0x18(%ebp)
......(很长)
证明已经支持sse ,但是如果检查fsin指令,结果:
    a834:       d9 fe                   fsin   
    a853:       d9 fe                   fsin   
    c224:       d9 fb                   fsincos
    c253:       d9 fb                   fsincos
    c34e:       d9 fb                   fsincos
    c385:       d9 fb                   fsincos
    c3c8:       d9 fb                   fsincos
    c425:       d9 fb                   fsincos
   13294:       d9 fe                   fsin
.....(比较长)
证明x87的浮点指令仍然不可避免。
三角函数很常用。做不到这一点,没法真正比较x87与sse两个指令集的浮点总体性能(单指令能力+指令集是否完备)。

[ 本帖最后由 紫色 于 2007-12-1 21:17 编辑 ]
作者: 晶晶守护神    时间: 2007-12-1 22:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫色    时间: 2007-12-1 22:41
菜鸟,:lol:祝好!

==========
补:哪位知道,gcc能使用sse模拟sin吗?fsin需要100多个周期!很想看看sse能否邦上忙。
以cpuid=0f-2h为例子:
instruction              latency                   throuthput                          
fptan                     240-300                   170
fsin                        160-200                   130
fincos                     170-250                   140

[ 本帖最后由 紫色 于 2007-12-2 12:18 编辑 ]
作者: 晶晶守护神    时间: 2007-12-1 23:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫色    时间: 2007-12-2 00:59
我也不是:p 。
请弄清楚,sse理论性能超过x87无须讨论,我之所以拍那些YYer是因为:如何用起来,能不能用起来,以及有多少程序在用它。一个例子就是sse有没有能力模仿x87指令fsin。intel的手册里介绍了sse用处绝不限于图形图像,也涉及系统编程。楼主既然也玩linux,编译kernel肯定很常见,理论上linux kernel也能利用sse进行系统编程释放simd的"威力",事实上并没有。
算啦,大家都疲劳了呵呵。
作者: 晶晶守护神    时间: 2007-12-2 01:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: 晶晶守护神    时间: 2007-12-2 01:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 晶晶守护神    时间: 2007-12-2 01:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: Prescott    时间: 2007-12-2 01:31
原帖由 紫色 于 2007-12-2 00:59 发表
我也不是:p 。
请弄清楚,sse理论性能超过x87无须讨论,我之所以拍那些YYer是因为:如何用起来,能不能用起来,以及有多少程序在用它。一个例子就是sse有没有能力模仿x87指令fsin。intel的手册里介绍了sse用处绝不限于图形图像,也涉及系统编程。楼主既然也玩linux,编译kernel肯定很常见,理论上linux kernel也能利用sse进行系统编程释放simd的"威力",事实上并没有。
算啦,大家都疲劳了呵呵。


您老这就露怯了吧。

Linux Kernel中禁用浮点!!

Linux 内核源代码中一个Double或者float都没有。(_(
至于X87,自从SSE2出世之后就再也没有存在的必要。如果SSE2指令能实现sin,而且比fsin快,你是不是就在这里公开道歉呢?

[ 本帖最后由 Prescott 于 2007-12-2 02:11 编辑 ]
作者: 晶晶守护神    时间: 2007-12-2 01:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 鲁爾    时间: 2007-12-2 02:02
:unsure: :unsure:
作者: 紫色    时间: 2007-12-2 09:52
原帖由 Prescott 于 2007-12-2 01:31 发表


您老这就露怯了吧。

Linux Kernel中禁用浮点!!

Linux 内核源代码中一个Double或者float都没有。(_(
至于X87,自从SSE2出世之后就再也没有存在的必要。如果SSE2指令能实现sin,而且比fsin快,你是不是就 ...


1) ,我不清楚“禁用浮点”。我反汇编检查下vmlinux,真被我发现一个x87指令
c0948426:       de e1                   fsubp  %st,%st(1)
我想你可能是对的,诺大的kernel就仅仅这么一条x87指令。
2) ,我没有说kernel中使用sse就是浮点。刚刚我检查了下,kernel里真有sse指令,而且是p打包系列的指令,也就是矢量sse。
c02c461a:       0f 11 00                movups %xmm0,(%eax)
c02c468b:       0f 57 00                xorps  (%eax),%xmm0
c02c468e:       0f 57 48 10             xorps  0x10(%eax),%xmm1
c02c4692:       0f 57 50 20             xorps  0x20(%eax),%xmm2
c05492c6:       66 0f fc e4             paddb  %xmm4,%xmm4
c05492ca:       66 0f fc f6             paddb  %xmm6,%xmm6
c05492ce:       66 0f db e8             pand   %xmm0,%xmm5
c05492d2:       66 0f db f8             pand   %xmm0,%xmm7
c05492d6:       66 0f ef e5             pxor   %xmm5,%xmm4
......
可见kernel中的sse指令多用于加速逻辑运算。
3) 如果sse能模拟sin等x87数学函数,那么x87就是可被替代的;如果sse模拟能减少延时/吞吐量,我当然就要承认sse比x87优越。不过也没什么要道歉的,寻求真相嘛:p,我在这里先提醒P大,即使是intel fortran貌似也调用了fsin?研究研究!

[ 本帖最后由 紫色 于 2007-12-2 12:21 编辑 ]
作者: potomac    时间: 2007-12-2 10:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: boris_lee    时间: 2007-12-2 10:43
[attach]809363[/attach]

sourcefourge上好多icc的binary啊
包括 mencoder这种东西



[ 本帖最后由 boris_lee 于 2007-12-2 10:48 编辑 ]
作者: cific    时间: 2007-12-2 11:29
原帖由 紫色 于 2007-12-1 21:14 发表
SSE INSTRUCTION SET:
• Packed and scalar single-precision floating-point instructions
• 64-bit SIMD integer instructions
• State management instructions
• Cacheability con ...


实力贴,才头到尾看不懂,我应该去网吧要饭必要符合我的智商
作者: 晶晶守护神    时间: 2007-12-2 13:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: Prescott    时间: 2007-12-2 13:56
原帖由 紫色 于 2007-12-2 09:52 发表


1) ,我不清楚“禁用浮点”。我反汇编检查下vmlinux,真被我发现一个x87指令
c0948426:       de e1                   fsubp  %st,%st(1)
我想你可能是对的,诺大的kernel就仅仅这么一条x87指令。
2) ,我没有 ...

对于不承认基本事实的人,实在没有办法讨论下去。
以你的技术水平,弄明白这些问题根本不是难事。如果你是打算在论坛上胡搅蛮缠,我没兴趣奉陪,如果你是打算探求真相,那请抱着一个平和的心态,不要对任何言论先入为主。

一个忠告:对于任何你不了解的事物,不要习惯性的抱否定态度,设计这些东西的人,远比你有经验,他们可能投入了毕生精力,无论怎么做都是有他们的道理。如果你觉得他们做错了,那一定是你没有理解。
作者: 晶晶守护神    时间: 2007-12-2 14:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 紫色    时间: 2007-12-2 17:13
原帖由 Prescott 于 2007-12-2 13:56 发表
一个忠告:对于任何你不了解的事物,不要习惯性的抱否定态度,设计这些东西的人,远比你有经验,他们可能投入了毕生精力,无论怎么做都是有他们的道理。如果你觉得他们做错了,那一定是你没有理解。


P大息怒。这个我承认。
但是他们的智慧可能集中于满足某一方面的需要,如图形图像处理。常见数学函数里sse只有一个开平方,三角、指数等则没有,数值计算方面sse就不那么“有道理“了。
intel新的编程手册上宣称sse对“系统编程”有贡献,windows大概我们没办法,而linux内核是可以定制的,能否通过定制gcc的编译选项来加速linux内核呢?
我自己都疲劳了,那就到此为止吧。这些留给有兴趣的后人去探寻。我的观点是:simd前程远大,绝对应该扩展到图形处理领域之外,但那种需求目前被忽视了,所以那些领域想从sse受益并不容易(已经有部分帮助,数值计算平均提高10-15%速度在478机器上),需要编译器优化、模拟算法等等的创新,不是YY一下理论性能那么easy的事情。
http://www.intel.com/products/processor/manuals/index.htm

[ 本帖最后由 紫色 于 2007-12-2 23:54 编辑 ]
作者: 晶晶守护神    时间: 2007-12-2 17:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: Prescott    时间: 2007-12-2 17:26
原帖由 紫色 于 2007-12-2 17:13 发表


P大息怒。这个我承认。
但是他们的智慧可能集中于满足某一方面的需要,例如图形图像。所以其他方面就未必那么“合理”了。常见数学函数里sse只有一个开平方,三角、指数而这些常用函数都没有,这方面他就不那么 ...

你去看看除了x87这个被人诟病的浮点指令集,还有哪个现代浮点指令集傻乎乎的提供这么高层的函数指令?大部分函数库都不使用fsin,因为fsin更慢。

LinuxKernel并不是计算密集型的代码,SIMD对他用处不是很大也是可以理解的。但是SSE3中的MONITOR/MWAIT对系统编程的影响就不可小视。当然还有lfence/mfence。
作者: 晶晶守护神    时间: 2007-12-2 17:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: boris_lee    时间: 2007-12-2 23:27
原帖由 紫色 于 2007-12-2 17:13 发表


P大息怒。这个我承认。
但是他们的智慧可能集中于满足某一方面的需要,如图形图像处理。常见数学函数里sse只有一个开平方,三角、指数等则没有,数值计算方面sse就不那么“有道理“了。
intel新的编程手册上宣 ...

我不是太熟悉linux ,但OS内核要浮点运算做什么?
虽然linux是macro kernel....




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4