mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GPU Computing (https://www.mersenneforum.org/forumdisplay.php?f=92)
-   -   gr-mfaktc: a CUDA program for generalized repunits prefactoring (https://www.mersenneforum.org/showthread.php?t=24901)

Citrix 2021-12-19 03:42

Can you compile a generalized version that can work for any base (positive or negative) with no limits on the size of the base (<32 bits). If it does not calculate the remainders (Legendre/Jacobi symbols) that would be fine.

Thanks.

MrRepunit 2021-12-24 08:18

[QUOTE=Citrix;595625]Can you compile a generalized version that can work for any base (positive or negative) with no limits on the size of the base (<32 bits). If it does not calculate the remainders (Legendre/Jacobi symbols) that would be fine.

Thanks.[/QUOTE]


Hi,
there is no quick way in doing so since the fast GPU assembler routines are only using 32 bit integer multiplication. To extend this to 64 bit exponents one would have to rewrite all the routines which are using the exponent, e.g. mod_192_96() in tf_96bit.cu. I'll have a look into this but won't promise anything.

Citrix 2021-12-25 11:26

[QUOTE=MrRepunit;596116]Hi,
there is no quick way in doing so since the fast GPU assembler routines are only using 32 bit integer multiplication. To extend this to 64 bit exponents one would have to rewrite all the routines which are using the exponent, e.g. mod_192_96() in tf_96bit.cu. I'll have a look into this but won't promise anything.[/QUOTE]

I appreciate your efforts. I am looking to work on larger 32 bit bases and not larger 64 bit exponents.
For example, the current program cannot handle factoring 10000001^999431+-1
I just wanted to clarify to make sure we were talking about the same thing.

MrRepunit 2021-12-25 22:54

1 Attachment(s)
[QUOTE=Citrix;596198]I appreciate your efforts. I am looking to work on larger 32 bit bases and not larger 64 bit exponents.
For example, the current program cannot handle factoring 10000001^999431+-1
I just wanted to clarify to make sure we were talking about the same thing.[/QUOTE]


Okay, your example helped to understand what the problem was:
There was a buffer overflow due to the too long checkpoint file name generated from the base and exponent. I fixed this, see attached checkpoint.c file. Just replace it and recompile. If you need a Linux 64 Bit executable I can provide you with one, but chances are low that it runs on your system anyway.


I hope this helps.

MrRepunit 2021-12-26 21:53

1 Attachment(s)
I attached the executable for Linux 64 bit (CUDA 11.20).
[CODE]
$ ./gr-mfaktc.exe -tf 10000001 999431 1 60
mfaktc (generalized repunit edition) v0.21 (64bit built)
Compiled on Dec 25 2021
<snip>
CUDA version info
binary compiled for CUDA 11.20
CUDA runtime version 11.20
CUDA driver version 11.20
<snip>
got assignment: base=10000001 exp=999431 bit_min=1 bit_max=60 (0.15 GHz-days)
Starting trial factoring R[10000001]999431 from 2^1 to 2^60 (0.15 GHz-days)
INFO: No known remainders for base 10000001, falling back to simple trial factoring.
INFO: Testing 1920 out of 4620 classes.
k_min = 0
k_max = 576788945213
Using GPU kernel "64bit_mul32_gs"
Date Time | class Pct | time ETA | GHz-d/day Sieve | Exp Base bit-range
Dec 26 22:51 | 4618 100.0% | 0.020 n.a. | 345.77 78133 | 999431 10000001 1:60
no factor for R[10000001]999431 from 2^1 to 2^60 [mfaktc 0.21 64bit_mul32_gs]
tf(): total time spent: 40.149s


[/CODE]

mathwiz 2021-12-26 23:02

Hi,

What's the link for the latest gr-mfaktc source code, if I want to compile myself for Linux?

Thanks!

James Heinrich 2021-12-26 23:18

I keep a mirror of sorts at [url]https://download.mersenne.ca/mfaktc-gr[/url] but the most recent update I have is from over a year ago.

MrRepunit 2021-12-27 12:45

1 Attachment(s)
Here is the newest source code with included Linux 64 Bit binary, currently I cannot build a Windows binary. Not much has changed since last year, only the recent bugfix and some minor additional output.

Citrix 2022-05-30 07:57

Does anyone have a compiled windows version for the latest code? Thanks.

Citrix 2022-12-18 05:59

Could you please build and post a [U]static[/U] Linux 64 bit binary. I cannot get the dynamic binary to work with WSL2. I get the following error. I did try installing the CUDA toolkit but it does not seem to work. Thanks.

[CODE]
./gr-mfaktc.exe: error while loading shared libraries: libcudart.so.11.0: cannot open shared object file: No such file or directory
[/CODE]


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

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