![]() |
|
|
#760 | |
|
2×2,251 Posts |
Quote:
Good morning, FFT selection is fixed for me, further tests coming soon. I have upgraded CLANG and LLVM on my system, same result as before. |
|
|
|
|
#761 | |
|
23·11·53 Posts |
Quote:
You have exceptional performance with the Vega board, I should buy one. |
|
|
|
|
#762 | |
|
"Mihai Preda"
Apr 2015
3·457 Posts |
Quote:
I'm looking forward to what GPU AMD brings next. Vega64 are mostly retired from sale now, from what I see. |
|
|
|
|
|
|
#763 | |
|
2×3×13×37 Posts |
Quote:
Now there are the Radeon Pro WX Series https://www.amd.com/en/graphics/workstations-wx-series |
|
|
|
|
#764 | |
|
19×137 Posts |
Quote:
I hope they release the amdgpu driver for Debian too. |
|
|
|
|
#765 |
|
"Mihai Preda"
Apr 2015
137110 Posts |
PRP-1 (AKA "PRP,P-1") is a technique for doing a variant of P-1 during a PRP test, see https://mersenneforum.org/showthread.php?t=23628
1. How to enable PRP-1 in GpuOwl. By default GpuOwl does a normal PRP test. To enable PRP-1 prepend a B1 value specification to a normal worktodo line, e.g.: B1=1000000;82252003 B1=2000000;PRP=AID,1,2,82252003,-1,76,0 Such lines that contain a B1 together with a PRP test will start a PRP-1. The work of PRP-1 is: - do a P-1 first-stage to the indicated B1. This takes about 1.4 * B1 iterations. (note: right now this "P-1 first stage" is not saved while ongoing, so don't interrupt it before the PRP proper starts) - compute a set of iteration points that will be P-1 tested during the PRP. The cost of each such "test point" is about one iteration (a bit larger than one iteration). After the "P-1 first stage", and periodically during the PRP, GCDs are computed on the CPU looking for a factor. If a factor is found (this is rare), the PRP stops early. 2. B2 How are the points to be P-1-tested during the PRP selected? By default, for a given exponent E, a set of points is selected such as to cover a B2=E, (where B2 is the "second stage" bound in classic P-1). As an example, for E=82252003 that I'm testing now, such a default B2=E results in 3314921 points to be tested. If we know the B1, and the number of "points" selected based on B2, we can estimate the cost: for B1=2000000, first-stage P-1 takes about 2.8M iterations. for B2=E=82252003, 3.3M points are selected, so 3.3M additional iterations during the PRP. There is control over B2 in worktodo.txt like this: B1=2000000,B2=40000000;PRP=AID,1,2,82252003,-1,76,0 This would require a B2 of only 40M instead of the default B2==E. Because B2 is smaller, the cost of the "second stage" (the number of P-1 points selected) is less. It is also possible to set B2 in worktodo to a value larger than the exponent. But the primes can be covered in a compact manner (as needed for a B2 bound) only up to E. Beyond E, only part of the primes can be covered during the PRP. Setting the B2 to a value larger than E will include the primes up to B2 that happen to be testable in iterations up to E. But the B2 bound that will be reported in the results.txt will still be equal to E. More points are tested during the PRP, the factor probability increases a bit, but cost increases too, but the reported B2 stays at most E. 3. The cost of the PRP-1 during the PRP proper (after the preliminary "first-stage") is accounted in the iteration cost. The ms/it value becomes a bit larger than for simple PRP because, for each "test point", an additional multiplication is done. Because the "test points" are not uniformly distributed over the PRP, this results in a slight variation of ms/it over the test. All this being new, please report problems and suggestions. (and questions) |
|
|
|
|
|
#766 |
|
"Mihai Preda"
Apr 2015
3×457 Posts |
I call "kset", or "test points", the set of iteration numbers to be P-1 tested during the PRP test; and I'll try to explain simply the selection procedure ("kselect") of these points.
This can be read in source here: https://github.com/preda/gpuowl/blob...d/Gpu.cpp#L623 For every prime p in the interval [B1, B2]: compute z = z(p) = znorder(Mod(2,p)) This means that 2^z == 1 (modulo p), i.e. p is a factor of 2^z - 1, so the prime p can be tested in iteration z at the earliest. p can also be tested in any iteration that's a multiple of z. Iterating over the primes p in [B1, B2], if z(p)<E, mark z(p) as a test-point -- unless some other prime q in [B1, B2] has a z(q) that is a multiple of z(p), in which case z(q) "wins" and z(p) is not tested. (because z(q) covers both p and q). This procedure does not produce the absolute smallest number of test points covering all the primes in [B1, B2], but it has the nice property of testing many primes "early" (at small iterations); in the [unlikely] event that a factor is found, this stops the PRP earlier. |
|
|
|
|
|
#767 |
|
"Mihai Preda"
Apr 2015
3·457 Posts |
The best exponents for PRP-1 testing are the ones that didn't have any P-1 done yet. One way to get such exponents is to ask for P-1 assignments (and run PRP-1 on them).
|
|
|
|
|
|
#768 |
|
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
2×7×383 Posts |
Code:
#update mingw/msys2 (twice; once for base system, again for packages including gcc-8.20; third says nothing to do ;) pacman -Syu pacman -Syu $ g++ --version g++.exe (Rev3, Built by MSYS2 project) 8.2.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ken@condorella MINGW64 ~/gpuowl-compile/v4.7 $ g++ -std=c++17 -O2 -DREV=\"5b01b65\" Worktodo.cpp Result.cpp common.cpp gpuowl.cpp Gpu.cpp clwrap.cpp Task.cpp checkpoint.cpp timeutil.cpp Args.cppGCD.cpp Primes.cpp Stats.cpp state.cpp Signal.cpp -o openowl -lOpenCL -lgmp -pthread -L/c/Windows/System32 -L. C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: d000034.o:(.idata$5+0x0): multiple definition of`__imp___C_specific_handler'; d000028.o:(.idata$5+0x0): first defined here C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: in function `pre_c_init': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:146: undefined reference to `__p__fmode' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o: in function `__tmainCRTStartup': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:290: undefined reference to `_set_invalid_parameter_handler' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:299: undefined reference to `__p__acmdln' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccCBiz5C.o:common.cpp:(.text+0x4cb): undefined reference to `__imp___acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\msys64\tmp\ccRlimfO.o:Args.cpp:(.text+0x29): undefined reference to `__imp___acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-merr.o): in function `_matherr': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/merr.c:72: undefined reference to `__acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-pseudo-reloc.o): in function `__report_error': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc.c:149: undefined reference to `__acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc.c:150: undefined reference to `__acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingwex.a(lib64_libmingwex_a-wassert.o): in function `_wassert': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/misc/wassert.c:35: undefined reference to `__acrt_iob_func' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingwex.a(lib64_libmingwex_a-mingw_vfprintf.o): in function `__mingw_vfprintf': C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vfprintf.c:53: undefined reference to `_lock_file' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/repo/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/stdio/mingw_vfprintf.c:55: undefined reference to `_unlock_file' collect2.exe: error: ld returned 1 exit status |
|
|
|
|
|
#769 | |
|
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
14F216 Posts |
Quote:
Last fiddled with by kriesel on 2018-10-25 at 01:42 |
|
|
|
|
|
|
#770 |
|
"Mihai Preda"
Apr 2015
3×457 Posts |
|
|
|
|
![]() |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| mfakto: an OpenCL program for Mersenne prefactoring | Bdot | GPU Computing | 1676 | 2021-06-30 21:23 |
| GPUOWL AMD Windows OpenCL issues | xx005fs | GpuOwl | 0 | 2019-07-26 21:37 |
| Testing an expression for primality | 1260 | Software | 17 | 2015-08-28 01:35 |
| Testing Mersenne cofactors for primality? | CRGreathouse | Computer Science & Computational Number Theory | 18 | 2013-06-08 19:12 |
| Primality-testing program with multiple types of moduli (PFGW-related) | Unregistered | Information & Answers | 4 | 2006-10-04 22:38 |