mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   YAFU (https://www.mersenneforum.org/forumdisplay.php?f=96)
-   -   YAFU 2.0 (https://www.mersenneforum.org/showthread.php?t=26681)

kruoli 2021-04-21 17:43

Sorry, I do not own any AVX-512 capable CPU. :no: (I have a Xeon Phi add in card, but currently I have no system to run it in.)

The system where I compiled YAFU was a Threadripper 1950X. When tuning, I got some segfaults (in the second SIQS, the first one went fine), so I'll have to investigate what happened later.

ConceptJunkie 2021-04-21 17:48

Long-time lurker with lame newb question
 
Hi,

I've been using YAFU in conjunction with my calculator tool for about 5 years ([url]https://github.com/ConceptJunkie/rpn[/url]) and I'm excited about this new release. My lame question is this:

Is there any place to get a compiled Windows executable for YAFU?

There's a lot of stuff to build and I'd rather not start down that road unless I really need to, because I've seen the build instructions for Windows in the past, and they're quite involved.

My current obsession for the last couple weeks is computing the first prime after 10^n. I'm up to 3500-and-some right now. But if there's a new YAFU to try, maybe I'll go back to playing with aliquot sequences.

If I need to pull up my big boy pant and just build the thing, I will.

axn 2021-04-21 17:56

[QUOTE=ConceptJunkie;576403]My current obsession for the last couple weeks is computing the first prime after 10^n. I'm up to 3500-and-some right now. [/QUOTE]

Are you aware of [URL="http://www.worldofnumbers.com/borderprp.htm"]Border PRPs[/URL]?

bsquared 2021-04-21 18:23

[QUOTE=ConceptJunkie;576403]Hi,

I've been using YAFU in conjunction with my calculator tool for about 5 years ([url]https://github.com/ConceptJunkie/rpn[/url]) and I'm excited about this new release. My lame question is this:

Is there any place to get a compiled Windows executable for YAFU?

There's a lot of stuff to build and I'd rather not start down that road unless I really need to, because I've seen the build instructions for Windows in the past, and they're quite involved.

My current obsession for the last couple weeks is computing the first prime after 10^n. I'm up to 3500-and-some right now. But if there's a new YAFU to try, maybe I'll go back to playing with aliquot sequences.

If I need to pull up my big boy pant and just build the thing, I will.[/QUOTE]

There are 3 .exe's here: [url]https://github.com/bbuhrow/yafu[/url]

yafu-mingw-avx2.exe and yafu-mingw-skyx.exe are a little faster than yafu-x64.exe if you have cpus that support avx2 or avx512 but I think you have to use them in a mingw shell. yafu-x64.exe should be pretty general purpose and is only really only different in that it won't reach maximum SIQS speed.

I recommend giving a build a try using windows subsystem for linux (WSL) on windows 10. But totally understand if you don't want to go down that road.

Either way, thanks, and welcome to the forum.

ConceptJunkie 2021-04-21 18:26

[QUOTE=axn;576404]Are you aware of [URL="http://www.worldofnumbers.com/borderprp.htm"]Border PRPs[/URL]?[/QUOTE]

No, but I know the information is out there. You can find a list of the first 14,000 of them at [url]https://oeis.org/A033873[/url].

I see that BorderPRP has most of them up to 100,000.

wombatman 2021-04-23 00:49

Trying to compile 2.0 with latest GMP (6.2.1) and GMP-ECM (from svn update) using "make USE_SSE41=1 ECM=1 NFS=1". ytools and ysieve compile without issue. Trying to compile yafu throws the following error:

[CODE]/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:65: multiple definition of `vecmulmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:63: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:69: multiple definition of `vecaddsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:67: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:66: multiple definition of `vecsqrmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:64: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:68: multiple definition of `vecsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:66: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:67: multiple definition of `vecaddmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:65: first defined here
/usr/bin/ld: factor/autofactor.o: in function `do_work':
/home/wombat/yafu/factor/autofactor.c:491: undefined reference to `nfs'
/usr/bin/ld: top/cmdParser/calc.o: in function `feval':
/home/wombat/yafu/top/cmdParser/calc.c:2844: undefined reference to `nfs'
/usr/bin/ld: /home/wombat/yafu/top/cmdParser/calc.c:2402: undefined reference to `nfs'[/CODE]

I'm sure I've forgotten something that needs to be changed, but I can't figure out what.

ConceptJunkie 2021-04-23 03:54

[QUOTE=bsquared;576409]There are 3 .exe's here: [url]https://github.com/bbuhrow/yafu[/url] [/QUOTE]

Thank you. I saw the Git repo, and checked for releases (which were all ancient), but didn't notice that there were EXEs. I tried it out and it works fine for me. Thanks!

I'll definitely keep an eye on the progress of this fascinating project. Even after all these years, the idea that I can factor a hundred-digit number in anywhere from a few minutes to a couple hours still blows my mind.

I've always been a little obsessed with numbers, and there's so much cool stuff available these days to indulge my interests. YAFU is definitely one of the coolest.

bsquared 2021-04-23 15:25

[QUOTE=wombatman;576562]Trying to compile 2.0 with latest GMP (6.2.1) and GMP-ECM (from svn update) using "make USE_SSE41=1 ECM=1 NFS=1". ytools and ysieve compile without issue. Trying to compile yafu throws the following error:

[CODE]/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:65: multiple definition of `vecmulmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:63: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:69: multiple definition of `vecaddsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:67: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:66: multiple definition of `vecsqrmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:64: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:68: multiple definition of `vecsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:66: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:67: multiple definition of `vecaddmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:65: first defined here
/usr/bin/ld: factor/autofactor.o: in function `do_work':
/home/wombat/yafu/factor/autofactor.c:491: undefined reference to `nfs'
/usr/bin/ld: top/cmdParser/calc.o: in function `feval':
/home/wombat/yafu/top/cmdParser/calc.c:2844: undefined reference to `nfs'
/usr/bin/ld: /home/wombat/yafu/top/cmdParser/calc.c:2402: undefined reference to `nfs'[/CODE]

I'm sure I've forgotten something that needs to be changed, but I can't figure out what.[/QUOTE]

Hopefully just fixed the duplicate vec*_ptr problems - please try it again after updating. I'm not sure why you are getting the undefined nfs errors since you are including NFS=1. Maybe do a make clean (make clean NFS=1 USE_SSE41=1) and rebuild.

[edit]
You shouldn't need the ECM=1 flag... that is an msieve thing. But including it is harmless.

bsquared 2021-04-23 15:30

[QUOTE=ConceptJunkie;576575]Thank you. I saw the Git repo, and checked for releases (which were all ancient), but didn't notice that there were EXEs. I tried it out and it works fine for me. Thanks!

I'll definitely keep an eye on the progress of this fascinating project. Even after all these years, the idea that I can factor a hundred-digit number in anywhere from a few minutes to a couple hours still blows my mind.

I've always been a little obsessed with numbers, and there's so much cool stuff available these days to indulge my interests. YAFU is definitely one of the coolest.[/QUOTE]

Thanks! Glad you like it. It has been a lot of fun tinkering with it over the years. And as cpu vendors keep adding new things (AVX512, more and more threads), there always seems to be new ways to optimize.

bsquared 2021-04-23 15:32

[QUOTE=kruoli;576402]Sorry, I do not own any AVX-512 capable CPU. :no: (I have a Xeon Phi add in card, but currently I have no system to run it in.)

The system where I compiled YAFU was a Threadripper 1950X. When tuning, I got some segfaults (in the second SIQS, the first one went fine), so I'll have to investigate what happened later.[/QUOTE]

If you are unable to make progress please let me know. I don't have any AMD systems to test on, but obviously I would like yafu to be able to run on them.

wombatman 2021-04-23 20:13

[QUOTE=bsquared;576622]Hopefully just fixed the duplicate vec*_ptr problems - please try it again after updating. I'm not sure why you are getting the undefined nfs errors since you are including NFS=1. Maybe do a make clean (make clean NFS=1 USE_SSE41=1) and rebuild.

[edit]
You shouldn't need the ECM=1 flag... that is an msieve thing. But including it is harmless.[/QUOTE]

Still seeing the same errors (minus the NFS ones) after updating, running make clean, and re-making:

[CODE]/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:65: multiple definition of `vecmulmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:63: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:69: multiple definition of `vecaddsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:67: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:66: multiple definition of `vecsqrmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:64: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:68: multiple definition of `vecsubmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:66: first defined here
/usr/bin/ld: ./libyecm.a(avxecm.o):/home/wombat/yafu/factor/avx-ecm/avxecm.c:67: multiple definition of `vecaddmod_ptr'; ./libyecm.a(avxppm1.o):/home/wombat/yafu/factor/avx-ecm/avxppm1.c:65: first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:422: yafu] Error 1[/CODE]

I also did a clean re-make of both ytools and ysieve, just in case, before the remake of yafu proper.


All times are UTC. The time now is 14:44.

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