无心人
发表于 2008-5-16 13:51:47
:)
你问的是IA64还是X86-64还是MIPS??
x86-64大部分函数没用多媒体加速指令
liangbch
发表于 2008-5-16 13:59:27
使用gxq那个程序中的libgmp-3.dll 得到的测试结果。
60
0.00006888
120
0.00009496
180
0.00013831
240
0.00019797
300
0.00030075
360
0.00036127
420
0.00046619
480
0.00054598
720
0.00137881
960
0.00195374
1200
0.00333024
1440
0.00440705
1680
0.00560517
1920
0.00620848
和上文对照下:
Bits coount
_BIN_BaseMul_ALU(A)
_BIN_BaseMul_MMX(B)
GMP( C )
速度比(B/C)
60
0.00003522
0.00003522
0.0000594
1.686542
120
0.00009646
0.00009646
0.00008316
0.862119
180
0.00021972
0.00009264
0.00012834
1.385363
240
0.00035905
0.00011907
0.00019499
1.637608
300
0.00052825
0.00016233
0.0002728
1.680527
360
0.00073955
0.00020904
0.00035653
1.705559
420
0.0009853
0.00049755
0.00045363
0.911727
480
0.00126933
0.00047479
0.00052395
1.103541
720
0.00345908
0.00182676
0.00133954
0.733287
960
0.00629495
0.00427053
0.00213323
0.499523
1200
0.0098053
0.00611545
0.00324155
0.530059
1440
0.0141623
0.00898395
0.00427993
0.476397
1680
0.01946671
0.01195095
0.00565448
0.473141
1920
0.02569357
0.01597912
0.00693922
0.434268
可以看到,我用的那个GMP的DLL 比gxq使用的那个DLL略快。
无心人
发表于 2008-5-16 14:03:25
:)
我给的那个版本是最新的版本,就是说错误少
而且是我在P4机器上用没修改的源代码自己编译的
mathe的似乎是从网上下载的修改代码后在VC上编译的
liangbch
发表于 2008-5-16 16:14:15
无人人和mathe能否介绍下,如何编译将GMP 编译成 可 在windows下使用的 静态库 和 动态库。
无心人
发表于 2008-5-16 17:00:09
:)
我在CSDN有专门帖子说这个
另外GMP源代码不经修改无法编译成可供VC用的静态库
liangbch
发表于 2008-5-20 10:55:32
采用无心人的方法(参见 http://topic.csdn.net/u/20080222/19/52b620fe-42f4-4f9b-895b-c81e3b73340a.html),使用MinGW能够将的将gmp4.22源码在不做任何修改的情况下,编译成windows下使用的Dll文件,但是我有一个问题,我没有发现编译好的DLL导入库。请问如何得到dll的导入库文件. 类似于1楼附件中的附件中的libgmp-3.lib(82K)
无心人
发表于 2008-5-20 17:14:51
:)
VC中的一个工具lib.exe
通过.def生成.lib
liangbch
发表于 2008-5-20 17:58:46
谢谢楼上
无心人
发表于 2008-5-20 20:44:42
:)
自己知道如何编译
出了GMP 5.0就可以不必等别人了
gxqcn
发表于 2008-5-20 20:53:41
如果GMP出了5.0,我就开发HugeCalc V9.0,
从目前的理论分析,在64bit环境下可以提速不少,
且大家都不再使用SIMD寄存器,重新回到同一起跑线上。
但一旦SIMD出了新指令,可以直接得到两个64bit整型的乘积(无论是否有无符号的乘法),
则HugeCalc全面支持,并可再大提速。