mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2021-08-06, 03:08   #144
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

DFA16 Posts
Default Version 2.04 uploaded

New version 2.04 is now available.

Includes two improvements to yafu's QS:

1) Now using the poly formulation Q(x) = (2ax + b)^2 - kN whenever possible (if kN == 1 mod 8). For ~85% of inputs this gives about a 10% speedup.
2) Found some new AVX512 optimizations to the bucket sort: linux systems (and WSL2 windows systems) that are AVX-512 capable should be about 15-20% faster (!)

With those two improvements my benchmark numbers now run from 21 to 30% faster. Including a c80 in well under a minute! (46 seconds, down from 62 seconds, on my i7-7800X)

The windows version doesn't get all of these improvements yet because visual studio doesn't like the compressstoreu instruction. I may need to update visual studio or file a bug report or something.

Anyway, happy factoring!
bsquared is offline   Reply With Quote
Old 2021-08-06, 18:03   #145
Plutie
 
"Evan"
Dec 2020
Montreal

7110 Posts
Default Segfault upon starting SNFS

I recently compiled a fresh build of YAFU, but am having issues when trying to factor via SNFS with a pre-made polynomial.

Log:
Code:
YAFU Version 2.03
Built with GCC 9
Using GMP-ECM 7.0.5-dev, Powered by GMP 6.2.1
Detected AMD Ryzen 5 5600X 6-Core Processor
Detected L1 = 32768 bytes, L2 = 33554432 bytes, CL = 64 bytes
Using 1 random witness for Rabin-Miller PRP checks
Cached 664579 primes; max prime is 9999991

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================

>> nfs(508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249)
nfs: checking for job file - job file found, testing for matching input
input from file = 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
input to yafu = 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
input matches with multiple of 1
nfs: number in job file matches input
nfs: checking for data file
nfs: no data file found
nfs: commencing nfs on c162: 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
nfs: resumesieve; last_spq = 0, nfs_phases = 0
nfs: found m: 50000000000000000000000000000000000000
nfs: found c[5]: 196
nfs: found c[0]: -5
nfs: found skew: 0.480000
nfs: found type: snfs
nfs: initializing snfs poly
nfs: parsed lpbr = 28, lpba = 28
nfs: detected snfs job but no snfs difficulty
nfs: using m and poly coefficients to compute difficulty
nfs: snfs difficulty: 39.991226
nfs: checking degree 5 poly
nfs: analyzing poly:
Segmentation fault
Content of nfs.job:
Code:
n: 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
m: 50000000000000000000000000000000000000
deg: 5
c5: 196
c0: -5
skew: 0.48
# Murphy_E = 3.279e-11
type: snfs
lss: 1
rlim: 10600000
alim: 10600000
lpbr: 28
lpba: 28
mfbr: 54
mfba: 54
rlambda: 2.5
alambda: 2.5
Another thing to note is that the SNFS difficulty calculation seems to be wrong when missing some coefficients.
Plutie is offline   Reply With Quote
Old 2021-08-06, 18:42   #146
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2×1,789 Posts
Default

I can take a look at where it's going wrong. In the meantime, if I comment out m: and put in the rational coefficients instead it works:

Code:
n: 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
# m: 50000000000000000000000000000000000000
deg: 5
c5: 196
c0: -5
Y1: -1
Y0: 50000000000000000000000000000000000000
skew: 0.48
type: snfs
lss: 1
rlim: 10600000
alim: 10600000
lpbr: 28
lpba: 28
mfbr: 54
mfba: 54
rlambda: 2.5
alambda: 2.5

Code:
nfs: commencing nfs on c162: 508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249
nfs: resumesieve; last_spq = 0, nfs_phases = 0
nfs: found c[5]: 196
nfs: found c[0]: -5
nfs: found Y1: -1
nfs: found Y0: 50000000000000000000000000000000000000
nfs: found skew: 0.480000
nfs: found type: snfs
nfs: initializing snfs poly
nfs: parsed lpbr = 28, lpba = 28
nfs: detected snfs job but no snfs difficulty
nfs: using m and poly coefficients to compute difficulty
nfs: snfs difficulty: 39.991226
nfs: checking degree 5 poly
nfs: analyzing poly:
nfs: anorm = -2.388308e+32, rnorm = 4.180462e+44, size: 2.193000e-13, alpha = 1.196000e+00, murphyE = 3.279000e-11
gen: anorm: -2.39e+32, rnorm: 4.18e+44, ratio: 1.75e+12, log10(ratio) = 12.24
nfs: snfs skewed difficulty: 42.439853
nfs: optimizing skew
nfs: found better skew: 0.484800 with murphy score 3.281000e-11
nfs: found better skew: 0.489600 with murphy score 3.282000e-11
nfs: found better skew: 0.494400 with murphy score 3.284000e-11
nfs: found better skew: 0.499200 with murphy score 3.285000e-11
nfs: found better skew: 0.504000 with murphy score 3.286000e-11
nfs: found better skew: 0.508800 with murphy score 3.287000e-11
nfs: found better skew: 0.513600 with murphy score 3.289000e-11
nfs: found better skew: 0.518400 with murphy score 3.290000e-11
nfs: found better skew: 0.523200 with murphy score 3.291000e-11
nfs: found better skew: 0.528000 with murphy score 3.292000e-11
nfs: found better skew: 0.532800 with murphy score 3.293000e-11
nfs: found better skew: 0.537600 with murphy score 3.294000e-11
nfs: found better skew: 0.547200 with murphy score 3.295000e-11
nfs: found better skew: 0.552000 with murphy score 3.296000e-11
nfs: found better skew: 0.556800 with murphy score 3.297000e-11
nfs: found better skew: 0.561600 with murphy score 3.298000e-11
nfs: found better skew: 0.571200 with murphy score 3.299000e-11
nfs: found better skew: 0.580800 with murphy score 3.300000e-11
nfs: found better skew: 0.585600 with murphy score 3.301000e-11
nfs: found better skew: 0.600000 with murphy score 3.302000e-11
nfs: found better skew: 0.609600 with murphy score 3.303000e-11
nfs: found better skew: 0.624000 with murphy score 3.304000e-11
nfs: found better skew: 0.643200 with murphy score 3.305000e-11
nfs: guessing snfs difficulty 42 is roughly equal to gnfs difficulty 53
nfs: creating ggnfs job parameters for input of size 53
nfs: job file is missing params, filling them
nfs: continuing with sieving - could not determine last special q; using default startq
nfs: commencing rational side lattice sieving over range: 5300000 - 5302000
syscmd: ../../ggnfs-bin/gnfs-lasieve4I11e -v -f 5300000 -c 2000 -o rels0.dat -n 0 -r nfs.job
gnfs-lasieve4I11e (with asm64): L1_BITS=15, SVN $Revision: 399 $
Warning:  lowering FB_bound to 5299999.
FBsize 702099+0 (deg 5), 367899+0 (deg 1)
total yield: 353, q=5300857 (0.03694 sec/rel) ^C
Clearly having issues figuring out difficulty, but since the parameters are in there already that mostly doesn't matter. You can just tell it which siever to use and I think it will work, e.g.:

Code:
./yafu "nfs(508155924947538816161101635487366611969955965840021547875500594140402111454201939923927956969296837060051327267616455978442987911081313892049188185868241575553249)" -v -v -siever 13
bsquared is offline   Reply With Quote
Old 2021-08-09, 17:04   #147
richs
 
richs's Avatar
 
"Rich"
Aug 2002
Benicia, California

2×683 Posts
Default Windows Ver 2.04 SIQS Bug

Using Windows executable ver. 2.04, SIQS has problems:

Code:
08/09/21 08:21:19, ****************************
08/09/21 08:21:19, Starting factorization of 105393989787970375262364798207451884611473765049956049673829221285271966197423217847983687608092010532144015094441669842637319335236412609289116384759967578759
08/09/21 08:21:19, using pretesting plan: normal
08/09/21 08:21:19, using tune info for qs/gnfs crossover
08/09/21 08:21:19, ****************************
08/09/21 08:21:19, rho: x^2 + 3, starting 1000 iterations on C159
08/09/21 08:21:19, rho: x^2 + 2, starting 1000 iterations on C159
08/09/21 08:21:19, rho: x^2 + 1, starting 1000 iterations on C159
08/09/21 08:21:20, pm1: starting B1 = 150K, B2 = gmp-ecm default on C159
08/09/21 08:21:20, current ECM pretesting depth: 0.00
08/09/21 08:21:20, scheduled 30 curves at B1=2000 toward target pretesting depth of 48.92
08/09/21 08:21:20, Finished 30 curves using GMP-ECM method on C159 input, B1=2k, B2=gmp-ecm default
08/09/21 08:21:20, current ECM pretesting depth: 15.18
08/09/21 08:21:20, scheduled 74 curves at B1=11000 toward target pretesting depth of 48.92
08/09/21 08:21:26, Finished 74 curves using GMP-ECM method on C159 input, B1=11k, B2=gmp-ecm default
08/09/21 08:21:26, current ECM pretesting depth: 20.24
08/09/21 08:21:26, scheduled 214 curves at B1=50000 toward target pretesting depth of 48.92
08/09/21 08:22:29, Finished 214 curves using GMP-ECM method on C159 input, B1=50k, B2=gmp-ecm default
08/09/21 08:22:29, pm1: starting B1 = 3750K, B2 = gmp-ecm default on C159
08/09/21 08:22:31, current ECM pretesting depth: 25.33
08/09/21 08:22:31, scheduled 430 curves at B1=250000 toward target pretesting depth of 48.92
08/09/21 08:32:02, Finished 430 curves using GMP-ECM method on C159 input, B1=250k, B2=gmp-ecm default
08/09/21 08:32:02, pm1: starting B1 = 15M, B2 = gmp-ecm default on C159
08/09/21 08:32:09, current ECM pretesting depth: 30.45
08/09/21 08:32:09, scheduled 904 curves at B1=1000000 toward target pretesting depth of 48.92
08/09/21 08:51:40, prp32 = 81818626235929905372894171191449 (curve 222 stg2 B1=1000000 sigma=3833225760 thread=0)
08/09/21 08:51:40, Finished 221 curves using GMP-ECM method on C159 input, B1=1M, B2=gmp-ecm default
08/09/21 08:51:40, current ECM pretesting depth: 31.68
08/09/21 08:51:40, scheduled 683 curves at B1=1000000 toward target pretesting depth of 39.08
08/09/21 09:06:41, prp30 = 287063003181080966701377441473 (curve 222 stg2 B1=1000000 sigma=2084237989 thread=0)
08/09/21 09:06:41, Finished 221 curves using GMP-ECM method on C127 input, B1=1M, B2=gmp-ecm default
08/09/21 09:06:41, final ECM pretested depth: 32.90
08/09/21 09:06:41, scheduler: switching to sieve method
08/09/21 09:06:42, starting SIQS on c97: 4487313770523153739495208002033098434359404539272558781592283264158439136945627929018162116601567
08/09/21 09:06:42, random seed: 380728400
08/09/21 09:06:42, ==== sieve params ====
08/09/21 09:06:42, n = 99 digits, 328 bits
08/09/21 09:06:42, factor base: 102912 primes (max prime = 2823973)
08/09/21 09:06:42, single large prime cutoff: 409476085 (145 * pmax)
08/09/21 09:06:42, double large prime range from 7974823504729 to 8562938075287819
08/09/21 09:06:42, DLP MFB = 1.85
08/09/21 09:06:42, allocating 9 large prime slices of factor base
08/09/21 09:06:42, buckets hold 2048 elements
08/09/21 09:06:42, large prime hashtables have 1622016 bytes
08/09/21 09:06:42, using AVX2 enabled 32k sieve core
08/09/21 09:06:42, sieve interval: 11 blocks of size 32768
08/09/21 09:06:42, polynomial A has ~ 13 factors
08/09/21 09:06:42, using multiplier of 103
08/09/21 09:06:42, using multiplier of 103
08/09/21 09:06:42, using Q2(x) polynomials for kN mod 8 = 1
08/09/21 09:06:42, using SPV correction of 21 bits, starting at offset 36
08/09/21 09:06:42, trial factoring cutoff at 98 bits
08/09/21 09:06:42, ==== sieving started ( 6 threads) ====
08/09/21 09:31:29, trial division touched 164355364 sieve locations out of 1512672657408
08/09/21 09:31:29, total reports = 164355364, total surviving reports = 43553883
08/09/21 09:31:29, total blocks sieved = 46163106, avg surviving reports per block = 0.94
08/09/21 09:31:29, dlp-ecm: 131 failures, 1685998 attempts, 34424793 outside range, 7038997 prp, 1342823 useful
08/09/21 09:31:29, 103416 relations found: 26955 full + 76461 from 1719963 partial, using 2098323 polys (1900 A polys)
08/09/21 09:31:29, on average, sieving found 0.83 rels/poly and 1174.44 rels/sec
08/09/21 09:31:29, trial division touched 164355364 sieve locations out of 1512672657408
08/09/21 09:31:29, ==== post processing stage (msieve-1.38) ====
08/09/21 09:31:29, QS elapsed time = 1487.4595 seconds.
08/09/21 09:31:30, begin singleton removal with 1746918 relations
08/09/21 09:31:31, reduce to 266460 relations in 12 passes
08/09/21 09:31:31, failed to read relation 8
08/09/21 09:31:31, failed to read relation 190

** numerous failed to read relation lines

08/09/21 09:31:35, failed to read relation 266199
08/09/21 09:31:35, recovered 263590 relations
08/09/21 09:31:35, recovered 247915 polynomials
08/09/21 09:31:35, attempting to build 100566 cycles
08/09/21 09:31:35, found 100566 cycles from 263590 relations in 6 passes
08/09/21 09:31:35, distribution of cycle lengths:
08/09/21 09:31:35,    length 1 : 26563
08/09/21 09:31:35,    length 2 : 18090
08/09/21 09:31:35,    length 3 : 16887
08/09/21 09:31:35,    length 4 : 13215
08/09/21 09:31:35,    length 5 : 9817
08/09/21 09:31:35,    length 6 : 6261
08/09/21 09:31:35,    length 7 : 4166
08/09/21 09:31:35,    length 9+: 5567
08/09/21 09:31:35, largest cycle: 25 relations
08/09/21 09:31:35, matrix is 102912 x 100566 (29.1 MB) with weight 6836076 (67.98/col)
08/09/21 09:31:35, sparse part has weight 6836076 (67.98/col)
08/09/21 09:31:36, filtering completed in 2 passes
08/09/21 09:31:36, matrix is 96687 x 94802 (28.1 MB) with weight 6606297 (69.69/col)
08/09/21 09:31:36, sparse part has weight 6606297 (69.69/col)
08/09/21 09:31:36, matrix must have more columns than rows
08/09/21 09:31:38, begin singleton removal with 1746918 relations
08/09/21 09:31:39, reduce to 266460 relations in 12 passes
08/09/21 09:31:39, failed to read relation 8
08/09/21 09:31:39, failed to read relation 190
SIQS then repeats over and over until the process is killed.
richs is offline   Reply With Quote
Old 2021-08-10, 16:36   #148
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·1,789 Posts
Default

Thanks, it was a very silly mistake on my part. I didn't do enough testing.

2.05 is now available.
bsquared is offline   Reply With Quote
Old 2021-08-11, 00:33   #149
johnadam74
 
"John A Burroughs"
Jan 2016
Warwick, RI

2510 Posts
Default Yafu bug?

I downloaded the most recent version 2.05 for Windows. That version is still crashing for me. When I try to run it as yafu-x64.exe, it will open to ">>" where you can enter a command such as factor(123456) but it crashes before I can enter anything.
johnadam74 is online now   Reply With Quote
Old 2021-08-11, 00:46   #150
richs
 
richs's Avatar
 
"Rich"
Aug 2002
Benicia, California

55616 Posts
Default

Ver. 2.05 works fine (so far) on my Windows 10 i7 laptop where I had the SIQS bug with ver. 2.04.
richs is offline   Reply With Quote
Old 2021-08-11, 13:23   #151
xilman
Bamboozled!
 
xilman's Avatar
 
"π’‰Ίπ’ŒŒπ’‡·π’†·π’€­"
May 2003
Down not across

101010110001012 Posts
Default

Quote:
Originally Posted by bsquared View Post
Thanks, it was a very silly mistake on my part. I didn't do enough testing.

2.05 is now available.
I am being especially dumb today.

The sourceforge version is stuck at 1.34.

Where is 2.05 to be found?

Thanks, Paul
xilman is online now   Reply With Quote
Old 2021-08-11, 13:41   #152
kruoli
 
kruoli's Avatar
 
"Oliver"
Sep 2017
Porta Westfalica, DE

64510 Posts
Default

Here it is.
kruoli is offline   Reply With Quote
Old 2021-08-11, 14:21   #153
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·1,789 Posts
Default

Quote:
Originally Posted by johnadam74 View Post
I downloaded the most recent version 2.05 for Windows. That version is still crashing for me. When I try to run it as yafu-x64.exe, it will open to ">>" where you can enter a command such as factor(123456) but it crashes before I can enter anything.
Can you give me any more info about your cpu (intel/amd model number)? If you can run with -v or -vproc that output would help.

Quote:
Originally Posted by kruoli View Post
Here it is.
Hey that's my line!
bsquared is offline   Reply With Quote
Old 2021-08-11, 14:54   #154
Brian Gladman
 
Brian Gladman's Avatar
 
May 2008
Worcester, United Kingdom

72×11 Posts
Default

Hi Ben

I spent some time today aligning all the constituent parts of the YAFU Visual Studio 2019 build for windows X64 to use the Microsoft static runtime libraries and I now have a successful build of YAFU. I have tested it on Windows 11 (beta) with the Quadro T2000 GPU on my laptop and all seems to work as expected.

It is available here (yafu, ysieve and ytools):

https://github.com/BrianGladman?tab=repositories

The build is in the build.vs subdirectory, not build.vc19 (which does not build), as I am in the process of moving it to Visual Studio 2022.

Sadly the build for the siqs_demo project fails because it cannot find these symbols:

1>calc.obj : error LNK2001: unresolved external symbol siqsbench
1>calc.obj : error LNK2001: unresolved external symbol smallmpqs
1>calc.obj : error LNK2001: unresolved external symbol SIQS
1>siqs_demo.obj : error LNK2001: unresolved external symbol get_computer_info

I would be grateful for your advice on where these should be available.

Last fiddled with by Brian Gladman on 2021-08-11 at 14:56
Brian Gladman is online now   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
yafu ignoring yafu.ini chris2be8 YAFU 6 2019-10-17 16:22
Running YAFU via Aliqueit doesn't find yafu.ini EdH YAFU 8 2018-03-14 17:22
YAFU-1.34 bsquared YAFU 119 2015-11-05 16:24
Yafu bug. storflyt32 YAFU 2 2015-06-29 05:19
yafu 1.32 bsquared YAFU 28 2012-07-20 16:17

All times are UTC. The time now is 10:57.


Sun Oct 17 10:57:36 UTC 2021 up 86 days, 5:26, 0 users, load averages: 2.33, 2.14, 2.08

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

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.