mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Factoring (https://www.mersenneforum.org/forumdisplay.php?f=19)
-   -   In ggnfs lasieve4 experimental, what's the difference between the athlon64 and x64 folders? (https://www.mersenneforum.org/showthread.php?t=21633)

Dubslow 2016-10-04 11:27

In ggnfs lasieve4 experimental, what's the difference between the athlon64 and x64 folders?
 
Title. They don't seem identical, but I'm not exactly sure what the difference might be. Maybe some older Intel x64 variant before they switched to the AMD version...?
[code]
bill@Gravemind ~/ggnfs/src/experimental/lasieve4_64 $ ls athlon64
32bit.h gmp-aux.h lasched3.asm ls-defs.asm MMX-TD1.o modinv1000b.asm mpqs_gauss.asm mpz-td.o pt64.o siever-config.c tdsieve-from-sched.asm zeit.c
asm-zeit.asm if.c lasched.c Makefile MMX-TD2.asm modinv1000b.o mpqs_nextpol.asm mpz-trialdiv.c ri-aux.asm siever-config.h tdsieve-from-sched.o zeit.h
asm-zeit.o if.h lasched.h medsched0.asm MMX-TD2.o modinv1000.o mpqs_sieve.asm mpz-trialdiv.o ri-aux.o slinie1A.asm tdslinie1.asm zeit.o
gcd32.c invtab.c lasieve-asmprepn2.asm medsched.c MMX-TD.c modinv32.c mpqs_sieveinit.asm psp.c schedsieve.asm slinie2A.asm tdslinie2.asm
gcd32.o lasched0.asm lasieve-asmprepn.asm medsched.h MMX-TD.o mpqs-config.h mpqs_td.asm psp.o schedsieve.o slinie3A.asm tdslinie3.asm
gmp-aux.c lasched1.asm lasieve-asmprepn.o MMX-TD1.asm modinv1000.asm mpqs_eval.asm mpz-td.asm pt64.asm search0.asm slinieG.asm tdslinie.asm
bill@Gravemind ~/ggnfs/src/experimental/lasieve4_64 $ ls x64
32bit.h if.c lasched3.asm ls-defs.asm medsched.h modinv1000b.asm mpqs_nextpol.asm mpz-trialdiv.c search0.asm slinie3A.asm tdslinie3.asm
asm-zeit.asm if.h lasched.c ls-defs.inc MMX-TD1.asm modinv32.c mpqs_sieve.asm psp.c siever-config.c slinieG.asm tdslinie.asm
gcd32.c invtab.c lasched.h Makefile MMX-TD2.asm mpqs-config.h mpqs_sieveinit.asm pt64.asm siever-config.h tdsieve-from-sched.asm zeit.c
gmp-aux.c lasched0.asm lasieve-asmprepn2.asm medsched0.asm MMX-TD.c mpqs_eval.asm mpqs_td.asm ri-aux.asm slinie1A.asm tdslinie1.asm zeit.h
gmp-aux.h lasched1.asm lasieve-asmprepn.asm medsched.c modinv1000.asm mpqs_gauss.asm mpz-td.asm schedsieve.asm slinie2A.asm tdslinie2.asm
[/code]

Edit: Also, I'm getting compiler (assembler?) errors trying to compile the athlon64 asm per the INTSALL file:

[code]$ make liblasieve.a
m4 -Dn_i_bits=0 ls-defs.asm mpqs_td.asm > mpqs_td.s
gcc -c mpqs_td.s
mpqs_td.s: Assembler messages:
mpqs_td.s:249: Error: incorrect register `%r9' used with `w' suffix
mpqs_td.s:280: Error: incorrect register `%r9' used with `w' suffix
mpqs_td.s:283: Error: incorrect register `%rsi' used with `w' suffix
mpqs_td.s:313: Error: incorrect register `%r9' used with `w' suffix
Makefile:56: recipe for target 'mpqs_td.o' failed
make: *** [mpqs_td.o] Error 1
rm mpqs_td.s[/code]

Is the compiler "indated"?

(Context: Recovering slowly from a hard drive failure, recompiling all the tools from scratch)

Edit edit:
[url]http://www.mersenneforum.org/showthread.php?p=409686#post409686[/url]

[QUOTE=Batalov;409690]I am not sure how the above definition was set to 0. It could be the problem.
You can just as well use precompiled binaries for all components -- [URL="http://gilchrist.ca/jeff/factoring/nfs_beginners_guide.html"]from Jeff's site[/URL].[/QUOTE]

It's defined as such in the Makefile:
[code]%.s: %.asm
m4 -Dn_i_bits=0 ls-defs.asm $^ > $@[/code]

Trying to compile one of the specific size binaries has other issues with make expressions not working correctly:

[code]$ make liblasieveI11.a
gcc -O3 -march=native -mtune=native -I. -DI_bits=11 -c -o laschedI11.o lasched.c
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm lasched0.asm > lasched0I11.s
gcc -c lasched0I11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=1 ls-defs.asm lasched1.asm > lasched1I11.s
gcc -c lasched1I11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=2 ls-defs.asm lasched1.asm > lasched2I11.s
gcc -c lasched2I11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=3 ls-defs.asm lasched1.asm > lasched3I11.s
gcc -c lasched3I11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dnt_sched=1 ls-defs.asm lasched0.asm > lasched0ntI11.s
gcc -c lasched0ntI11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=1 -Dnt_sched=1 ls-defs.asm lasched1.asm > lasched1ntI11.s
gcc -c lasched1ntI11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=2 -Dnt_sched=1 ls-defs.asm lasched1.asm > lasched2ntI11.s
gcc -c lasched2ntI11.s
m4 -Dn_i_bits=`expr 11 - 1` -Dot=3 -Dnt_sched=1 ls-defs.asm lasched1.asm > lasched3ntI11.s
gcc -c lasched3ntI11.s
gcc -O3 -march=native -mtune=native -I. -DI_bits=11 -c -o medschedI11.o medsched.c
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm medsched0.asm > medsched0I11.s
gcc -c medsched0I11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm search0.asm > search0I11.s
gcc -c search0I11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm slinieG.asm > slinieI11.s
gcc -c slinieI11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm slinie3A.asm > slinie3I11.s
gcc -c slinie3I11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm slinie2A.asm > slinie2I11.s
gcc -c slinie2I11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm slinie1A.asm > slinie1I11.s
gcc -c slinie1I11.s
m4 -Dn_i_bits=`expr 11 - 1` ls-defs.asm tdslinie.asm > tdslinieI11.s
gcc -c tdslinieI11.s
tdslinieI11.s: Assembler messages:
tdslinieI11.s:2297: Error: incorrect register `%r10' used with `w' suffix
Makefile:56: recipe for target 'tdslinieI11.o' failed
make: *** [tdslinieI11.o] Error 1
rm slinie3I11.s slinie2I11.o medsched0I11.s lasched1ntI11.s lasched3I11.o tdslinieI11.s slinieI11.o lasched2I11.o lasched0I11.s search0I11.o lasched2ntI11.s lasched3ntI11.o slinie1I11.o slinie2I11.s lasched3I11.s lasched1I11.o slinieI11.s lasched2I11.s medschedI11.o lasched0ntI11.o search0I11.s lasched3ntI11.s medsched0I11.o slinie1I11.s lasched1ntI11.o laschedI11.o lasched1I11.s lasched0I11.o lasched2ntI11.o slinie3I11.o lasched0ntI11.s[/code]

I do distinctly remember successfully compiling this myself some years ago, so maybe something has changed in make/gcc/etc since then?

Gimarel 2016-10-10 15:57

1 Attachment(s)
Here's a patch for the athlon64 .asm files that works with newer binutils.

EdH 2016-10-11 02:11

[QUOTE=Gimarel;444710]Here's a patch for the athlon64 .asm files that works with newer binutils.[/QUOTE]
Thank you! That appears to have fixed my more recent OS installs and upgrades.

Dubslow 2016-10-12 10:58

[QUOTE=Gimarel;444710]Here's a patch for the athlon64 .asm files that works with newer binutils.[/QUOTE]

:w00t:

Is it accurate to say that the assembly was previously incorrect, and that newer versions of [c]as[/c] have been changed to be less receptive of wrong code by default?


All times are UTC. The time now is 01:49.

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