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)

bsquared 2021-04-23 23:40

[QUOTE=wombatman;576664]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.[/QUOTE]

Well, something isn't quite right because those function pointer definitions don't even exist in that file anymore. I consolidated the duplicate definitions into vec_common.c. Just double-checked and the corrections are checked in. Are you sure you updated yafu to the latest revision?

wombatman 2021-04-24 00:51

[QUOTE=bsquared;576686]Are you sure you updated yafu to the latest revision?[/QUOTE]

I used "git fetch" in each of the directories, but I'm also not overly familiar with git. Is that the proper way to update to the latest version of the repository?

EdH 2021-04-24 02:21

[QUOTE=wombatman;576689]I used "git fetch" in each of the directories, but I'm also not overly familiar with git. Is that the proper way to update to the latest version of the repository?[/QUOTE]I think it's "git pull" once you have established a clone, but you might want to research it.

wombatman 2021-04-24 02:53

[QUOTE=EdH;576694]I think it's "git pull" once you have established a clone, but you might want to research it.[/QUOTE]

That did the trick. Thank you both for your help!

bur 2021-04-24 06:25

I installed yafu from sourceforge using EdH how-to. Could someone explain how I transition to the github version? gmp-ecm and ggnfs are build and working, so it's just downloading and building the github version. If possible step-by-step. Thanks.

kruoli 2021-04-25 12:34

[QUOTE=bsquared;576625]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.[/QUOTE]

I guess there is some instruction that is available on Intel with AVX2, that is not available on my Zen 1 Threadripper. I tried the AVX2 binary for Windows from Github and that one wouldn't even start for me. Would it help you ifI ran the feature detector of y-cruncher and share it here?

Meanwhile, your "non-special" Windows binary is running fine. :smile:

bur 2021-04-28 09:43

I cloned the files with [C]git clone[/C], but [C]make[/C] quits with an error regarding a missing .h file and msieve. I think I need to edit Makefile to include the proper location for msieve?

Since there are various lines where it is mentioned, I don't know which of them to edit. This is for linux/ubuntu.

bsquared 2021-04-28 12:53

[QUOTE=kruoli;576827]I guess there is some instruction that is available on Intel with AVX2, that is not available on my Zen 1 Threadripper. I tried the AVX2 binary for Windows from Github and that one wouldn't even start for me. Would it help you ifI ran the feature detector of y-cruncher and share it here?

Meanwhile, your "non-special" Windows binary is running fine. :smile:[/QUOTE]

Yes, that would be good to see, thanks. Yafu has something similar, with the -vproc option, but if yafu doesn't run at all then I guess that won't work.

kruoli 2021-04-28 12:56

The AVX-less version works, so I'll post both outputs (yafu (precompiled Windows version without AVX) and y-cruncher feature detector) later, when I have access to the machine.

bsquared 2021-04-28 13:03

[QUOTE=bur;577093]I cloned the files with [C]git clone[/C], but [C]make[/C] quits with an error regarding a missing .h file and msieve. I think I need to edit Makefile to include the proper location for msieve?

Since there are various lines where it is mentioned, I don't know which of them to edit. This is for linux/ubuntu.[/QUOTE]

Line 26 includes the location of zlib within the msieve directory, maybe that is what you need to change.
[CODE]
-I../../msieve/zlib
[/CODE]

Also, line 172 of the makefile begins this if/else structure to specify the location of the msieve library:

[CODE]
ifeq ($(NFS),1)
CFLAGS += -DUSE_NFS
# modify the following line for your particular msieve installation

ifeq ($(COMPILER),icc)
LIBS += -L../../msieve/lib/linux
else
ifeq ($(COMPILER),icc)
LIBS += -L../../msieve/lib/wsl/
else
ifeq ($(MINGW),1)
LIBS += -L../../msieve/lib/mingw/
else
LIBS += -L../../msieve/lib/linux/
endif
endif
endif

LIBS += -lmsieve
endif[/CODE]

The point of all that is to have several locations for potential msieve installations and which one you use depends on the compiler. I try to make sure builds work using icc, gcc, and mingw/gcc so it was helpful to just select which one to use from the command line. It looks like a gcc build would use the last "else" line.

If you don't need that complexity you can replace it all with something like this:

ifeq ($(NFS),1)
CFLAGS += -DUSE_NFS
LIBS += -L../relative/path/to/libmsieve.a
endif

bur 2021-04-28 17:35

Ok, thank, I'll try that.


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

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