Posts by DeleteNull
log in
1) Message boards : Number crunching : 2 GPUs, 2 tasks on one card, not utilizing gpu 1, (Message 8638)
Posted 7 Jan 2023 by DeleteNull
As far as I know: BOINC passes e.g. "-device 1" to the device so may be we have to update the code that it understands -device instead of -d.
2) Message boards : Number crunching : 2 GPUs, 2 tasks on one card, not utilizing gpu 1, (Message 8636)
Posted 7 Jan 2023 by DeleteNull
Hello, this is the content of a job file:
../../projects/srbase.my-firewall.org_sr5/job_TF_l64c_00020.xml

<job_desc>
<task>
<application>./mfaktc.exe</application>
<append_cmdline_args/>
</task>
<unzip_input>
<zipfilename>mfaktc-linux64-v6.zip</zipfilename>
</unzip_input>
</job_desc>

if you want a device number you have to add a -d <number> parameter (default is 0)

Usage: ./mfaktc.exe [options]
-h display this help and exit
-d <device number> specify the device number used by this program
-tf <exp> <min> <max> trial factor M<exp> from 2^<min> to 2^<max> and exit
instead of parsing the worktodo file
-st run builtin selftest and exit
-st2 same as -st but extended range for k_min/m_max
-v <number> set verbosity (min = 0, default = 1, more = 2, max/debug = 3)
3) Message boards : Number crunching : Trial Factoring (Message 8594)
Posted 30 Dec 2022 by DeleteNull
Hello,

you have to copy the needed libs into your library folder (for me /lib64).
then create a link:
e.g.:
lrwxrwxrwx 1 root root 21 29. Dez 23:46 libcudart.so.12 -> libcudart.so.12.0.107
lrwxrwxrwx 1 root root 21 29. Dez 23:52 libcudart.so.12.0 -> libcudart.so.12.0.107
-rwxr-xr-x 1 root root 675168 29. Dez 23:45 libcudart.so.12.0.107

after this is done mfactc.exe can execute the self test:

Selftest statistics
number of tests 26192
successfull tests 26192

kernel | success | fail
-------------------+---------+-------
UNKNOWN kernel | 0 | 0
71bit_mul24 | 2586 | 0
75bit_mul32 | 2682 | 0
95bit_mul32 | 2867 | 0
barrett76_mul32 | 1096 | 0
barrett77_mul32 | 1114 | 0
barrett79_mul32 | 1153 | 0
barrett87_mul32 | 1066 | 0
barrett88_mul32 | 1069 | 0
barrett92_mul32 | 1084 | 0
75bit_mul32_gs | 2420 | 0
95bit_mul32_gs | 2597 | 0
barrett76_mul32_gs | 1079 | 0
barrett77_mul32_gs | 1096 | 0
barrett79_mul32_gs | 1130 | 0
barrett87_mul32_gs | 1044 | 0
barrett88_mul32_gs | 1047 | 0
barrett92_mul32_gs | 1062 | 0

selftest PASSED!
4) Message boards : Number crunching : Linux GPU errors (Message 7014)
Posted 23 Nov 2020 by DeleteNull

Have you tried running multiple tasks at the same time?


No, I haven't. Performance is outstanding, so there is no need to do so (for me).
5) Message boards : Number crunching : Linux GPU errors (Message 7002)
Posted 22 Nov 2020 by DeleteNull
Depending on the flavour of Linux you are using you have to choose the right directory.
For Ubuntu (and derivatives) it is /usr/lib and in OpenSuse it is /usr/lib64.
But there are some other Linux Distros to confuse the user ;)
6) Message boards : Number crunching : mfaktc.exe --perftest for RTX3080/90 cards (Message 6933)
Posted 12 Nov 2020 by DeleteNull
o.k., thanks. With this number the result is:
no factor for M219111587 from 2^70 to 2^71 [mfaktc 0.21 barrett76_mul32_gs]
tf(): total time spent: 19.759s
7) Message boards : Number crunching : mfaktc.exe --perftest for RTX3080/90 cards (Message 6931)
Posted 12 Nov 2020 by DeleteNull
~/mfakt/compile/mfaktc-master> ./mfaktc.exe --perftest
mfaktc v0.21 (64bit built)

Compiletime options
THREADS_PER_BLOCK 256
SIEVE_SIZE_LIMIT 32kiB
SIEVE_SIZE 193154bits
SIEVE_SPLIT 250
MORE_CLASSES enabled

Runtime options
SievePrimes 25000
SievePrimesAdjust 1
SievePrimesMin 5000
SievePrimesMax 100000
NumStreams 3
CPUStreams 3
GridSize 3
GPU Sieving enabled
GPUSievePrimes 82486
GPUSieveSize 64Mi bits
GPUSieveProcessSize 16Ki bits
Checkpoints enabled
CheckpointDelay 30s
WorkFileAddDelay 600s
Stages enabled
StopAfterFactor bitlevel
PrintMode full
V5UserID (none)
ComputerID (none)
AllowSleep no
TimeStampInResults no

CUDA version info
binary compiled for CUDA 11.10
CUDA runtime version 11.10
CUDA driver version 11.10

CUDA device info
name GeForce RTX 3080
compute capability 8.6
max threads per block 1024
max shared memory per MP 102400 byte
number of multiprocessors 68
clock rate (CUDA cores) 1815MHz
memory clock rate: 9501MHz
memory bus width: 320 bit

Automatic parameters
threads per grid 557056
GPUSievePrimes (adjusted) 82486
GPUsieve minimum exponent 1055144

running a simple selftest...
Selftest statistics
number of tests 107
successfull tests 107

selftest PASSED!

ERROR: get_next_assignment(): no valid assignment found in "worktodo.txt"

which value shall worktodo.txt have?
8) Message boards : Number crunching : Trial Factoring tests (Message 6235)
Posted 15 Apr 2020 by DeleteNull
I've patched mfakto, not mfaktc.
So the mapping --device 0 to -d 00 is only implemented for AMD, not NVidia.
(and only linux)
9) Message boards : Number crunching : Trial Factoring tests (Message 6233)
Posted 15 Apr 2020 by DeleteNull
o.k., you can find the updated wrapper.cpp here:
https://p-numbers.net/wrapper.cpp

Works for mfakto (mfaktc), but will not work for LLR.
10) Message boards : Number crunching : Trial Factoring tests (Message 6231)
Posted 15 Apr 2020 by DeleteNull
Do you have the complete wrapper.cpp file?


The new wrapper works as expected.
Task starts with 0%, switches to 100% after one minute.
This is because there is no Mxxxxxx.ckp file in the first 5 minutes.

After 5 minutes it switches to the percentage of the last Mxxxxxx.ckp.
The remaining time increases (because the percentage stays at the old level for 5 minutes)
After 10 minutes is the next update, and then every 5 minutes.

Is this o.k., or shall I implement a smoother calculation of the percentage (a few more steps in the 5 minute interval)?
11) Message boards : Number crunching : Trial Factoring tests (Message 6225)
Posted 15 Apr 2020 by DeleteNull
Theoretical both applicatins can support more than one (different) GPU.
But: BOINC enumerates the GPU with 0, 1, 2, ....
In OpenCl you have platforms, e.g. Intel=0, AMD=1, NVidia=2, and for each platform 1..n devices GPU.

A mapping form 0, 1, 2 to 00, 10, 11 is different for each computer with more than one graphics device.

So there is currently only one mapping --device 0 to d 00. (possible)

Sorry to interject your development process.

Why are you using "--device x" for mfakto and mfaktc ?
Both their guides say to use "-d x"

Q: Does mfakto support multiple GPUs?
A: No, but you can use the -d option to tell an instance to run on a specific
device. Please also read the next question.

Q Does mfaktc support multiple GPUs?
A Yes, with the exception that a single instance of mfaktc can only use one
GPU. For each GPU you want to run mfaktc on you need (at least) one
instance of mfaktc. For each instance of mfaktc you can use the
commandline option "-d <GPU number>" to specify which GPU to use for each
specific mfaktc instance. Please read the next question, too.

I can run a second task on a second GPU but only if I specify "-d x", as soon as I pass "--device x" (or "-device x") on the command line it defaults to the first GPU.

Can you use "-d x" for linux wrapper at least please ?
12) Message boards : Number crunching : Trial Factoring tests (Message 6224)
Posted 15 Apr 2020 by DeleteNull
No issues.
In about an hour an "old" WU is finished, the new WU should use the new wrapper and I can report.

I am not a C/C++ developer. The new method just reads the worktodo.txt with the number and contructs the file name for the checkpoint file of mfaktc/mfakto and calculates the fraction of "work done". This can be used by the method fraction_done() of the (original) wrapper.

If it succeeds I will send you the wrapper.cpp so it can be used for Windows too.
13) Message boards : Number crunching : Trial Factoring tests (Message 6220)
Posted 15 Apr 2020 by DeleteNull
What ending is exe?
The file is named wrapper_26016_7.16_mfakt
It is linux executable (-rwxr-xr-x)

The new method is:
double getMfraction() { FILE* f = fopen("worktodo.txt", "r"); if (!f) return 0; char* p; char buf[256]; p = fgets(buf, 256, f); fclose(f); if (p == NULL) return 0; char * qch; qch = strtok(p, "="); qch = strtok(NULL, ","); int len = strlen(qch); char mfile[6+len]; mfile[0] = 'M'; int i; for (i = 0; i < len; i++) { mfile[1+i] = qch[i]; } mfile[1+len] = '.'; mfile[2+len] = 'c'; mfile[3+len] = 'k'; mfile[4+len] = 'p'; mfile[5+len] = '\0'; FILE* ff = fopen(mfile, "r"); if (!ff) return 0; char* pp; pp = fgets(buf, 256, ff); fclose(ff); if (pp == NULL) return 0; char * pch; int count = 0; double all = 0, done = 0, frac = 0; pch = strtok (pp, " "); while (pch != NULL) { count++; if (count == 4) all = atof(pch); if (count == 7) done = atof(pch); pch = strtok (NULL, " "); } if (all > 0) frac = done / all; if (frac < 0) return 0; if (frac > 1) return 1; return frac; }
14) Message boards : Number crunching : Trial Factoring tests (Message 6217)
Posted 15 Apr 2020 by DeleteNull
20:18:30 (19664): BOINC client no longer exists - exiting
20:18:30 (19664): timer handler: client dead, exiting
15) Message boards : Number crunching : Trial Factoring tests (Message 6215)
Posted 15 Apr 2020 by DeleteNull
Does the wrapper work without BOINC?
So I create a test dir and copy the files into it?

And yes...you will get the source.
16) Message boards : Number crunching : Trial Factoring tests (Message 6213)
Posted 15 Apr 2020 by DeleteNull
A new (test) version of the wrapper (mfakto/mfaktc) is here:
https://p-numbers.net/wrapper_26016_7.16_mfakt

The next test can begin.....
17) Message boards : Number crunching : Trial Factoring tests (Message 6200)
Posted 14 Apr 2020 by DeleteNull
Will need another evening. C and characters (strings) are colliding worlds.
18) Message boards : Number crunching : Trial Factoring tests (Message 6174)
Posted 13 Apr 2020 by DeleteNull
The old wrapper code is here


Tomorrow (after work) I will try to implement a method in the wrapper that it can deal with the .ckp file.
The ini file should change from CheckpointDelay=300 to CheckpointDelay=60.
(both: NVidia and AMD)
19) Message boards : Number crunching : Trial Factoring tests (Message 6173)
Posted 13 Apr 2020 by DeleteNull
I added a second PC to this test, and it runs too (had to reset the project).

The good news:
Two tests are running, one with Ubuntu 18.04, the other with Opensuse 15.1.
One with driver 20.10 (Radeon 5500XT), the other with driver 19.50 (R9 380)
One will need about 10 hours, the other will need 27 hours.

The bad news:
You have to wait with 100% until it's finished, or you have to extend the wrapper.
20) Message boards : Number crunching : Trial Factoring tests (Message 6171)
Posted 13 Apr 2020 by DeleteNull
In this case the file M97983883.ckp keeps the checkpoint:

97983883 77 78 4620 mfakto 0.15pre6: 17 0 B624ABF0
97983883 77 78 4620 mfakto 0.15pre6: 45 0 150D244C
97983883 77 78 4620 mfakto 0.15pre6: 72 0 7071D1B7
97983883 77 78 4620 mfakto 0.15pre6: 93 0 48AC81E6
97983883 77 78 4620 mfakto 0.15pre6: 116 0 9EC681F1

So the estimated runtime is 9:50 hours.
But the name M97983883.ckp is different for each test.

...we need a few additional lines of code in the wrapper, so that it can handle the .ckp file.


Next 20

Main page · Your account · Message boards


Copyright © 2014-2023 BOINC Confederation / rebirther