![]() |
![]() |
#3191 | |
If I May
"Chris Halsall"
Sep 2002
Barbados
2×5×941 Posts |
![]() Quote:
But before I put this into "production", should I revert to an unmodified build? |
|
![]() |
![]() |
![]() |
#3192 |
"Sam Laur"
Dec 2018
Turku, Finland
2·3·5·11 Posts |
![]()
Fair enough, the difference between 1024 and 2047 isn't that big anymore anyway, less than 1%. Although, I've been running it at 2047 since January, mostly on the >1G exponents on mersenne.ca, and while I haven't collected stats for all that time, the last 2.5 months are: 189717 factors found for 12729313 exponents, 14903 ppm / 1,49 %. Of course that doesn't *prove* that it doesn't miss any factors anywhere... but now I'm retesting some ranges that have been independently factored (2-55 bits, with something else than mfaktc), I can check whether it has missed anything there thus far.
|
![]() |
![]() |
![]() |
#3193 |
"Oliver"
Mar 2005
Germany
45616 Posts |
![]()
Actually I didn't spent much time on thinking about this. I'm not sure wheter TF to 255 hits the wrap around or not.
I don't have any evidence that 2047 doesn't work, I'm just not a fan of "changed a number and it seems to work" changes. Oliver |
![]() |
![]() |
![]() |
#3194 |
"Sam Laur"
Dec 2018
Turku, Finland
2×3×5×11 Posts |
![]()
The build makes no changes to the code itself, it's just a modification to the bounds check in mfaktc.ini file processing. Ordinarily the limit is 128, and you can get the same effect by setting GPUSieveSize=128 (or even less) in mfaktc.ini, as you like.
|
![]() |
![]() |
![]() |
#3195 |
"Oliver"
Mar 2005
Germany
45616 Posts |
![]() |
![]() |
![]() |
![]() |
#3196 |
P90 years forever!
Aug 2002
Yeehaw, FL
33·271 Posts |
![]()
The GPU sieve code was written ages ago. I've long forgotten its assumptions and limitations. My biggest fear is that the code requires the sieve size to be a power of two. Someone really needs to scrutinize the code before using 2047.
|
![]() |
![]() |
![]() |
#3197 | |
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
113628 Posts |
![]() Quote:
Code:
# GPUSieveSize defines how big of a GPU sieve we use (in M bits). # # Minimum: GPUSieveSize=4 # Maximum: GPUSieveSize=128 # # Default: GPUSieveSize=64 GPUSieveSize=64 Last fiddled with by kriesel on 2019-09-11 at 22:18 |
|
![]() |
![]() |
![]() |
#3198 | |
Apr 2019
5·41 Posts |
![]() Quote:
This enables the max GPUSieveSize to go beyond 128, but its still subject to what is set in mfaktc.ini. So, if its a concern, you should be fine just to lower the setting in mfaktc.ini to 1024 or whatever (assuming you are even using the bundled mfaktc.ini and not your own). Building it again shouldn't be necessary. |
|
![]() |
![]() |
![]() |
#3199 |
"Sam Laur"
Dec 2018
Turku, Finland
5128 Posts |
![]()
I've mentioned in this thread what I did back in January, and no big objections were raised back then. Well, this only gives me a better motivation to finally build a bigger test set of exponents and bit depths of already found factors, as extracted from the mersenne.ca database.
But here's another data point. I've started taking the >1G range to 64 bits, as in, finding all the factors up to that point, not just the first ones that can be found. This was recently exhaustively done by hansl to 55 bits, but there are still factors waiting to be found between 55 and 64. So, for the bits and pieces I've managed to do between about 2800 and 3000 million, in the short time I've been running this job thus far, comparing against already known factors: 1240663 exponents 786890 factors (in database) - none were missed in this search. 42547 new factors There were already some factors between 55 and 64 bits in length in the database, of course. Most notably, for quite a long way above 2900 million, someone had already factored everything up to 64 bits. The question then becomes, is any amount of testing ever enough? |
![]() |
![]() |
![]() |
#3200 | |
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
113628 Posts |
![]() Quote:
|
|
![]() |
![]() |
![]() |
#3201 |
P90 years forever!
Aug 2002
Yeehaw, FL
1C9516 Posts |
![]()
The first step should be to look at the code and convince oneself that 2047 ought to work. No one has done that. So.....
I took a look at the code. I see no reason why a setting of 2047 would not work. In fact, changing gpu_sieve_size to an unsigned int might allow for values up to 4095. Changing to unsigned long long could allow much higher values. There would also be some typecasts required to avoid compiler warnings. The real limit is imposed by CUDA on this code line: Code:
SegSieve<<<(sieve_size + block_size - 1) / block_size, threadsPerBlock>>>((uint8 *)mystuff->d_bitarray, (uint8 *)mystuff->d_sieve_info, primes_per_thread); |
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
mfakto: an OpenCL program for Mersenne prefactoring | Bdot | GPU Computing | 1668 | 2020-12-22 15:38 |
The P-1 factoring CUDA program | firejuggler | GPU Computing | 753 | 2020-12-12 18:07 |
gr-mfaktc: a CUDA program for generalized repunits prefactoring | MrRepunit | GPU Computing | 32 | 2020-11-11 19:56 |
mfaktc 0.21 - CUDA runtime wrong | keisentraut | Software | 2 | 2020-08-18 07:03 |
World's second-dumbest CUDA program | fivemack | Programming | 112 | 2015-02-12 22:51 |