原帖由 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 编辑 ] |