![]() |
|
|
#34 | |
|
"Mr. Meeseeks"
Jan 2012
California, USA
23·271 Posts |
Quote:
(atm)
|
|
|
|
|
|
|
#35 | |
|
If I May
"Chris Halsall"
Sep 2002
Barbados
2·5·7·139 Posts |
Quote:
|
|
|
|
|
|
|
#36 | |
|
If I May
"Chris Halsall"
Sep 2002
Barbados
2×5×7×139 Posts |
Quote:
|
|
|
|
|
|
|
#37 |
|
Dec 2009
Peine, Germany
33110 Posts |
Hello everybody,
I suggest a minor relevant worktype: TF/P-1 for CUDALucas. There are ranges where CL is more efficient than others. For example the 4M FFT length region at about M(72M) is very suitable for CL. Today, I do the necessary TF and P-1 on my own. There may be other efficient FFT lengths but 4M is my favorite. I wouldn't be sad if this not so interesting for the rest of the world. Greetz, Brain |
|
|
|
|
|
#38 |
|
"Mr. Meeseeks"
Jan 2012
California, USA
23·271 Posts |
|
|
|
|
|
|
#39 | |
|
If I May
"Chris Halsall"
Sep 2002
Barbados
2·5·7·139 Posts |
Quote:
I'm reading that you are suggesting we do some TF/P-1ing in the 72M range? If so, exactly what is the optimal starting point? And can you (or anyone else) suggest other ranges which are particularly "sweet" for CUDALucas? |
|
|
|
|
|
|
#40 | |
|
Basketry That Evening!
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88
3·29·83 Posts |
Quote:
Code:
int
choose_fft_length (int q, int* index)
{
/* In order to increase length if an exponent has a round off issue, we use an
extra paramter that we can adjust on the fly. In check(), index starts as -1,
the default. In that case, choose from the table. If index >= 0, we must assume
it's an override index and return the corresponding length. If index > table-count,
then we assume it's a manual fftlen and return the proper index. */
#define COUNT 89
int multipliers[COUNT] = { 6, 8, 12, 16, 18, 24,
32, 40, 48, 64, 72, 80,
96, 120, 128, 144, 160, 192,
240, 256, 288, 320, 384, 480,
512, 576, 640, 768, 864, 960,
1024, 1152, 1280, 1440, 1536, 1600,
1728, 1920, 2048, 2304, 2400, 2560,
2880, 3072, 3200, 3456, 3840, 4000,
4096, 4608, 4800, 5120, 5760, 6144,
6400, 6912, 7680, 8000, 8192, 9216,
9600, 10240, 11520, 12288, 12800, 13824,
15360, 16000, 16384, 18432, 19200, 20480,
23040, 24576, 25600, 27648, 30720, 32000,
32768, 34992, 36864, 38400, 40960, 46080,
49152, 51200, 55296, 61440, 65536 };
// Largely copied from Prime95's jump tables, up to 32M
// Support up to 64M, the maximum length with threads == 1024
int len, i, estimate = q/20;
for(i = 0; i < COUNT; i++) {
len = 1024*multipliers[i];
if( len >= estimate )
{
*index = i;
return len;
}
}
return 0;
}
Last fiddled with by Dubslow on 2012-06-21 at 20:52 |
|
|
|
|
|
|
#41 |
|
Romulan Interpreter
Jun 2011
Thailand
2×5×312 Posts |
|
|
|
|
|
|
#42 | |
|
Dec 2009
Peine, Germany
5138 Posts |
Quote:
|
|
|
|
|
|
|
#43 | |
|
Dec 2009
Peine, Germany
14B16 Posts |
Quote:
My M(72M) from first comment seems to be very low for 4M FFT: CL has the following round offs and stalls with -f 4194304 at 77M (max err=0.35). Code:
M75,0 err=0.20 M75,5 err=0.27 M76,0 err=0.31 M76,5 err=0.34 M77,0 err=0.39 XXX I assume that there are too few CL users interested..? |
|
|
|
|
|
|
#44 |
|
Basketry That Evening!
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88
3·29·83 Posts |
Actually, the table I posted above is now slightly out of date; I realized that I'd been using the wrong table in Prime95's code. (The newer, more extensive version is posted below.)
The updated table, which copies the lengths Prime95 uses for Mersenne numbers, should match pretty well with efficiency table that AH posted, though I haven't actually compared them myself. George also used the 7-smooth criterion when selecting lengths for Prime95. (Note about comparison: CL's table is multiples of 1024, so you'll either have to multiply this table by 1024 or divide AH's table by 1024 to compare them.) The end result is that CL should now be almost as efficient as Prime95 for a random Mersenne exponent. Code:
#define COUNT 119
int multipliers[COUNT] = { 6, 8, 12, 16, 18, 24, 32,
40, 48, 64, 72, 80, 96, 120,
128, 144, 160, 192, 224, 240, 256,
288, 320, 336, 384, 448, 480, 512,
576, 640, 672, 768, 800, 864, 896,
960, 1024, 1120, 1152, 1200, 1280, 1344,
1440, 1536, 1600, 1680, 1728, 1792, 1920,
2048, 2240, 2304, 2400, 2560, 2688, 2880,
3072, 3200, 3360, 3456, 3584, 3840, 4000,
4096, 4480, 4608, 4800, 5120, 5376, 5600,
5760, 6144, 6400, 6720, 6912, 7168, 7680,
8000, 8192, 8960, 9216, 9600, 10240, 10752,
11200, 11520, 12288, 12800, 13440, 13824, 14366,
15360, 16000, 16128, 16384, 17920, 18432, 19200,
20480, 21504, 22400, 23040, 24576, 25600, 26880,
29672, 30720, 32000, 32768, 34992, 36864, 38400,
40960, 46080, 49152, 51200, 55296, 61440, 65536 };
|
|
|
|
![]() |
| Thread Tools | |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| What do the different types of work each mean? | jrafanelli | Information & Answers | 20 | 2019-02-01 05:27 |
| suggestions for new work types | ixfd64 | PrimeNet | 4 | 2011-09-20 07:20 |
| New work types | Unregistered | Information & Answers | 0 | 2011-07-25 10:19 |
| Work Types | Unregistered | Information & Answers | 3 | 2010-07-28 09:54 |
| v5 work types | S00113 | PrimeNet | 14 | 2008-12-10 00:26 |