mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GPU Computing (https://www.mersenneforum.org/forumdisplay.php?f=92)
-   -   mfakto: an OpenCL program for Mersenne prefactoring (https://www.mersenneforum.org/showthread.php?t=15646)

KingKurly 2011-09-14 01:40

I was able to test the Linux build as a success:

[CODE]
Selftest statistics
number of tests 3332
successfull tests 3332

selftest PASSED!


real 43m31.235s
user 9m22.360s
sys 31m10.151s
[/CODE]

I did find it a bit strange that test cases 1552 through 1557 had no output to the terminal, but I will transition to using 0.08 now and I will begin submitting results to PrimeNet as they become available.

Do we need to redo "no factor" work that was done under 0.07 or can those be submitted? I have not downloaded the source to check a diff to see if it is reasonable thing to do.

Bdot 2011-09-14 08:53

[QUOTE=KingKurly;271678]I was able to test the Linux build as a success:
[CODE]

selftest PASSED!

[/CODE][/QUOTE]
Great to see!
[QUOTE=KingKurly;271678]I did find it a bit strange that test cases 1552 through 1557 had no output to the terminal, but I will transition to using 0.08 now and I will begin submitting results to PrimeNet as they become available.
[/QUOTE]

The reason is, that test cases 1552 to 1557 are for factors of more than 91 bits. I had removed the 95-bit kernel because it was so terribly slow that you would not want to use it anyway. Therefore, mfakto currently only supports TF up to 91 bits.

[QUOTE=KingKurly;271678]
Do we need to redo "no factor" work that was done under 0.07 or can those be submitted? I have not downloaded the source to check a diff to see if it is reasonable thing to do.[/QUOTE]

In version 0.07, the single-vectored MUL24 kernel did not work with Catalyst 11.8. In your self-compiled version you removed that kernel from the selftest, but not from the program. If you never changed the mfakto.ini-Parameter VectorSize (i.e. if you left it at 4), then that faulty kernel has not been used and you can submit the previous results without re-running them.

KingKurly 2011-09-14 14:50

[QUOTE=Bdot;271700]In version 0.07, the single-vectored MUL24 kernel did not work with Catalyst 11.8. In your self-compiled version you removed that kernel from the selftest, but not from the program. If you never changed the mfakto.ini-Parameter VectorSize (i.e. if you left it at 4), then that faulty kernel has not been used and you can submit the previous results without re-running them.[/QUOTE]
I have confirmed that the VectorSize never changed from 4. I am submitting the results, "closing the book" on 0.07, and moving to 0.08. Thank you so much! :smile:

Bdot 2011-09-14 16:03

[QUOTE=KingKurly;271707] moving to 0.08. Thank you so much! :smile:[/QUOTE]

Did you already check if mfakto_cl_barrett79 or mfakto_cl_71 are faster on your GPU? I'm really interested to see the two compared on different GPUs. On my HD5770, barrett is about 10% faster ...

Razor_FX_II 2011-09-14 16:28

[QUOTE=Bdot;271717]Did you already check if mfakto_cl_barrett79 or mfakto_cl_71 are faster on your GPU? I'm really interested to see the two compared on different GPUs. On my HD5770, barrett is about 10% faster ...[/QUOTE]
Using mfakto-0.08 on my HD4870's and HD4890's mfakto_cl_barrett79 is about 10% faster.
mfakto_cl_barrett79 avg rate: 55M/s
mfakto_cl_71 avg rate: 50M/s

KingKurly 2011-09-14 17:53

[QUOTE=Bdot;271717]Did you already check if mfakto_cl_barrett79 or mfakto_cl_71 are faster on your GPU? I'm really interested to see the two compared on different GPUs. On my HD5770, barrett is about 10% faster ...[/QUOTE]
I am finding similar results. My HD5450 seems to do about 8.6M/s on the mfakto_cl_71 and about 9.1M/s on the mfakto_cl_barrett79, doing TF on M41774351 from 68 to 69.

James Heinrich 2011-09-14 23:13

Since it appeared to be missing, I've created a stub article on MersenneWiki for mfakto:
[url]http://www.mersennewiki.org/index.php/Mfakto[/url]

But since I don't actually use mfakto, perhaps someone else could fill in and fix all the details in the article.

DigiK-oz 2011-09-20 15:33

In the GPUGRID forum :

there's a bug in the latest sdk that makes a full use of a cpu-core whenever an opencl app is running.
They promised a fix, but still not here in 11.8
maybe in 11.9??

Maybe mfakto suffers from this as well? One of the threads using 100% of one cpu happens to be in the ATI libs....

Bdot 2011-09-20 18:23

[QUOTE=DigiK-oz;272157]In the GPUGRID forum :

there's a bug in the latest sdk that makes a full use of a cpu-core whenever an opencl app is running.
They promised a fix, but still not here in 11.8
maybe in 11.9??

Maybe mfakto suffers from this as well? One of the threads using 100% of one cpu happens to be in the ATI libs....[/QUOTE]

They seem to have implemented some kind of busy-wait (futex-based) whenever something needs to be synchronized with the GPU. As this is usually the CPU just waiting for the GPU to complete something, that is a total waste of CPU resources.

However, mfakto is not hit that badly as mfakto passes the prepared factor candidates to the GPU but does not wait for the results immediately. Instead, the next block of factor candidates is prepared on the CPU. Only when the CPU is faster preparing the stuff than the GPU can process it, then mfakto will synchronize with the GPU. And of course at the end of a class.

So yes, mfakto will also consume a full CPU core, but it will do something useful most of that time.

Samoflan 2011-09-20 18:33

[QUOTE=Razor_FX_II;271719]Using mfakto-0.08 on my HD4870's and HD4890's mfakto_cl_barrett79 is about 10% faster.
mfakto_cl_barrett79 avg rate: 55M/s
mfakto_cl_71 avg rate: 50M/s[/QUOTE]

I get similar results on my HD4890

mfakto_cl_barrett79 avg rate: 51.9M/s
mfakto_cl_71 avg rate: 48.7M/s

GPU load is 91-95%
CPU load will almost cap out 2 cores on my Phenom II x4 955

Bdot 2011-09-26 19:14

Bug warning
 
I´m sorry to report: yesterday I found a bug, mfakto up to 0.08 does not find the factor for k=3 for M6599953.

The reason is an invalid "optimization" that I made over the mfaktc-code. Mfaktc does [B]not [/B]have this problem. I have fixed the bug and added a test case for it to the selftests.

The mfakto kernel "mfakto_cl_71" (all vector sizes) sometimes calculated a bad modulus when the factor candidate was <2[SUP]48[/SUP]. Smaller FCs (~2[SUP]24[/SUP]) had a higher chance for the error to occur, FCs >2[SUP]48[/SUP] were always calculated correctly. The problem does not depend on the exponent size.

I´m sorry for possibly having wasted effort and resources, but I hope it´s not too many tests that need to be repeated as it´s only about small FCs. I will provide a fixed version within the next few days.


All times are UTC. The time now is 04:30.

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