mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GMP-ECM (https://www.mersenneforum.org/forumdisplay.php?f=55)
-   -   Links to Precompiled GMP-ECM versions (https://www.mersenneforum.org/showthread.php?t=4087)

LaurV 2015-12-10 02:30

[QUOTE=VictordeHolland;418551]Massive thanks!
That one is almost 20% faster in stage 2 on my Sandy and Ivy Bridge processors compared to the ancient one I was using (GMP-ECM 6.4.4 with MPIR2.6.0 for processor type i7 from [URL="http://gilchrist.ca/jeff/factoring/index.html"]this page[/URL]) .
I wanted to get/compile more recent ones myself, but never got around to do so.[/QUOTE]
+1 from me! Same here! Thanks ATH!

Gordon 2015-12-12 15:22

[QUOTE=ATH;417546]Lastest SVN 2745 compiled on for Haswell with GMP 6.1.0 with the following:
./configure ABI=64 CC=gcc CFLAGS="-O3 -m64 -mavx2 -mfma -march=haswell -mtune=haswell" LDFLAGS="-Wl,--stack,16777216" --build=x86_64-w64-mingw32 --disable-assert

[URL="http://www.hoegge.dk/mersenne/gmpecm7-svn2745.zip"]gmpecm7-svn2745.zip[/URL][/QUOTE]

Doesn't play well with interim stage 1 residue files from Prime95

"Error, save file line has no '=' in : [Fri Dec 11 18:"

whereas the version in this : ecm70dev-svn2256-x64-nehalem.zip copes just fine with the missing '=' and carries on.

Not really practical to edit the results file when it contains the residues from 600 curves....

Phil MjX 2015-12-12 19:07

Thanks for the binaries.

They are faster than all previous precompiled versions that I have for my laptop but the auto-increase of B1 bounds has disappeared (-i option) and B2scale also.

It may cause aliqueit to crash in some cases and ecp.py to be tweaked.

Philippe

MatWur-S530113 2015-12-12 19:07

[QUOTE=ATH;417546]Lastest SVN 2745 compiled on for Haswell with GMP 6.1.0 with the following:
./configure ABI=64 CC=gcc CFLAGS="-O3 -m64 -mavx2 -mfma -march=haswell -mtune=haswell" LDFLAGS="-Wl,--stack,16777216" --build=x86_64-w64-mingw32 --disable-assert

[URL="http://www.hoegge.dk/mersenne/gmpecm7-svn2745.zip"]gmpecm7-svn2745.zip[/URL][/QUOTE]

Many thanks from me, too :bow:
Indeed this version is about 22% faster at stage 2 as my old one with GMP 4.4, very nice!
The zip contains 2 more exe-files 'ecmfactor' and 'multiecm', any info about them available?

@ Gordon: I simply wrote a 20 line proggy with Lazarus, reading a prime95-stage1-output-txt-file, deleting all lines starting with a bracket '[' and resaving it to an gmp-stage2-input-file. I never had problems with the bracket :wink:

Gordon 2015-12-20 15:03

[QUOTE=MatWur-S530113;419084]Many thanks from me, too :bow:
Indeed this version is about 22% faster at stage 2 as my old one with GMP 4.4, very nice!
The zip contains 2 more exe-files 'ecmfactor' and 'multiecm', any info about them available?

@ Gordon: I simply wrote a 20 line proggy with Lazarus, reading a prime95-stage1-output-txt-file, deleting all lines starting with a bracket '[' and resaving it to an gmp-stage2-input-file. I never had problems with the bracket :wink:[/QUOTE]

I downloaded Notepad++ and with a bit of regex was able to fix it.

I too am curious about multiecm...

ATH 2015-12-20 16:32

I do not know what "ecmfactor.exe" and "multiecm.exe" are used for. I just include them as they are compiled along side of "ecm.exe". I guess we should ask the GMP-ECM team.

@Gordon: Maybe you should create a thread in the GMP-ECM forum about the issue with interim files from Prime95. I have nothing to do with the GMP-ECM development team, I'm just compiling it (when I can figure out to get it to work).

lavalamp 2015-12-23 10:53

Is there an additional benefit if compiled with --ffast-math, or is that too dangerous?

ATH 2015-12-25 23:54

Got the latest svn 2749 compiled on a Broadwell laptop only with GMP 6.0.0 unfortunately as 6.1.0 failed to compile (I sent a mail to the gmp site). I also did new compile on haswell and sandybridge with slightly new options:

Broadwell; GMP-ECM7 SVN 2749 with GMP 6.0.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2749-broadwell.zip"]gmpecm7-svn2749-broadwell.zip[/URL] (compiled on Core i5 5200U laptop)

Haswell: GMP-ECM7 SVN 2749 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2749-haswell.zip"]gmpecm7-svn2749-haswell.zip[/URL] (compiled on a Haswell-E Core i7 5960X desktop)

Sandy Bridge: GMPECM7 SVN 2749 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2749-sandybridge.zip"]gmpecm7-svn2749-sandybridge.zip[/URL] (compiled on a Core i7 2720QM laptop)

ATH 2015-12-26 19:51

I got a patch for GMP 6.1.0 on Broadwell:

Broadwell; GMP-ECM7 SVN 2749 with [B]GMP 6.1.0[/B]: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2749-broadwell.zip"]gmpecm7-svn2749-broadwell.zip[/URL] (compiled on Core i5 5200U laptop)

ATH 2016-01-01 20:21

If anyone is still using Core2 for GMP-ECM:

Core2; GMP-ECM7 SVN 2749 with GMP 6.1.0: [URL="hoegge.dk/mersenne/gmpecm7-svn2749-core2.zip"]gmpecm7-svn2749-core2.zip[/URL] (compiled on a Core2Quad (Yorksfield) Q9450)

wblipp 2016-01-20 16:30

How do I figure out which version to use on a machine? For example, I have occasional access to a machine running Win 7. Control Panel>System says the processor is a Xeon E3-1246 v3

pinhodecarlos 2016-01-20 16:47

[QUOTE=wblipp;423230]How do I figure out which version to use on a machine? For example, I have occasional access to a machine running Win 7. Control Panel>System says the processor is a Xeon E3-1246 v3[/QUOTE]

William, use the Haswell one.

ATH 2016-01-20 18:04

Carlos is correct, if you look at this list and search for 1246 you will find it under the "Haswell based Xeons"-section:
[url]https://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors[/url]

Belteshazzar 2016-01-22 06:12

ATH, any chance you'd be willing to compile one optimized for AMD?

Piledriver (i.e. march/mtune = bdver2) would be the most appropriate target. Though Steamroller and Excavator are newer, Excavator is laptops only, Steamroller (desktop Kaveri APUs) is not much different from Piledriver (instruction wise just adds FSGSBASE), and the main FX line (incl. inexpensive 8-core chips) is still stuck on Piledriver.

I'm a little confused as to why you're using each kind of processor to compile its own binary- is that for testing purposes or is there some reason you're tied to -march=native?

ATH 2016-01-23 21:52

I always assumed it was better to compile on the correct hardware instead of cross compiling, and in this case with GMP and GMPECM it seems I was right.

GMP does a lot of checks of the different types of variables which are available on your computer and compiler, so what won't work for cross compiling, and GMPECM has 2 tuning steps for tuning the parameters.

I tried GMP with --build=haswell-w64-mingw32 and --host=piledriver-w64-mingw32 but that failed. It also failed with just --build=piledriver-w64-mingw32. Then I tried using my GMP version and just compiling GMPECM, but that failed as well.

I did consider making a new zip file with MSYS2 and instructions on how to compile both GMP and GMPECM, and if you do not mind, you can try and "beta" test it. I'll send you a pm.

WraithX 2016-02-27 20:07

[QUOTE=bsquared;427139][QUOTE=jasonp;427136]
Unfortunately the GMP-ECM library is not technically multithread-safe, I think it uses a sieve of eratosthenes that has some global state. You could actually do the community a great service if you could fix that and Msieve does have a GMP-ECM driver. Alternately, YAFU can call multiple copies of the GMP-ECM demo binary.
[/QUOTE]

Yep :) The unsafeness of the library is why yafu only allows multithreading with the external binary. [/QUOTE]
As an FYI to those who may be interested, recent svn changes to GMP-ECM now include a thread safe prime sieve. You can see this mentioned in the NEWS file in svn:
[QUOTE]Changes between GMP-ECM 6.4.4 and GMP-ECM 7.0:
* GMP-ECM is now thread-safe. In particular the "ecmfactor" binary can be
called with say -t 17 to use 17 threads.[/QUOTE]

ATH 2016-02-27 23:24

Haswell: GMP-ECM7 SVN 2840 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2840-haswell.zip"]gmpecm7-svn2840-haswell.zip[/URL]

Sandy Bridge: GMPECM7 SVN 2840 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2840-sandybridge.zip"]gmpecm7-svn2840-sandybridge.zip[/URL]




I still had to comment out line 191 and 203 in "bench_mulredc.c", same error as described here in post #50+#52: [url]http://www.mersenneforum.org/showthread.php?t=16444[/url]

Also had to comment out line #880+#881 in main.c:
[CODE]/* if (verbose >= 2)
printf ("Tuned for %s\n", ECM_TUNE_CASE); */[/CODE]
as ECM_TUNE_CASE was not defined. I think is not meant to use that variable in those line since there is a check if it is defined in line #166-#170:
[CODE]#ifdef ECM_TUNE_CASE
printf ("Tuning parameters from %s\n", ECM_TUNE_CASE);
#else
printf ("ECM_TUNE_CASE not defined.\n");
#endif[/CODE]

WraithX 2016-02-29 02:06

[QUOTE=ATH;427636]I still had to comment out line 191 and 203 in "bench_mulredc.c", same error as described here in post #50+#52: [url]http://www.mersenneforum.org/showthread.php?t=16444[/url]

Also had to comment out line #880+#881 in main.c:[/QUOTE]

Thanks for mentioning this again. This is now fixed in svn 2841.

Gordon 2016-02-29 20:22

[QUOTE=ATH;427636]Haswell: GMP-ECM7 SVN 2840 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2840-haswell.zip"]gmpecm7-svn2840-haswell.zip[/URL]

[/QUOTE]

ecm doesn't have the -t parameter and when I run ecmfactor -h it spits out this error

The program can't start because libwinpthread-1.dll is missing....

ATH 2016-02-29 22:31

Sorry I always forget to consider which dll files are needed with the binaries. I added libwinpthread-1.dll to the zip files.

pinhodecarlos 2016-03-08 22:27

Anyone willing to supply the latest linux binaries please?

WraithX 2016-03-09 00:00

[QUOTE=pinhodecarlos;428444]Anyone willing to supply the latest linux binaries please?[/QUOTE]

The release of version 7.0 is nearing completion. Release candidate 2 is now available. See here for details:
[url]http://lists.gforge.inria.fr/pipermail/ecm-discuss/2016-March/004333.html[/url]

ET_ 2016-04-07 12:21

[QUOTE=WraithX;428451]The release of version 7.0 is nearing completion. Release candidate 2 is now available. See here for details:
[url]http://lists.gforge.inria.fr/pipermail/ecm-discuss/2016-March/004333.html[/url][/QUOTE]

Had issues while making ecm-params.
The file README.gpu is still missing.
I had to look bk to the configure files to find the -enable_gpu parameter.

Luigi

xilman 2016-04-07 15:07

[QUOTE=ET_;430946]Had issues while making ecm-params.
The file README.gpu is still missing.
I had to look bk to the configure files to find the -enable_gpu parameter.

Luigi[/QUOTE]I recommend that you get the svn version.

Paul

ET_ 2016-04-08 08:28

[QUOTE=xilman;430953]I recommend that you get the svn version.

Paul[/QUOTE]

I found the rc1 in the inria forge, and still no README.gpu

I will recheck, maybe I did something wrong...

xilman 2016-04-08 15:48

[QUOTE=ET_;431020]I found the rc1 in the inria forge, and still no README.gpu

I will recheck, maybe I did something wrong...[/QUOTE]I meant to get [c]svn checkout https://scm.gforge.inria.fr/anonscm/svn/ecm/[/c] SVN repository direct from inria. Thereafter [c]svn update[/c] will keep you on the bleeding edge.

Good luck!

Paul

johnadam74 2016-04-12 02:38

Anyone have a foolproof way of compiling this version of the software? I'm trying to compile it on my i7 5820K with Windows. I have tried Cygwin64, mingw64 and Visual Studio and I receive different errors on each program.

I've even tried the SVN latest version.

I'm open to suggestions since I've never had trouble compiling a program before and I've been working on this for over a week now.

Thanks,


John

WraithX 2016-04-12 03:43

[QUOTE=johnadam74;431357]Anyone have a foolproof way of compiling this version of the software? I'm trying to compile it on my i7 5820K with Windows. I have tried Cygwin64, mingw64 and Visual Studio and I receive different errors on each program.

I've even tried the SVN latest version.

I'm open to suggestions since I've never had trouble compiling a program before and I've been working on this for over a week now.

Thanks,


John[/QUOTE]

It is easy to compile once you have your environment set up for it. Since you didn't say what you've tried specifically, or what errors you ran into, I'll give you a run down based on how I compile GMP and GMP-ECM.

First, you'll need MSYS. I get the one from here:
[url]https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[/url]
The current latest is from 2013-05-15, and is called msys+7za+wget+svn+git+mercurial+cvs-rev13.7z
I then extract that to:
[C]c:\msys\msys-20130515\[/C]

Then you'll need mingw64. You can get that here:
[url]https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/[/url]
Choose which compiler version you want, the latest is 4.8.5, 4.9.3, or 5.3.0. Probably go with 4.9.3, unless you want 5.3.0. Then choose "threads-posix", then choose "seh", then download the latest available. Once I've done that I extract it to:
[C]c:\mingw64\mingw64-4.9.3-20150903\[/C]

Then, go back into the msys folder and edit the following file:
[C]c:\msys\msys-20130515\etc\profile[/C]
to change:
[CODE]if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH"[/CODE]
to this:
[CODE]if [ $MSYSTEM == MINGW32 ]; then
# export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH"
export PATH=".:/c/mingw64/mingw64-4.9.3-20150903/bin:/usr/local/bin:/bin:$PATH"[/CODE]

Then, download the latest GMP from [url]https://gmplib.org/[/url] The current latest is 6.1.0.
Open up an msys shell by double clicking the [C]c:\msys\msys-20130515\msys.bat[/C] file. Let's say you extracted GMP to [C]c:\gmp\gmp-6.1.0\[/C], then in the msys shell, you would run the following commands:
[C]cd /c/gmp/gmp-6.1.0/[/C]
[C]./configure[/C]
[C]make[/C]
[C]make check[/C]

If all of that completes successfully, then you need to copy two files:
1) copy [C]gmp.h[/C] from [C]c:\gmp\gmp-6.1.0\[/C] to [C]c:\mingw64\mingw64-4.9.3-20150903\x86_64-w64-mingw32\include\[/C]
2) copy [C]libgmp.a[/C] from [C]c:\gmp\gmp-6.1.0\.libs\[/C] to [C]c:\mingw64\mingw64-4.9.3-20150903\x86_64-w64-mingw32\lib\[/C]

Now you have msys, mingw64, and gmp set up correctly. To get gmp-ecm compiled, download the latest svn, let's say you save those files to:
[C]c:\gmp-ecm\svn_2915\[/C]
Then, in the msys shell, you would:
[C]cd /c/gmp-ecm/svn_2915/[/C]
[C]autoreconf -i[/C]
[C]./configure --enable-asm-redc --build=x86_64-w64-mingw32 --disable-assert[/C]
[C]make[/C]
[C]make check[/C]

This should all complete successfully for you. If you run into any errors, let us know and we can try to help you resolve them. If you don't run into any errors, then you will have a working ecm.exe file that you can use to factor numbers!

xilman 2016-04-12 10:06

[QUOTE=WraithX;431359]
Now you have msys, mingw64, and gmp set up correctly. To get gmp-ecm compiled, download the latest svn, let's say you save those files to:
[C]c:\gmp-ecm\svn_2915\[/C]
Then, in the msys shell, you would:
[C]cd /c/gmp-ecm/svn_2915/[/C]
[C]autoreconf -i[/C]
[C]./configure --enable-asm-redc --build=x86_64-w64-mingw32 --disable-assert[/C]
[C]make[/C]
[C]make check[/C]

This should all complete successfully for you. If you run into any errors, let us know and we can try to help you resolve them. If you don't run into any errors, then you will have a working ecm.exe file that you can use to factor numbers![/QUOTE]
The latest, as of last night, is SVN 2916 and it works well for me. Note that 2914 and below have a serious bug in the GPU portion of GMP-ECM.

I would (and did last night)also run [c]make ecm-params[/c] between [C]make[/C] and [C]make check[/C] for (near) optimal performance.

Brian Gladman 2016-04-12 12:52

[QUOTE=johnadam74;431357]Anyone have a foolproof way of compiling this version of the software? I'm trying to compile it on my i7 5820K with Windows. I have tried Cygwin64, mingw64 and Visual Studio and I receive different errors on each program.

I've even tried the SVN latest version.

I'm open to suggestions since I've never had trouble compiling a program before and I've been working on this for over a week now.

Thanks,


John[/QUOTE]

It builds fine for me with Visual Studio 2013 and CUDA 7.5 (for the GPU build). It won't build with Visual Studio 2015 at the moment becasuse NVIDIA has yet to update its CUDA toolkit to work with this compiler.

If you can let me know what issues you ran into in using the Visual Studio build, I might be able to help.

wombatman 2016-04-12 15:50

[QUOTE=xilman;431372]The latest, as of last night, is SVN 2916 and it works well for me. Note that 2914 and below have a serious bug in the GPU portion of GMP-ECM.

I would (and did last night)also run [c]make ecm-params[/c] between [C]make[/C] and [C]make check[/C] for (near) optimal performance.[/QUOTE]

What was the serious bug? I looked on the bug reporter on Inria, but didn't see anything.

xilman 2016-04-12 16:26

[QUOTE=wombatman;431390]What was the serious bug? I looked on the bug reporter on Inria, but didn't see anything.[/QUOTE]The save files weren't created properly and so were useless. I wasted about a 970-day before Greg Childers' note to ecm-discuss arrived.

Paul

wombatman 2016-04-12 17:40

Ouch! Good to know--looks like I'll be rebuilding GPU-ECM tonight. :smile:

ATH 2016-04-12 20:49

I took a stab at creating a "compile yourself"-package again. I did one a few years ago where I tried to automate it with batch files.

This time I made it simpler with just a readme file explaining the steps and a working compiling environment. This is only for compiling GMP-ECM on Windows 64 bit without gpu support.



Download the compressed Msys2 folder: [URL="http://hoegge.dk/mersenne/gmpecm-compile.zip"]gmpecm-compile.zip[/URL] (234 Mb)

You should do a proper anti virus check and whatever you deem necessary.

First rename the "gmpecm-compile.zip" file to "gmpecm-compile.7z" because my site does not allow the .7z extension, and use 7-zip to extract it to C:\ ([url]http://www.7-zip.org[/url]).
You [I]can[/I] extract the file with 7-zip without renaming it, but it will give a warning that it is not a .zip file.

It will extract one folder "C:\msys64" which takes about 1 Gb. This is the Msys2 program with Mingw64 and other packages installed along with the source for GMP and GMPECM.

[I][B]If you do not want it on the C-drive, you can extract it to another drive or folder for example d:\msys64, but then you need to create a symbolic link on the c-drive. You need to use a command prompt with administrator rights and then type:
c:
cd\
mklink /D c:\msys64 d:\msys64
Replace "d:\msys64" with the full path to where ever you extracted the folder. But you will still have to access the folder through the c:\msys64 symbolic link.[/I][/B]


Start "c:\msys64\mingw64_shell.bat" to start MSYS2. It should open MSYS2 along with instructions "c:\msys64\home\compile-readme.txt" in a Notepad. If the text file does not open, then open it manually to follow the instructions.

Here is the readme file if you already have Msys or Msys2: [URL="http://hoegge.dk/mersenne/compile-readme.txt"]compile-readme.txt[/URL]

Let me know of any errors or missing or unclear instructions.

henryzz 2016-04-13 18:00

[QUOTE=Brian Gladman;431378]It builds fine for me with Visual Studio 2013 and CUDA 7.5 (for the GPU build). It won't build with Visual Studio 2015 at the moment becasuse NVIDIA has yet to update its CUDA toolkit to work with this compiler.

If you can let me know what issues you ran into in using the Visual Studio build, I might be able to help.[/QUOTE]

Why does nvidia stay so far behind on this?
Why are they also not very backwards or forwards compatible? Do they continuously rely on new features or something? In general compilers are pretty forwards compatible at least.

xilman 2016-04-13 20:15

[QUOTE=henryzz;431473]Why does nvidia stay so far behind on this?
Why are they also not very backwards or forwards compatible? Do they continuously rely on new features or something? In general compilers are pretty forwards compatible at least.[/QUOTE]Several possible reasons.

1) Almost all serious computational systems use a Unix-like system and Windoze is a relatively small fraction of their customer base;
2) They like to be behind the bleeding edge so that their solid and reliable products don't produce nasty surprises;
3) Although the new features may be supported by older infrastructure, they don't wish to lose customers and/or be sued when they aren't;
4) They would prefer others, who enjoy being at the bleeding edge, to find all the gotchas and their fixes rather than paying their own engineers to do that task;
5) ...
6) Profit!


Other reasons left as an exercise for the reader.

(The lack of support for recent versions of gcc mitigates against 1) but doesn't rule it out.)

Brian Gladman 2016-04-13 21:39

[QUOTE=henryzz;431473]Why does nvidia stay so far behind on this?
Why are they also not very backwards or forwards compatible? Do they continuously rely on new features or something? In general compilers are pretty forwards compatible at least.[/QUOTE]
I suspect that the process of building their binary components with their compiler and then getting the various host compilers to integrate and deliver these components onto the target platforms is very host compiler specific and involves quite a lot of engineering and a lot of testing. They have also put a lot of new capabilities into CUDA 8 and I would guess that its taking longer than they expected to get all of this into a release state.

It is certainly a nuisance having to keep old versions of Visual Studio around, especially so given the advances made in VS 2015 in terms of C++ support.

Their current estimate is that CUDA 8 with VS 2015 support will be released in June and I plan to update the msieve and ECM builds then.

bdodson 2016-08-19 14:46

[QUOTE=ATH;427636]Haswell: GMP-ECM7 SVN 2840 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2840-haswell.zip"]gmpecm7-svn2840-haswell.zip[/URL]

Sandy Bridge: GMPECM7 SVN 2840 with GMP 6.1.0: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2840-sandybridge.zip"]gmpecm7-svn2840-sandybridge.zip[/URL]

I still had to comment out ... [/QUOTE]

Is this the current haswell version? Must be better
than benchmarking with the old athlon ... Nodes
are dual 10-core or dual 12-core.

[quote]
processor : 5
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
stepping : 2
microcode : 0x36
cpu MHz : 2599.988
cache size : 25600 KB
[/quote]

ATH 2016-08-19 20:09

Here is a newer one: SVN 2968 compiled on Aug 2nd: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2968-haswell.zip"]gmpecm7-svn2968-haswell.zip[/URL]

I can compiled the newest one if needed.

Gordon 2016-08-19 20:24

[QUOTE=ATH;440276]Here is a newer one: SVN 2968 compiled on Aug 2nd: [URL="http://hoegge.dk/mersenne/gmpecm7-svn2968-haswell.zip"]gmpecm7-svn2968-haswell.zip[/URL]

I can compiled the newest one if needed.[/QUOTE]

Much difference between that and 2908, in particular the inability to use more than 16gb of memory?

ATH 2016-08-19 20:59

[QUOTE=Gordon;440279]Much difference between that and 2908, in particular the inability to use more than 16gb of memory?[/QUOTE]

No, this is the one I compiled for you to test your problem in the other thread.

bdodson 2016-08-20 12:28

linux binary
 
[QUOTE=Dubslow;325614]Okay then.

Attached is a GMP-ECM 7.0-dev, SVN r2345 binary for GNU-Linux (x86-64), compiled with gcc 4.7.2 and statically linked against GMP 5.1.0. Documentation included.[/QUOTE]

Let's try this again. Is this the most recent gmp-ecm linux binary? I see
requests from Carlos on 2015-12-09 and again on 2016-03-08. But everything
since 7.0-dev is windows? -Bruce

(Thanks to ATH for pm reply.)

Dubslow 2016-08-22 09:03

1 Attachment(s)
[QUOTE=bdodson;440328]Let's try this again. Is this the most recent gmp-ecm linux binary? I see
requests from Carlos on 2015-12-09 and again on 2016-03-08. But everything
since 7.0-dev is windows? -Bruce

(Thanks to ATH for pm reply.)[/QUOTE]

Errr... not sure this is of real value to you, but here's an ECM 7.0.1 tag compiled for GNU-Linux x86_64.

Lesse... gcc and gmp are apparently verions... 4.9.2 and... 6.0.0 respectively.

My architecture is the now-old Sandy Bridge, and is probably compiled as such.

Let me know if you want me to attempt 1) a newer dev version of ecm 2) a never version of gmp or 3) compiling for a different architecture than mine own, which will likely result in decent to significant speed bumps on recent Intel hardware if not AMD too.

[code]./ecm -printconfig
Compilation options:
Included GMP header files version 6.0.0
GMP_NUMB_BITS = 64
Tuning parameters from x86_64/k8/params.h
GWNUM_VERSION undefined
HAVE_SSE2 undefined
HAVE___GMPN_ADD_NC undefined
HAVE___GMPN_MOD_34LSUB1 = 1
HAVE___GMPN_REDC_1 = 1
USE_ASM_REDC = 1
WINDOWS64_ABI undefined
WANT_ASSERT undefined
_OPENMP undefined
MPZMOD_THRESHOLD = 21
REDC_THRESHOLD = 512
MUL_NTT_THRESHOLD = 256
NTT_GFP_TWIDDLE_DIF_BREAKOVER = 12
NTT_GFP_TWIDDLE_DIT_BREAKOVER = 17
PREREVERTDIVISION_NTT_THRESHOLD = 16
POLYINVERT_NTT_THRESHOLD = 512
POLYEVALT_NTT_THRESHOLD = 128
MPZSPV_NORMALISE_STRIDE = 128
WITH_GPU undefined
[/code]

Sorry about the wait Carlos. Compiling isn't *quite* my idea of a leisurely afternoon. That said, I suppose I'm taking requests for now at least, let me know if you'd like any of the three options above.

bdodson 2016-08-22 17:34

[QUOTE=Dubslow;440421]Errr... not sure this is of real value to you, but here's an ECM 7.0.1 tag compiled for GNU-Linux x86_64.

Lesse... gcc and gmp are apparently verions... 4.9.2 and... 6.0.0 respectively.

My architecture is the now-old Sandy Bridge, and is probably compiled as such.
....

Sorry about the wait Carlos. Compiling isn't *quite* my idea of a leisurely afternoon. That said, I suppose I'm taking requests for now at least, let me know if you'd like any of the three options above.[/QUOTE]

Super! I've already come back to expecting to have to compile gmp and
the gmp-ecm locally to get better tuning, but still hoping not to have to
spend THIS afternoon on that. Production is going to depend on updating
my maui/pbs submit file for "SLURM" or-some-such. One node having
2x10 cores or 2x12 cores. Twenty copies of your binary seem to be
running ok, in an interactive node; question is whether I'll get paging in
step2; in which case I'd cut back. I've been running six jobs on a 16-core
node on the old cluster. SamW reports same issue at Purdue. -bdodson

ATH 2016-08-23 00:10

I have Linux Mint installed on a Virtual Box virtuel machine, and I managed to compile the newest SVN 2975 for Linux on the Haswell:

[URL="http://hoegge.dk/mersenne/gmpecm7-svn2975-haswell.tar.gz"]gmpecm7-svn2975-haswell.tar.gz[/URL]

bdodson 2016-08-23 18:41

[QUOTE=ATH;440471]I have Linux Mint installed on a Virtual Box virtuel machine, and I managed to compile the newest SVN 2975 for Linux on the Haswell:

[URL="http://hoegge.dk/mersenne/gmpecm7-svn2975-haswell.tar.gz"]gmpecm7-svn2975-haswell.tar.gz[/URL][/QUOTE]

Thanks, I'll have a look. The new cluster has 128Gb/node, c. 6Gb/ core;
and it looks like I will be able to use all 20 cores. -Bruce

pinhodecarlos 2016-08-26 09:03

Thank you both for the linux binaries.

bdodson 2016-08-31 12:08

[QUOTE=pinhodecarlos;440720]Thank you both for the linux binaries.[/QUOTE]

A snapshot of timings
[code]
b402-12p274.ta-has01-linux-x86:Step 1 took 10795749ms [ATH]
b402-12p274.ta-has01-linux-x86:Step 2 took 4608298ms

b401-12p274.ta01-linux-x86:Step 1 took 13440512ms [Dubslow]
b401-12p274.ta01-linux-x86:Step 2 took 5162233ms

b402-12p274.ta01-athlon:Step 1 took 17729420ms [old athlon]
b402-12p274.ta01-athlon:Step 2 took 5109079ms [/code]
Not sure about Step 2, memory intensive timing; step 1 looks
fairly serious. The old, athlon cluster (Ivy Bridge) got
[code]
Step 1 took 22512143ms
Step 2 took 8342209ms [/code]
all B1=3e9 on a C213. Looks more like a factor of two
than the theory factor of four timing improvement being
advertised. Suppose the next question is whether
I can do any better by tuning gmp here.

A reading from top during step 2 showed 5.36Gb to 6.28Gb
of memory use/job of the 20 jobs; I won't be able to make
too much of an increase in either B1 or the size without
cutting back to fewer jobs/node.
-Bruce

ATH 2016-08-31 21:44

[QUOTE=bdodson;441169]A reading from top during step 2 showed 5.36Gb to 6.28Gb
of memory use/job of the 20 jobs; I won't be able to make
too much of an increase in either B1 or the size without
cutting back to fewer jobs/node.
-Bruce[/QUOTE]

You can always use the -maxmem or -k option.

Nice to see that the binary worked.

LaurV 2016-09-08 05:49

The last "sandy-6" from ATH looks also much faster, in this part of the world, compared with what we were using before (some version from 2013). Could you compile a 32bit windoze of it, for an old sandy running here around? (in fact an ivy, i5-3470, win xp 32 bits, for which the actual exe crashes with "this is not a win32 application" - which is normal, hehe). Also, I see a 7.0.3 on the svn there, any benefits in switching?

(edit, no, there in no way I could update this particular machine to a 64-bit os)

ATH 2016-09-09 02:42

I'm not sure why an Ivy Bridge cannot run 64-bit OS, but here it is a 32 bit version:


Ivy Bridge - GMPECM 7.0.4 svn 2988 32bit:

[URL="http://hoegge.dk/mersenne/gmpecm7-svn2988-ivybridge-32bit.zip"]gmpecm7-svn2988-ivybridge-32bit.zip[/URL]


Here is a normal 64bit Ivy Bridge GMPECM 7.0.4 svn 2988:

[URL="http://hoegge.dk/mersenne/gmpecm7-svn2988-ivybridge.zip"]gmpecm7-svn2988-ivybridge.zip[/URL]

xilman 2016-09-09 15:11

[QUOTE=ATH;441992]I'm not sure why an Ivy Bridge cannot run 64-bit OS, but here it is a 32 bit version[/QUOTE]
SWMBO's machine is running 32-bit Windoze because, allegedly, some application and/or device driver doesn't work under the 64-bit version.

I'm trying to move her to a 64-bit Linux installation.

ATH 2016-09-11 00:04

Skylake build GMPECM7.0.4 svn 2988:

[URL="http://hoegge.dk/mersenne/gmpecm7-svn2988-skylake.zip"]gmpecm7-svn2988-skylake.zip[/URL]

yoyo 2016-12-24 17:24

Can I request a static linked gmp-ecm version for Core 2 for Linux 64/32?

yoyo 2016-12-27 12:00

[URL="https://www.rechenkraft.net/yoyo/download/ecm-svn3013-aarch64"]A gmp-ecm binary (svn3013) for aarch64 (ARM Linux 64 bit)[/URL].

ATH 2016-12-27 15:26

Core2 static binaries for Linux (x86) SVN3013:

64bit: [URL="http://hoegge.dk/mersenne/gmpecm-svn3013-core2-linux.tar.gz"]gmpecm-svn3013-core2-linux.tar.gz[/URL]
32bit: [URL="http://hoegge.dk/mersenne/gmpecm-svn3013-core2-linux32bit.tar.gz"]gmpecm-svn3013-core2-linux32bit.tar.gz[/URL]

ATH 2016-12-27 22:00

Core2 static binaries for Windows SVN3013:

64bit: [URL="hoegge.dk/mersenne/gmpecm-svn3013-core2.zip"]gmpecm-svn3013-core2.zip[/URL]
32bit: [URL="hoegge.dk/mersenne/gmpecm-svn3013-core2-32bit.zip"]gmpecm-svn3013-core2-32bit.zip[/URL]

ET_ 2017-01-30 13:35

[QUOTE=yoyo;449984][URL="https://www.rechenkraft.net/yoyo/download/ecm-svn3013-aarch64"]A gmp-ecm binary (svn3013) for aarch64 (ARM Linux 64 bit)[/URL].[/QUOTE]

Does aarch64on ARM8 means that it can be run on a Raspberry PI 3?

Luigi

yoyo 2017-01-30 17:59

Try it. It depends on your operating system.
I compiled them on an Odroid with Debian and send them now around with Boinc projekt yoyo@home.

ET_ 2017-01-31 09:23

[QUOTE=yoyo;451847]Try it. It depends on your operating system.
I compiled them on an Odroid with Debian and send them now around with Boinc projekt yoyo@home.[/QUOTE]

That's exactly what I needed to know, thanks :smile:

Luigi

diep 2017-03-29 15:43

[QUOTE=ATH;420862]If anyone is still using Core2 for GMP-ECM:

Core2; GMP-ECM7 SVN 2749 with GMP 6.1.0: [URL="hoegge.dk/mersenne/gmpecm7-svn2749-core2.zip"]gmpecm7-svn2749-core2.zip[/URL] (compiled on a Core2Quad (Yorksfield) Q9450)[/QUOTE]

Yes i am trying it now at my L5420 Xeon box seeing whether with a quick run i can find a bunch of factors.

Many thanks for posting it!

With settings: ecm -base2 2 -one -maxmem 2000 -v 50 < rbh_ecm.txt
Yet it seems to not use more than 277MB according to its own estimate.
Nice using up roughly 13 minutes.

First one it started with is 69 * 2^ 4613751 - 1
No factor found.

How do i get a neat list with factors found printed to disk?
That file i gave it has 1000 lines.

pepi37 2017-04-04 20:31

From ECM- read me file
[QUOTE]The P−1 method works well when the input number has a prime factor P such that P−1 is "smooth", i.e., has all its prime factor less or equal the step 1 bound B1, except one which may be less or equal the second step bound B2. For P=67872792749091946529, we have P−1=25*11*17*19*43*149*8467*11004397, so this factor will be found as long as B1>=8467 and B2>=11004397[/QUOTE]Since I still playing with P-1 I try several times to do on Prime95 ( with success) and on GMP-ECM ( last version 7.0.5 is nearly 2x faster then 7.0.4) but without any success. On the first sight it looks like Prime95 and GMP-ECM do the same thing but there is two big differences:
On mega-digit candidate you can run Prime 95 without any problem and he will be done in few minutes with nice B! and B2 ( in my tests was B1=80000 and B2=800000)
Using same values on GMP-ECM do only two things: or program stops ( he is not stop really - but will work many hours/days)or eat so much memory .
I still dont know why GMP-ECM is working on this way, then in same time with same candidate Prime95 work without any problem ,and from time to time find factor.
I contact many people that use GMP-ECM, but only got partially answers, with any true direction. Even giving them times and candidate from Prime95 wont do no good.
They are not caring , or they didn't understand what I ask .
Even with 2milion digits Prime95 do P-1 in 10 -15 minutes and using 1 GB of RAM. I thing that P-1 on GMP-ECM is not possible even running one whole day.
What is difference and why is such big difference it is still mystery for me.
Maybe someone here know the answer?

VBCurtis 2017-04-04 20:43

Pepi-
The two programs use different internal methods; Prime95 is quite fast in stage 1, and works for large inputs, but only works on certain forms; while GMP-ECM works on any input and is much much faster in stage 2 for those inputs that fit into memory, but uses a slower stage 1 and requires an awful lot of memory for stage 2 on large inputs.

Use the program that suits your input, and accept they're each quite good at what they do.

pepi37 2017-04-04 20:56

[QUOTE=VBCurtis;456194]Pepi-
The two programs use different internal methods; Prime95 is quite fast in stage 1, and works for large inputs, but only works on certain forms; while GMP-ECM works on any input and is much much faster in stage 2 for those inputs that fit into memory, but uses a slower stage 1 and requires an awful lot of memory for stage 2 on large inputs.

Use the program that suits your input, and accept they're each quite good at what they do.[/QUOTE]
Thanks: so one mystery is over.
Can you solve my next "problem" - every one told next thing: using Pminus1 is same as using one curve to high B1 and B2.
How to setup to use GMP-ECM with same efficiency as Pminus1: to use for example 10 curves but with lower B1 and B2? Using ECM2 mode on Prime95 gives me many times lower factor findings then use P-1. For my purposes it looks like P-1 is winning method, can be ECM2 used for same purpose, similar timings and same number of finding factors?

VBCurtis 2017-04-04 23:07

Mersenne numbers have factors of the form 2kp+1, where p is the exponent. P-1 factoring searches for factors P such that P-1 is smooth; for mersenne factors, P-1 = 2kp+1 -1 = 2kp. So, P-1 gets the "2p" portion of the factor for free, which is why it is about 8 digits better at finding factors of mersenne numbers than regular ECM; this is the same reason that Mersennes are trial-factored very quickly but not sieved in bulk the way CRUS/RPS/etc do their pre-factoring.

Regular ECM cannot leverage that special property of mersenne factors, but can still be useful, albeit at much smaller bounds and finding smaller factors than similar P-1 effort will find.

VictordeHolland 2017-04-05 00:44

[QUOTE=pepi37;456195]Thanks: so one mystery is over.
Can you solve my next "problem" - every one told next thing: using Pminus1 is same as using one curve to high B1 and B2.
[/quote]
read alpertron's posts in [url]http://mersenneforum.org/showthread.php?t=19605&page=22[/url]
Don't read mine, they were nonsense :razz: .

[quote]
How to setup to use GMP-ECM with same efficiency as Pminus1: to use for example 10 curves but with lower B1 and B2? Using ECM2 mode on Prime95 gives me many times lower factor findings then use P-1. For my purposes it looks like P-1 is winning method, can be ECM2 used for same purpose, similar timings and same number of finding factors?[/QUOTE]
They're different programs with different strengths:
Prime95: fast stage1, small memory requirement for stage2
GMP-ECM: works on non-mersenne numbers and fast stage2 for small exponents (but with higher memory requirements).

ATH 2018-02-20 16:02

It's been a while since I compiled Windows builds, and I just saw there was a new GCC 7.3.0 with the newest Msys2. Compiled the newest SVN 3027:

[URL="http://hoegge.dk/mersenne/gmpecm-svn3027-sandybridge.zip"]gmpecm-svn3027-sandybridge.zip[/URL]

[URL="http://hoegge.dk/mersenne/gmpecm-svn3027-ivybridge.zip"]gmpecm-svn3027-ivybridge.zip[/URL]

[URL="http://hoegge.dk/mersenne/gmpecm-svn3027-haswell.zip"]gmpecm-svn3027-haswell.zip[/URL]

[URL="http://hoegge.dk/mersenne/gmpecm-svn3027-skylake.zip"]gmpecm-svn3027-skylake.zip[/URL] (Not the newest AVX512 Skylakes).

henryzz 2018-02-25 14:13

Is it possible to create fat binaries rather than lots of them?

kriesel 2018-07-05 23:47

Anything reasonably current available for any of the following?
Arrandale Win7 64 bit
Gainestown Win7 64 bit
Kaby Lake Win10 or 7 64 bit
Westmere-EP Win7 64-bit

ATH 2018-07-08 04:19

I created another automatic script to compile GMP and GMP-ECM for Windows using MSYS2: [URL="http://hoegge.dk/mersenne/gmpecmcompile.zip"]gmpecmcompile.zip[/URL] (289 MB)

You need to use [url]https://7-zip.org[/url] to unpack it. It is just one folder "msys64" with a size of ~1.4 GB unpacked. You should unpack it to C:\ so the folder becomes C:\msys64 (you should always run virus scan on stuff like this to be safe)

Start MSYS2 with the file: C:\msys64\msys2_shell.cmd

To start compiling GMP and GMP-ECM in MSYS2 type:
./gmpecmcompile

Choose your CPU in the menu or the closest one to it, and it should compile both GMP and GMP-ECM, it will take 40+ minutes.



If you don't trust downloading this folder, I can make a guide to install MSYS2 and install the needed packages, and then just link the script itself. Just let me know if I should do this.

Dylan14 2019-04-17 20:21

1 Attachment(s)
Attached is a binary of svn 3038, compiled for the Skylake architecture (not AVX-512) and Windows 64 bit:

Belteshazzar 2019-09-29 21:22

2 Attachment(s)
Here's windows versions for Zen/Zen+ (Summit Ridge, Raven Ridge, Pinnacle Ridge) and Steamroller (Kaveri), compiled with mingw gcc 9.2. For some reason the binaries also needed a libgmp-10.dll, which I've included.

kruoli 2019-11-10 18:53

[QUOTE=ATH;491307]I created another automatic script to compile GMP and GMP-ECM for Windows using MSYS2[/QUOTE]

Wow, thanks!

I put it exactly in the folder like you instructed, started the file you mentioned and executed the command. But he cannot file the "tar" binary for some reason.

Is it feasible to extend the script such that it also grabs the latest GMP sources?

ATH 2019-11-10 21:12

I guess it could, but new GMP versions comes out pretty rarely, it should be using the newest GMP 6.1.2 ? What exact error are you getting?

kruoli 2019-11-10 21:58

There seems to be at least a bit of traffic at [url]https://gmplib.org/repo/gmp/[/url].

It says:
[CODE]./gmpecmcompile: Zeile 210: tar: Kommando nicht gefunden.
./gmpecmcompile: Zeile 212: cd: /c/msys64/home/gmp-6.1.2: No such file or directory[/CODE]
This translates to:
[CODE]./gmpecmcompile: line 210: tar: Command not found.
./gmpecmcompile: line 212: cd: /c/msys64/home/gmp-6.1.2: No such file or directory[/CODE]

Actually, [FONT="Courier New"]/usr/bin[/FONT] does not include a [FONT="Courier New"]tar[/FONT] binary.
It cannot [FONT="Courier New"]cd[/FONT] since the call to [FONT="Courier New"]tar[/FONT] never actually created that folder.

ATH 2019-11-11 08:16

1 Attachment(s)
I'm not sure why your error is in German, I'm don't think that MSYS2 follows the Windows language?

Did you extract the file [B]gmpecmcompile.zip[/B] with 7-zip to [B]C:\[/B] so the folder is called [B]c:\msys64[/B] ?

The file to start MSYS2 should be: [B]C:\msys64\msys2_shell.cmd[/B] and when you start it, it should look like the screenshot. If you do a "ls -l" the tar file should be right there.

The tar file is located here: [B]C:\msys64\home\gmp-6.1.2.tar[/B]

kruoli 2019-11-11 13:58

4 Attachment(s)
Could you please type [FONT="Courier New"]which tar[/FONT] on your end? I have a suspicion...

[QUOTE=ATH;530271]I'm not sure why your error is in German, I'm don't think that MSYS2 follows the Windows language?[/QUOTE]
It seems to do that for some reason... (see also in the screenshots):
[CODE]Oliver Kruse@OLLAPTOP MSYS /c/msys64/home
# echo $LANG
de_DE.UTF-8[/CODE]

[QUOTE=ATH;530271]Did you extract the file [B]gmpecmcompile.zip[/B] with 7-zip to [B]C:\[/B] so the folder is called [B]c:\msys64[/B]?[/QUOTE]
Yes, I am using 7-zip 19.00 x64. See the screenshots, the path is correct (I actually extracted it freshly to make those screenshots).

[QUOTE=ATH;530271]The file to start MSYS2 should be: [B]C:\msys64\msys2_shell.cmd[/B] and when you start it, it should look like the screenshot. If you do a "ls -l" the tar file should be right there.[/QUOTE]
Yes, that's not the problem. But when starting the script, it simply cannot find [FONT="Courier New"]tar[/FONT].

[QUOTE=ATH;530271]The tar file is located here: [B]C:\msys64\home\gmp-6.1.2.tar[/B][/QUOTE]
Indeed, see the screenshots.

ATH 2019-11-11 17:53

Ah it was the tar program itself you were missing, I misunderstood.
I had tar.exe in my windows\system32 folder for some reason, so I did not notice it needed to be installed.

You can install it in MSYS2 with the command:
pacman -S tar

I also updated the zip file, so it is already installed.

kruoli 2019-11-11 18:44

Nice! This time, I got a working ecm.exe (if I ignore the problem with the missing libgmp-10.dll as seen previously, which I then fixed manually).
[QUOTE=Belteshazzar;526926]For some reason the binaries also needed a libgmp-10.dll.[/QUOTE]

ATH 2019-11-12 10:43

You can find libgmp-10.dll and any other needed files in the [I]C:\msys64\mingw64\bin[/I] folder. You can add that folder to the PATH variable, or copy just that file to another folder in your PATH variable or to the folder with ecm.exe.



Anyone know why libgmp-10.dll that comes with MSYS2 is needed for MSYS2 programs? Programs still uses the GMP version you compiled yourself, you can check by making a C/C++ program printing the GMP version used:
printf("%i %i %i\n",__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL);

and it shows it actually uses the version you compiled yourself.

Here is even an example of a program not using GMP at all that requires libgmp-10.dll:
[url]https://stackoverflow.com/questions/6951938/libgmp-10-dll-is-missing[/url]

unconnected 2019-11-12 14:00

JIC, if anyone have 32bit static build for Linux, please share. Can't compile it by myself due to many compiler errors.

PhilF 2019-11-12 15:02

There is a 32-bit version compiled for Ivy Bridge in this post:

[url]https://www.mersenneforum.org/showpost.php?p=441992&postcount=439[/url]


All times are UTC. The time now is 23:19.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.