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)

apsen 2011-09-26 20:04

[QUOTE=Bdot;272797]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.
[/QUOTE]

Does this affect 0.07 too?

Bdot 2011-09-26 23:10

[QUOTE=apsen;272801]Does this affect 0.07 too?[/QUOTE]
Yes. The code there is the same as 0.08 and I just tested it - the mentioned factor is not found by 0.07 either.

KingKurly 2011-09-27 03:26

[QUOTE=Bdot;272797]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.[/QUOTE]
So tests like "no factor for M43207903 from 2^68 to 2^69 [mfakto 0.08 mfakto_cl_barrett79]" would be unaffected. A test would have to be for much lower bit levels to be affected?

Bdot 2011-09-27 07:20

[QUOTE=KingKurly;272844]So tests like "no factor for M43207903 from 2^68 to 2^69 [mfakto 0.08 mfakto_cl_barrett79]" would be unaffected. A test would have to be for much lower bit levels to be affected?[/QUOTE]
Yes. If you did the test like "no factor for M43207903 from 2^1 to 2^69 [mfakto 0.08 ...]" then the test might have missed factors that are below 2[SUP]48[/SUP], and a safety test would need to be done from 2[SUP]1[/SUP] to 2[SUP]48[/SUP] (with mfakto 0.09, or mfaktc).

Furthermore, tests done by the barrett kernel "[mfakto 0.08 mfakto_cl_barrett79]" are not affected, but this kernel cannot and will not be used for low factor sizes anyway.

So affected are:
- version 0.07 and 0.08 of mfakto
- all tests that have been run by the "mfakto_cl_71" kernel AND where the starting bit level is <48.

henryzz 2011-09-27 11:38

I am pretty certain all of the GIMPS candidates have been tested past 2^48 using Prime95 so this shouldn't be an issue. mfakto just didn't double check that range.

KingKurly 2011-09-27 14:18

[QUOTE=henryzz;272878]I am pretty certain all of the GIMPS candidates have been tested past 2^48 using Prime95 so this shouldn't be an issue. mfakto just didn't double check that range.[/QUOTE]
Correct, and since I haven't checked any exponents for factors below 2^48 using mfakto, I can confidently say that my results are unaffected. Still, good catch, and I look forward to 0.09 soon.

DigiK-oz 2011-09-29 22:10

[QUOTE=Bdot;272179]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.[/QUOTE]

Well, mfakto used to eat 2 full cores alongside the GPU (1 thread for mfakto itself, 1 thread somewhere in an ATI dll), but since the 11.9 drivers the only thread eating CPU is mfakto itself! So the guys at ATI seem to have fixed their drivers in that respect :)

Samoflan 2011-09-30 05:39

ATI drivers 11.9 seem to have increased the performance mfakto 0.08 slightly, by almost 2% on my Radeon HD4870. CPU utilization is still the same on my Phenom II x4 955 at about 47% across all 4 cores. Video card seems to stay at a consistant 95% load now instead of fluxing from 91-95%

DigiK-oz 2011-09-30 05:55

Strange, the 11.9 drivers brought down CPU usage on my I7 920 with hyperthreading from almost 25% (=2 cpus) to about 12% (=1 cpu)... With the 11.8 drivers, a thread in some ATI dll used 12%, as well as mfakto itself. With 11.9, the only thread using 12% is mfakto. The thread in the ATI dll is still there, but sits at 0,07% cpu. Performance has stayed about the same.

Anyone else seeing this behaviour?

jeebee 2011-09-30 14:20

[QUOTE=DigiK-oz;273030]Strange, the 11.9 drivers brought down CPU usage on my I7 920 with hyperthreading from almost 25% (=2 cpus) to about 12% (=1 cpu)... With the 11.8 drivers, a thread in some ATI dll used 12%, as well as mfakto itself. With 11.9, the only thread using 12% is mfakto. The thread in the ATI dll is still there, but sits at 0,07% cpu. Performance has stayed about the same.

Anyone else seeing this behaviour?[/QUOTE]


I have a similar experience. 11.9 seems like a major improvement upon 11.8. On a 2500k & HD6780, the old drivers needed 2 cores to output roughly 140mb/s. The newer driver delivers about 130mb/s with only one core running. I've thus decided to devote the third core to p95.

Bdot 2011-10-05 21:07

mfakto 0.09 - Windows versions
 
1 Attachment(s)
[QUOTE=jeebee;273056]I have a similar experience. 11.9 seems like a major improvement upon 11.8. On a 2500k & HD6780, the old drivers needed 2 cores to output roughly 140mb/s. The newer driver delivers about 130mb/s with only one core running. I've thus decided to devote the third core to p95.[/QUOTE]

Yes, the upgrade to 11.9 is certainly recommended, way lower CPU usage.

I think it is time to release the fix to the previously reported bug. I played around with a few ideas to fix the bug without affecting performance, but I did not have time to do it right. Therefore, the fixed 72-bit kernel of version 0.09 will be 3-5% slower than 0.08. The barrett kernels are not affected. I'm working on getting the same speed as before, but that will take some more time.

So here is version 0.09, first Windows ...


All times are UTC. The time now is 02:48.

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