20190911, 18:00  #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? 

20190911, 18:01  #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 (255 bits, with something else than mfaktc), I can check whether it has missed anything there thus far.

20190911, 18:16  #3193 
"Oliver"
Mar 2005
Germany
456_{16} Posts 
Actually I didn't spent much time on thinking about this. I'm not sure wheter TF to 2^{55} 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 
20190911, 19:03  #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.

20190911, 19:36  #3195 
"Oliver"
Mar 2005
Germany
456_{16} Posts 

20190911, 20:15  #3196 
P90 years forever!
Aug 2002
Yeehaw, FL
3^{3}·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.

20190911, 21:50  #3197  
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
11362_{8} 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 20190911 at 22:18 

20190911, 23:38  #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. 

20190911, 23:54  #3199 
"Sam Laur"
Dec 2018
Turku, Finland
512_{8} 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? 
20190912, 00:35  #3200  
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
11362_{8} Posts 
Quote:


20190912, 03:21  #3201 
P90 years forever!
Aug 2002
Yeehaw, FL
1C95_{16} 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  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
mfakto: an OpenCL program for Mersenne prefactoring  Bdot  GPU Computing  1668  20201222 15:38 
The P1 factoring CUDA program  firejuggler  GPU Computing  753  20201212 18:07 
grmfaktc: a CUDA program for generalized repunits prefactoring  MrRepunit  GPU Computing  32  20201111 19:56 
mfaktc 0.21  CUDA runtime wrong  keisentraut  Software  2  20200818 07:03 
World's seconddumbest CUDA program  fivemack  Programming  112  20150212 22:51 