mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Operazione Doppi Mersennes (https://www.mersenneforum.org/forumdisplay.php?f=99)
-   -   Trial division with CUDA (mmff) -- used, but runs like new! (https://www.mersenneforum.org/showthread.php?t=17162)

RichD 2018-09-30 17:36

1 Attachment(s)
Attached is a Linux build (with .exe) using CUDA 8.0 and sm_20, 30, 35, 50, 52, 61.

ET_ 2018-10-01 13:48

[QUOTE=RichD;497151]Attached is a Linux build (with .exe) using CUDA 8.0 and sm_20, 30, 35, 50, 52, 61.[/QUOTE]

Thanks RichD! :smile: :tu:

RichD 2018-10-02 15:28

1 Attachment(s)
I recalled this from the earlier days. You might be able to run mmff without installing the entire CUDA suite by referencing the dynamic library. I added a "lib" folder to the previous package. It can be run by:
[CODE]LD_LIBRARY_PATH=./lib ./mmff.exe[/CODE]
I reference this [url=https://www.mersenneforum.org/showpost.php?p=410994&postcount=3]post[/url]. For Linux x86_64 & CUDA 8.0.

ET_ 2018-10-24 09:17

[QUOTE=ET_;497050]New CUDA version, new mmff required.

A friend of us required a mmff version compiled for his GTX 1060 and CUDA 8.

I have no Nvidia SDK or boards on my PC at the moment, so I can provide neither Linux nor Windows ones. I hope I will have a Windows version soon (thanks to Jerry).

Thank you!!

Luigi[/QUOTE]

:bump2: :bump: :bump2:

Dylan14 2019-01-12 19:00

2 Attachment(s)
Attached is a Windows 64bit executable and source for mmff set for CUDA 10. I post this here since this executable still gives me the error "Class problems. Factor divisible by 2, 3, 5, 7, or 11" even though the makefile "Makefile.win" is set to produce code for CC 3.0 and above (including 6.1 which covers Pascal cards, which is what I have) and I want to see if others can replicate the issue and provide me a fix, as Luigi was unable to help. Note you will need the CUDA 10 cudart dll, it can be found here: [URL]https://www.mersenneforum.org/mfaktc/mfaktc-0.21/mfaktc-0.21.win.cuda100.zip[/URL].

kriesel 2019-01-15 17:00

[QUOTE=Dylan14;505723]Attached is a Windows 64bit executable and source for mmff set for CUDA 10. I post this here since this executable still gives me the error "Class problems. Factor divisible by 2, 3, 5, 7, or 11" even though the makefile "Makefile.win" is set to produce code for CC 3.0 and above (including 6.1 which covers Pascal cards, which is what I have) and I want to see if others can replicate the issue and provide me a fix, as Luigi was unable to help. Note you will need the CUDA 10 cudart dll, it can be found here: [URL]https://www.mersenneforum.org/mfaktc/mfaktc-0.21/mfaktc-0.21.win.cuda100.zip[/URL].[/QUOTE]
Can't test here, since all installations are CUDA8 or lower. (Lots of old model cards in the fleet that CUDA10 aware drivers don't support)

GP2 2019-06-26 14:41

Errors in the mmff code?
 
I downloaded the mmff-0.28 source code.

In mfaktc.c, there are lines like this (line 166 to 168):

[CODE]
if (exp == 31) {
unsigned int exp_mod8, exp_mod3, exp_mod5, exp_mod7, exp_mod11;
exp_mod8 = 7; exp_mod3 = 1; exp_mod5 = 2; exp_mod7 = 1; exp_mod11 = 1;
[/CODE]

But aren't those values incorrect? Actually 31 mod n for n={8,3,5,7,11} = 7 1 1 3 9, not 7 1 2 1 1

Similarly for exp==61, exp==89, exp==107. But exp==127 does seems to use the right numbers.

This seems like a misguided optimization attempt. The code for exp == 31, 61, 89, 107, 127 could be removed, and just let the default code remain (the code that explicitly uses [c]exp % 8[/c] and [c]exp % 3[/c] etc.)

This is the code that selects classes. If it doesn't select the right classes, it won't find factors.

ET_ 2019-06-26 18:27

[QUOTE=GP2;520111]I downloaded the mmff-0.28 source code.

In mfaktc.c, there are lines like this (line 166 to 168):

[CODE]
if (exp == 31) {
unsigned int exp_mod8, exp_mod3, exp_mod5, exp_mod7, exp_mod11;
exp_mod8 = 7; exp_mod3 = 1; exp_mod5 = 2; exp_mod7 = 1; exp_mod11 = 1;
[/CODE]

But aren't those values incorrect? Actually 31 mod n for n={8,3,5,7,11} = 7 1 1 3 9, not 7 1 2 1 1

Similarly for exp==61, exp==89, exp==107. But exp==127 does seems to use the right numbers.

This seems like a misguided optimization attempt. The code for exp == 31, 61, 89, 107, 127 could be removed, and just let the default code remain (the code that explicitly uses [c]exp % 8[/c] and [c]exp % 3[/c] etc.)

This is the code that selects classes. If it doesn't select the right classes, it won't find factors.[/QUOTE]

Mmff has been written by George Woltman's from a concept of Oliver Weihe. I think it's hard to believe they made such a mistake years ago and nobody noticed it...

GP2 2019-06-27 04:00

[QUOTE=ET_;520124]Mmff has been written by George Woltman's from a concept of Oliver Weihe. I think it's hard to believe they made such a mistake years ago and nobody noticed it...[/QUOTE]

Yes, I made an elementary mistake. Obviously, it's not 31 mod n, it's 2^31−1 mod n that has to be calculated, and then the values mod 8, 3, 5, 7, 11 are 7, 1, 2, 1, 1 as expected.

Prime95 2019-06-27 05:39

[QUOTE=ET_;520124]I think it's hard to believe they made such a mistake years ago and nobody noticed it...[/QUOTE]

Well evidence is quite good that they are guilty of choosing a poor name for a variable.

lalera 2019-06-28 19:56

hi,
please can someone compile mmff for nvidia turing cards for win64 ?


All times are UTC. The time now is 00:40.

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