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)

LaurV 2013-07-02 12:27

1 Attachment(s)
Test if I can attach it. (I did not expect that you generate gigabytes of those test results... :razz:)

Rodrigo 2013-07-02 20:06

[QUOTE=Bdot;344999]this made me think if non-power-of-two values for GPUSieveSize are allowed at all. Yes they are. But thinking a bit more about the dependencies, I think I found a bug in mfakto and mfaktc:

When using GPUSieveProcessSize=24 and GPUSieveSize that is not divisible by 3, then some FCs may go untested.

(GPUSieveSize * 1024) must be divisible by GPUSieveProcessSize.

Worst case would be GPUSieveProcessSize=24 and GPUSieveSize=4, in which case about 1 in 256 FCs would go untested.

Typical settings of GPUSieveProcessSize=24 and GPUSieveSize=64 leaves 1 in 4096 FCs untested, GPUSieveProcessSize=24 and GPUSieveSize=128 about 1 in 16384.

Unfortunately this is something that the selftest cannot cover without increasing the selftest runtime by a factor of 10 at least.

How many of you use GPU sieving with GPUSieveProcessSize=24 ? What do we want to do with those tests?[/QUOTE]

I'm using GPUSieveProcessSize=16, as suggested by kracker [URL="http://mersenneforum.org/showpost.php?p=344668&postcount=844"]here[/URL].

Going along with his other idea there, GPUSievePrimes is at 92486.

GPUSieveSize has been back at 64 ever since I reported the results with that value at 48.

With these settings, TF of 72xxxxxx exponents has been hovering around 144-146 GHz-d/d.

All of this work done in mfakto x32.

Rodrigo

kracker 2013-07-02 20:34

[QUOTE=Rodrigo;345095]I'm using GPUSieveProcessSize=16, as suggested by kracker [URL="http://mersenneforum.org/showpost.php?p=344668&postcount=844"]here[/URL].[/QUOTE]

Actually, I had recommended 24, "GPUSieveProcessSize to 24 [B][I]from[/I][/B] 16" which 16 is default(I think?)

Anyways it might be safer to stay on 16 :razz: [SIZE=1](for now)[/SIZE]

Bdot 2013-07-02 21:13

[QUOTE=kracker;345100]Actually, I had recommended 24, "GPUSieveProcessSize to 24 [B][I]from[/I][/B] 16" which 16 is default(I think?)

Anyways it might be safer to stay on 16 :razz: [SIZE=1](for now)[/SIZE][/QUOTE]
GPUSieveProcessSize=24 is safe as long as GPUSieveSize is a multiple of 3. That is also, what the fix will do - the fix is just in the parameter validation part of reading mfakto.ini.

What is the general opinion if any of the tests need to be repeated? I tried to come up with an estimate how "bad" the bug is ...

My opinion is, that if anyone used GPUSieveProcessSize=24 along with really low GPUSieveSize(say, < 20), then chances of missing a factor (like one in 256 to one in 1024) are too high and the tests should be repeated. For GPUSieveSize=32 and above, missing between one in 4096 and one in 16384 factors is probably not worth the effort.

But I'd like to hear other opinions. If you can provide a guideline for an "acceptable miss probability", then I can compile a list of GPUSieveSize settings that would require a re-test.

Bdot 2013-07-02 21:17

[QUOTE=LaurV;345070]Test if I can attach it. (I did not expect that you generate gigabytes of those test results... :razz:)[/QUOTE]
Thanks a lot for the test results. They show a pretty accurate proportional performance increase from my 7850. No sign for a different calculation base for the high-end GCNs.

However, I do not yet have a good performance measurement of the GPU sieving itself - something to add soon.

blahpy 2013-07-02 22:10

GPUSieveSize=64
GPUSieveProcessSize=16

What should I do? I don't think it's possible to "redo" or "double check" TF is it?

Edit: Or are these settings safe? Upon reading it again it seems more like GPUSieveSize=64 only needs to be divisible by 3 for GPUSieveProcessSize=24?

Edit2: Okay, I read more carefully, ignore this post (I would delete it but can't)

Bdot 2013-07-02 22:16

[QUOTE=blahpy;345110]GPUSieveSize=64
GPUSieveProcessSize=16

What should I do? I don't think it's possible to "redo" or "double check" TF is it?

Edit: Or are these settings safe? Upon reading it again it seems more like GPUSieveSize=64 only needs to be divisible by for GPUSieveProcessSize=24?[/QUOTE]
Yes, these (default) settings are safe - no need to rerun anything.

Rodrigo 2013-07-03 02:34

[QUOTE=kracker;345100]Actually, I had recommended 24, "GPUSieveProcessSize to 24 [B][I]from[/I][/B] 16" which 16 is default(I think?)

Anyways it might be safer to stay on 16 :razz: [SIZE=1](for now)[/SIZE][/QUOTE]
Huh, you're right. I guess I confused it because (according to the info in the mfakto.ini file) the default value is 24:

[CODE]
# GPUSieveProcessSize defines how far many bits of the sieve each TF block
# processes (in K bits). Larger values may lead to less wasted cycles by
# reducing the number of times all threads in a warp are not TFing a
# candidate. However, more shared memory is used which may reduce occupancy.
# Smaller values should lead to a more responsive system (each kernel takes
# less time to execute). GPUSieveProcessSize must be a multiple of 8.
#
#
# Minimum: GPUSieveProcessSize=8
# Maximum: GPUSieveProcessSize=32 (requires GPUSievePrimes > 310)
#
# Default: GPUSieveProcessSize=24
GPUSieveProcessSize=16

[/CODE]
...and so I switched it TO 16, figuring that's what you meant to say. :smile:

But, whatever the reason, I seem to have stumbled onto the safest values for the time being.

Rodrigo

Bdot 2013-07-03 11:25

Hmm, the one that you can [URL="http://www.mersenneforum.org/mfakto/mfakto-0.13/"]download [/URL]with the win package reads:
[code]
# GPUSieveProcessSize defines how far many bits of the sieve each TF block
# processes (in K bits). Larger values may lead to less wasted cycles by
# reducing the number of times all threads in a warp are not TFing a
# candidate. However, more shared memory is used which may reduce occupancy.
# Smaller values should lead to a more responsive system (each kernel takes
# less time to execute). GPUSieveProcessSize must be a multiple of 8.
#
#
# Minimum: GPUSieveProcessSize=8
# Maximum: GPUSieveProcessSize=32 (requires GPUSievePrimes > 310)
#
# Default: GPUSieveProcessSize=[COLOR=Red]16[/COLOR]

GPUSieveProcessSize=16
[/code]

kladner 2013-07-03 12:00

[QUOTE]How many of you use GPU sieving with GPUSieveProcessSize=24 ? What do we want to do with those tests? [/QUOTE]

I'm using
GPUSieveSize=128
GPUSieveProcessSize=8

I don't think I've ever used 24.

Rodrigo 2013-07-03 15:46

[QUOTE=Bdot;345150]Hmm, the one that you can [URL="http://www.mersenneforum.org/mfakto/mfakto-0.13/"]download [/URL]with the win package reads:
[code]
# GPUSieveProcessSize defines how far many bits of the sieve each TF block
# processes (in K bits). Larger values may lead to less wasted cycles by
# reducing the number of times all threads in a warp are not TFing a
# candidate. However, more shared memory is used which may reduce occupancy.
# Smaller values should lead to a more responsive system (each kernel takes
# less time to execute). GPUSieveProcessSize must be a multiple of 8.
#
#
# Minimum: GPUSieveProcessSize=8
# Maximum: GPUSieveProcessSize=32 (requires GPUSievePrimes > 310)
#
# Default: GPUSieveProcessSize=[COLOR=red]16[/COLOR]

GPUSieveProcessSize=16
[/code][/QUOTE]
How weird. My backup of the original mfakto.ini shows exactly what you give there.

The only way that I can think of that could lead to the value changing in the comments line, would be if I had made the change manually to the comments line and never actually adjusted the real setting to the 24 that @kracker had recommended. (In which case I never changed it to OR from 16.)

Although I have no memory of it, this is entirely possible: my wife and I spent several days doing some intense (physical and Web) car shopping. :chevy: I can picture hurriedly making this change on the way out to yet another auto dealership. This must be what happened, there's no other sensible explanation. I plead temporary insanity.

Rodrigo


All times are UTC. The time now is 23:11.

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