Pages:
Author

Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner - page 47. (Read 444067 times)

newbie
Activity: 27
Merit: 0
Hi, I just wanna check if anyone's mining m7m on zpool? I'm having trouble connecting to the server, keeps saying "stratum_subscribe send failed". Is it just me or is the pool having some issues? I've tried connecting to xevan on zpool and it seems that there wasn't any connection problems for xevan...
newbie
Activity: 23
Merit: 0
Stupid mistake, try this change in algo/lyra2/lyra2h.c line 34:

Code:
34c34
<         LYRA2Z( lyra2h_matrix, hash, 32, hash, 32, hash, 32, 16, 16, 16 );
---
>         LYRA2Z( lyra2h_matrix, hash, 32, hash, 32, hash, 32, 8, 8, 8);


I presume no news means it now works? I'd like confirmation.

With the following change it still only uses 32 CPUs:

Code:
--- algo/lyra2/lyra2h.c.orig    2017-12-14 23:28:51.000000000 +0000
+++ algo/lyra2/lyra2h.c 2017-12-16 05:29:48.295167452 +0000
@@ -31,7 +31,7 @@
         sph_blake256( &ctx_blake, input + 64, 16 );
         sph_blake256_close( &ctx_blake, hash );
 
-        LYRA2Z( lyra2h_matrix, hash, 32, hash, 32, hash, 32, 8, 8, 8);
+        LYRA2Z( lyra2h_matrix, hash, 32, hash, 32, hash, 32, 16, 16, 16);
 
     memcpy(state, hash, 32);
 }

Not sure if I should try your earlier changes as well? If so - could you send a patch in diff -u format?
legendary
Activity: 1470
Merit: 1114
legendary
Activity: 1470
Merit: 1114

Code:
[2017-12-16 01:03:56] Starting Stratum on stratum+tcp://ip:port
[2017-12-16 01:03:56] Binding thread 0 to cpu 0 (mask 1)
[2017-12-16 01:03:56] Binding thread 1 to cpu 1 (mask 2)
[2017-12-16 01:03:56] Binding thread 2 to cpu 2 (mask 4)
[2017-12-16 01:03:56] Binding thread 3 to cpu 3 (mask 8)
[2017-12-16 01:03:56] Binding thread 4 to cpu 4 (mask 10)
[2017-12-16 01:03:56] Binding thread 5 to cpu 5 (mask 20)
[2017-12-16 01:03:56] Binding thread 6 to cpu 6 (mask 40)
[2017-12-16 01:03:56] Binding thread 7 to cpu 7 (mask 80)
[2017-12-16 01:03:56] Binding thread 8 to cpu 8 (mask 100)
[2017-12-16 01:03:56] Binding thread 9 to cpu 9 (mask 200)
[2017-12-16 01:03:56] Binding thread 10 to cpu 10 (mask 400)
[2017-12-16 01:03:56] Binding thread 11 to cpu 11 (mask 800)
[2017-12-16 01:03:56] Binding thread 12 to cpu 12 (mask 1000)
[2017-12-16 01:03:56] Binding thread 13 to cpu 13 (mask 2000)
[2017-12-16 01:03:56] Binding thread 14 to cpu 14 (mask 4000)
[2017-12-16 01:03:56] Binding thread 15 to cpu 15 (mask 8000)
[2017-12-16 01:03:56] Binding thread 16 to cpu 16 (mask 10000)
[2017-12-16 01:03:56] Binding thread 17 to cpu 17 (mask 20000)
[2017-12-16 01:03:56] Binding thread 18 to cpu 18 (mask 40000)
[2017-12-16 01:03:56] Binding thread 19 to cpu 19 (mask 80000)
[2017-12-16 01:03:56] Binding thread 20 to cpu 20 (mask 100000)
[2017-12-16 01:03:56] Binding thread 21 to cpu 21 (mask 200000)
[2017-12-16 01:03:56] Binding thread 22 to cpu 22 (mask 400000)
[2017-12-16 01:03:56] Binding thread 23 to cpu 23 (mask 800000)
[2017-12-16 01:03:56] Binding thread 24 to cpu 24 (mask 1000000)
[2017-12-16 01:03:56] Binding thread 25 to cpu 25 (mask 2000000)
[2017-12-16 01:03:56] Binding thread 26 to cpu 26 (mask 4000000)
[2017-12-16 01:03:56] Binding thread 27 to cpu 27 (mask 8000000)
[2017-12-16 01:03:56] Binding thread 28 to cpu 28 (mask 10000000)
[2017-12-16 01:03:56] Binding thread 29 to cpu 29 (mask 20000000)
[2017-12-16 01:03:56] Binding thread 30 to cpu 30 (mask 40000000)
[2017-12-16 01:03:56] Binding thread 31 to cpu 31 (mask 80000000)
[2017-12-16 01:03:56] Binding thread 32 to cpu 32 (mask 1)
[2017-12-16 01:03:56] Binding thread 33 to cpu 33 (mask 2)
[2017-12-16 01:03:56] Binding thread 34 to cpu 34 (mask 4)
[2017-12-16 01:03:56] Binding thread 35 to cpu 35 (mask 8)
[2017-12-16 01:03:56] Binding thread 36 to cpu 36 (mask 10)
[2017-12-16 01:03:56] Binding thread 37 to cpu 37 (mask 20)
[2017-12-16 01:03:56] Binding thread 38 to cpu 38 (mask 40)
[2017-12-16 01:03:56] Binding thread 39 to cpu 39 (mask 80)
[2017-12-16 01:03:56] Binding thread 40 to cpu 40 (mask 100)
[2017-12-16 01:03:56] Binding thread 41 to cpu 41 (mask 200)
[2017-12-16 01:03:56] Binding thread 42 to cpu 42 (mask 400)
[2017-12-16 01:03:56] Binding thread 43 to cpu 43 (mask 800)
[2017-12-16 01:03:56] Binding thread 44 to cpu 44 (mask 1000)
[2017-12-16 01:03:56] Binding thread 45 to cpu 45 (mask 2000)
[2017-12-16 01:03:56] Binding thread 46 to cpu 46 (mask 4000)
[2017-12-16 01:03:56] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-16 01:03:56] Binding thread 47 to cpu 47 (mask 8000)
[2017-12-16 01:03:57] Stratum session id: deadbeefcafebabef76c160000000000
[2017-12-16 01:03:57] Stratum difficulty set to 10
[2017-12-16 01:03:58] Stratum difficulty set to 5
[2017-12-16 01:03:58] DEBUG: job_id='1e40' extranonce2=00000000 ntime=5a3470e6
[2017-12-16 01:03:58] Stratum difficulty set to 10 (0.03906)
(...)
I've reviewed the changes I made for 64 CPU support and they should only have an effect when
there are more than 64 vcores. It's as simple as if num_cpus > 64 do something different else
do as usual.
Quote
The issue must be somewhere in cpu-miner.c.

If we copy cpu-miner.c from v3.7.5.tar.gz to 3.7.6 and compile it, all 48 CPUs are used.

If we copy cpu-miner.c from v3.7.6.tar.gz to 3.7.5 and compile it, only 32 CPUs are used.
Code:
        applog( LOG_DEBUG, "Binding thread %d to cpu %d (mask %x)",
                   thr_id, thr_id % num_cpus, ( 1 << (thr_id % num_cpus) ) );
         affine_to_cpu_mask( thr_id, 1 << (thr_id % num_cpus) );

Something isn't making sense. The mask is rolling over at 32. The only way that happens is if num_cpus == 32.

This is really bugging me. The only idea I have is the literal constant 1 is not being extended to 64 bits and the result
of ( 1 << (thr_id % num_cpus) ) is only a 32 bit value even though num_cpus is 48. If this is the case I don't know
why it worked before. But it's worth a try forcing it to 64 bits:

Code:
207c207
<       if( (ncpus > 64) || ( mask & (1ULL << i) ) )  CPU_SET( i, &set );
---
>       if( (ncpus > 64) || ( mask & (1UL << i) ) )  CPU_SET( i, &set );
1693c1693
<                    thr_id, thr_id % num_cpus, ( 1ULL << (thr_id % num_cpus) ) );
---
>                    thr_id, thr_id % num_cpus, ( 1 << (thr_id % num_cpus) ) );
1695c1695
<          affine_to_cpu_mask( thr_id, 1ULL << (thr_id % num_cpus) );
---
>          affine_to_cpu_mask( thr_id, 1 << (thr_id % num_cpus) );
legendary
Activity: 1470
Merit: 1114
Using --cpu-affinity 0xffffffffffff makes it correctly run on 48 CPUs:

Well, that's something. I'll take a closer look and may provide some test code to gather more info.
newbie
Activity: 23
Merit: 0
Can you try with a 48 bit affinity mask to see what that does?
Code:
--cpu-affinity 0xffffffffffff


Using --cpu-affinity 0xffffffffffff makes it correctly run on 48 CPUs:

Code:
# ./cpuminer -c conf.conf -q -D  --cpu-affinity 0xffffffffffff

         **********  cpuminer-opt 3.7.6  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AES_NI and AVX2 and SHA extensions.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT

CPU: AMD EPYC 7401P 24-Core Processor               .
SW built on Dec 16 2017 with GCC 5.4.0.
CPU features: SSE2 AES AVX AVX2 SHA.
SW features: SSE2 AES AVX AVX2 SHA.
Algo features: AVX AVX2.
Start mining with AVX2.

[2017-12-16 02:19:58] Starting Stratum on stratum+tcp://pool:80
[2017-12-16 02:19:58] Binding thread 0 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 1 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 2 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 3 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 4 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 5 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 6 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 7 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 8 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 9 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 10 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 11 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 12 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 13 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 14 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 15 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 16 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 17 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 18 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 19 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 20 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 21 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 22 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 23 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 24 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 25 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 26 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 27 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 28 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 29 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 30 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 31 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 33 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 32 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 34 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 35 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 36 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 37 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 38 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 39 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 40 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 41 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 42 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 43 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 44 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 45 to cpu mask ffffffff
[2017-12-16 02:19:58] Binding thread 46 to cpu mask ffffffff
[2017-12-16 02:19:58] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-16 02:19:58] Binding thread 47 to cpu mask ffffffff
[2017-12-16 02:19:59] Stratum session id: deadbeefcafebabe61fe000000000000
[2017-12-16 02:19:59] Stratum difficulty set to 10
[2017-12-16 02:20:00] Stratum difficulty set to 5
[2017-12-16 02:20:00] DEBUG: job_id='1ea2' extranonce2=00000000 ntime=5a34829d
[2017-12-16 02:20:00] Stratum difficulty set to 10 (0.03906)
[2017-12-16 02:20:04] DEBUG: job_id='1ea3' extranonce2=00000000 ntime=5a3482d4
[2017-12-16 02:20:04] Stratum difficulty set to 5 (0.01953)
(...)


If we don't use --cpu-affinity 0xffffffffffff, it runs on 32 CPUs (as observed in htop or top - it still fires 48 threads though):

Code:
# ./cpuminer -c conf.conf -q -D

         **********  cpuminer-opt 3.7.6  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AES_NI and AVX2 and SHA extensions.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT

CPU: AMD EPYC 7401P 24-Core Processor               .
SW built on Dec 16 2017 with GCC 5.4.0.
CPU features: SSE2 AES AVX AVX2 SHA.
SW features: SSE2 AES AVX AVX2 SHA.
Algo features: AVX AVX2.
Start mining with AVX2.

[2017-12-16 02:22:34] Starting Stratum on stratum+tcp://pool:80
[2017-12-16 02:22:34] Binding thread 0 to cpu 0 (mask 1)
[2017-12-16 02:22:34] Binding thread 1 to cpu 1 (mask 2)
[2017-12-16 02:22:34] Binding thread 2 to cpu 2 (mask 4)
[2017-12-16 02:22:34] Binding thread 3 to cpu 3 (mask 8)
[2017-12-16 02:22:34] Binding thread 4 to cpu 4 (mask 10)
[2017-12-16 02:22:34] Binding thread 5 to cpu 5 (mask 20)
[2017-12-16 02:22:34] Binding thread 6 to cpu 6 (mask 40)
[2017-12-16 02:22:34] Binding thread 7 to cpu 7 (mask 80)
[2017-12-16 02:22:34] Binding thread 8 to cpu 8 (mask 100)
[2017-12-16 02:22:34] Binding thread 9 to cpu 9 (mask 200)
[2017-12-16 02:22:34] Binding thread 10 to cpu 10 (mask 400)
[2017-12-16 02:22:34] Binding thread 11 to cpu 11 (mask 800)
[2017-12-16 02:22:34] Binding thread 12 to cpu 12 (mask 1000)
[2017-12-16 02:22:34] Binding thread 13 to cpu 13 (mask 2000)
[2017-12-16 02:22:34] Binding thread 14 to cpu 14 (mask 4000)
[2017-12-16 02:22:34] Binding thread 15 to cpu 15 (mask 8000)
[2017-12-16 02:22:34] Binding thread 16 to cpu 16 (mask 10000)
[2017-12-16 02:22:34] Binding thread 17 to cpu 17 (mask 20000)
[2017-12-16 02:22:34] Binding thread 18 to cpu 18 (mask 40000)
[2017-12-16 02:22:34] Binding thread 19 to cpu 19 (mask 80000)
[2017-12-16 02:22:34] Binding thread 20 to cpu 20 (mask 100000)
[2017-12-16 02:22:34] Binding thread 21 to cpu 21 (mask 200000)
[2017-12-16 02:22:34] Binding thread 22 to cpu 22 (mask 400000)
[2017-12-16 02:22:34] Binding thread 23 to cpu 23 (mask 800000)
[2017-12-16 02:22:34] Binding thread 24 to cpu 24 (mask 1000000)
[2017-12-16 02:22:34] Binding thread 25 to cpu 25 (mask 2000000)
[2017-12-16 02:22:34] Binding thread 26 to cpu 26 (mask 4000000)
[2017-12-16 02:22:34] Binding thread 27 to cpu 27 (mask 8000000)
[2017-12-16 02:22:34] Binding thread 28 to cpu 28 (mask 10000000)
[2017-12-16 02:22:34] Binding thread 29 to cpu 29 (mask 20000000)
[2017-12-16 02:22:34] Binding thread 30 to cpu 30 (mask 40000000)
[2017-12-16 02:22:34] Binding thread 31 to cpu 31 (mask 80000000)
[2017-12-16 02:22:34] Binding thread 32 to cpu 32 (mask 1)
[2017-12-16 02:22:34] Binding thread 33 to cpu 33 (mask 2)
[2017-12-16 02:22:34] Binding thread 34 to cpu 34 (mask 4)
[2017-12-16 02:22:34] Binding thread 35 to cpu 35 (mask 8)
[2017-12-16 02:22:34] Binding thread 36 to cpu 36 (mask 10)
[2017-12-16 02:22:34] Binding thread 37 to cpu 37 (mask 20)
[2017-12-16 02:22:34] Binding thread 38 to cpu 38 (mask 40)
[2017-12-16 02:22:34] Binding thread 39 to cpu 39 (mask 80)
[2017-12-16 02:22:34] Binding thread 40 to cpu 40 (mask 100)
[2017-12-16 02:22:34] Binding thread 41 to cpu 41 (mask 200)
[2017-12-16 02:22:34] Binding thread 42 to cpu 42 (mask 400)
[2017-12-16 02:22:34] Binding thread 43 to cpu 43 (mask 800)
[2017-12-16 02:22:34] Binding thread 44 to cpu 44 (mask 1000)
[2017-12-16 02:22:34] Binding thread 45 to cpu 45 (mask 2000)
[2017-12-16 02:22:34] Binding thread 46 to cpu 46 (mask 4000)
[2017-12-16 02:22:34] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-16 02:22:34] Binding thread 47 to cpu 47 (mask 8000)
[2017-12-16 02:22:35] Stratum session id: deadbeefcafebabec147160000000000
[2017-12-16 02:22:35] Stratum difficulty set to 10
[2017-12-16 02:22:36] Stratum difficulty set to 5
[2017-12-16 02:22:36] DEBUG: job_id='1e9f' extranonce2=00000000 ntime=5a348344
[2017-12-16 02:22:36] Stratum difficulty set to 10 (0.03906)
[2017-12-16 02:22:52] DEBUG: job_id='1ea0' extranonce2=00000000 ntime=5a34837b
[2017-12-16 02:22:52] Stratum difficulty set to 5 (0.01953)
(...)
legendary
Activity: 1470
Merit: 1114


Tried 3.7.5 vs 3.7.6 - 3.7.5 runs on all CPUs, 3.7.6 only works on 32 CPUs and gives lower hash rates.

Both versions start in the same way with -D:

Code:
[2017-12-16 01:03:56] Starting Stratum on stratum+tcp://ip:port
[2017-12-16 01:03:56] Binding thread 0 to cpu 0 (mask 1)
[2017-12-16 01:03:56] Binding thread 1 to cpu 1 (mask 2)
[2017-12-16 01:03:56] Binding thread 2 to cpu 2 (mask 4)
[2017-12-16 01:03:56] Binding thread 3 to cpu 3 (mask 8)
[2017-12-16 01:03:56] Binding thread 4 to cpu 4 (mask 10)
[2017-12-16 01:03:56] Binding thread 5 to cpu 5 (mask 20)
[2017-12-16 01:03:56] Binding thread 6 to cpu 6 (mask 40)
[2017-12-16 01:03:56] Binding thread 7 to cpu 7 (mask 80)
[2017-12-16 01:03:56] Binding thread 8 to cpu 8 (mask 100)
[2017-12-16 01:03:56] Binding thread 9 to cpu 9 (mask 200)
[2017-12-16 01:03:56] Binding thread 10 to cpu 10 (mask 400)
[2017-12-16 01:03:56] Binding thread 11 to cpu 11 (mask 800)
[2017-12-16 01:03:56] Binding thread 12 to cpu 12 (mask 1000)
[2017-12-16 01:03:56] Binding thread 13 to cpu 13 (mask 2000)
[2017-12-16 01:03:56] Binding thread 14 to cpu 14 (mask 4000)
[2017-12-16 01:03:56] Binding thread 15 to cpu 15 (mask 8000)
[2017-12-16 01:03:56] Binding thread 16 to cpu 16 (mask 10000)
[2017-12-16 01:03:56] Binding thread 17 to cpu 17 (mask 20000)
[2017-12-16 01:03:56] Binding thread 18 to cpu 18 (mask 40000)
[2017-12-16 01:03:56] Binding thread 19 to cpu 19 (mask 80000)
[2017-12-16 01:03:56] Binding thread 20 to cpu 20 (mask 100000)
[2017-12-16 01:03:56] Binding thread 21 to cpu 21 (mask 200000)
[2017-12-16 01:03:56] Binding thread 22 to cpu 22 (mask 400000)
[2017-12-16 01:03:56] Binding thread 23 to cpu 23 (mask 800000)
[2017-12-16 01:03:56] Binding thread 24 to cpu 24 (mask 1000000)
[2017-12-16 01:03:56] Binding thread 25 to cpu 25 (mask 2000000)
[2017-12-16 01:03:56] Binding thread 26 to cpu 26 (mask 4000000)
[2017-12-16 01:03:56] Binding thread 27 to cpu 27 (mask 8000000)
[2017-12-16 01:03:56] Binding thread 28 to cpu 28 (mask 10000000)
[2017-12-16 01:03:56] Binding thread 29 to cpu 29 (mask 20000000)
[2017-12-16 01:03:56] Binding thread 30 to cpu 30 (mask 40000000)
[2017-12-16 01:03:56] Binding thread 31 to cpu 31 (mask 80000000)
[2017-12-16 01:03:56] Binding thread 32 to cpu 32 (mask 1)
[2017-12-16 01:03:56] Binding thread 33 to cpu 33 (mask 2)
[2017-12-16 01:03:56] Binding thread 34 to cpu 34 (mask 4)
[2017-12-16 01:03:56] Binding thread 35 to cpu 35 (mask 8)
[2017-12-16 01:03:56] Binding thread 36 to cpu 36 (mask 10)
[2017-12-16 01:03:56] Binding thread 37 to cpu 37 (mask 20)
[2017-12-16 01:03:56] Binding thread 38 to cpu 38 (mask 40)
[2017-12-16 01:03:56] Binding thread 39 to cpu 39 (mask 80)
[2017-12-16 01:03:56] Binding thread 40 to cpu 40 (mask 100)
[2017-12-16 01:03:56] Binding thread 41 to cpu 41 (mask 200)
[2017-12-16 01:03:56] Binding thread 42 to cpu 42 (mask 400)
[2017-12-16 01:03:56] Binding thread 43 to cpu 43 (mask 800)
[2017-12-16 01:03:56] Binding thread 44 to cpu 44 (mask 1000)
[2017-12-16 01:03:56] Binding thread 45 to cpu 45 (mask 2000)
[2017-12-16 01:03:56] Binding thread 46 to cpu 46 (mask 4000)
[2017-12-16 01:03:56] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-16 01:03:56] Binding thread 47 to cpu 47 (mask 8000)
[2017-12-16 01:03:57] Stratum session id: deadbeefcafebabef76c160000000000
[2017-12-16 01:03:57] Stratum difficulty set to 10
[2017-12-16 01:03:58] Stratum difficulty set to 5
[2017-12-16 01:03:58] DEBUG: job_id='1e40' extranonce2=00000000 ntime=5a3470e6
[2017-12-16 01:03:58] Stratum difficulty set to 10 (0.03906)
(...)

Are you sure? Which version is this? The mask changed from thread 32 up, yet the debug output
says it's binding to the correct CPU for threads 32 and up

Quote
Quote
I've reviewed the changes I made for 64 CPU support and they should only have an effect when
there are more than 64 vcores. It's as simple as if num_cpus > 64 do something different else
do as usual.
The issue must be somewhere in cpu-miner.c.

If we copy cpu-miner.c from v3.7.5.tar.gz to 3.7.6 and compile it, all 48 CPUs are used.

If we copy cpu-miner.c from v3.7.6.tar.gz to 3.7.5 and compile it, only 32 CPUs are used.

Are you sure the output is exactly the same? Which version is this? The mask changed from thread 32 up,
yet the debug output says it's binding to the correct CPU.

Since I have no way to test this I'm relying on you. Without some kind of clue my only choice is to backout
the change that added support for more than 64 CPUs.

Code:
        applog( LOG_DEBUG, "Binding thread %d to cpu %d (mask %x)",
                   thr_id, thr_id % num_cpus, ( 1 << (thr_id % num_cpus) ) );
         affine_to_cpu_mask( thr_id, 1 << (thr_id % num_cpus) );

Something isn't making sense. The mask is rolling over at 32. The only way that happens is if num_cpus == 32.

Can you try with a 48 bit affinity mask to see what that does?
Code:
--cpu-affinity 0xffffffffffff
newbie
Activity: 23
Merit: 0
I presume this is the same system using both versions of cpuminer-opt.

Of course I'm seeing these results on the same system.


I've reviewed the changes I made for 64 CPU support and they should only have an effect when
there are more than 64 vcores. It's as simple as if num_cpus > 64 do something different else
do as usual.

The issue must be somewhere in cpu-miner.c.

If we copy cpu-miner.c from v3.7.5.tar.gz to 3.7.6 and compile it, all 48 CPUs are used.

If we copy cpu-miner.c from v3.7.6.tar.gz to 3.7.5 and compile it, only 32 CPUs are used.
newbie
Activity: 23
Merit: 0
I presume this is the same system using both versions of cpuminer-opt.

I've reviewed the changes I made for 64 CPU support and they should only have an effect when
there are more than 64 vcores. It's as simple as if num_cpus > 64 do something different else
do as usual.

I can find no reason why it behaves differently or why it maxes at 32.

Test both versions with -D, the debug output may provide a clue.

Edit: Also is there anything unusual about that system? Any virtualization or NUMA?

Tried 3.7.5 vs 3.7.6 - 3.7.5 runs on all CPUs, 3.7.6 only works on 32 CPUs and gives lower hash rates.

Both versions start the same number of threads:

Code:
# ps -eLf|grep -c cpuminer
52


Both versions start in the same way with -D:

Code:
[2017-12-16 01:03:56] Starting Stratum on stratum+tcp://ip:port
[2017-12-16 01:03:56] Binding thread 0 to cpu 0 (mask 1)
[2017-12-16 01:03:56] Binding thread 1 to cpu 1 (mask 2)
[2017-12-16 01:03:56] Binding thread 2 to cpu 2 (mask 4)
[2017-12-16 01:03:56] Binding thread 3 to cpu 3 (mask 8)
[2017-12-16 01:03:56] Binding thread 4 to cpu 4 (mask 10)
[2017-12-16 01:03:56] Binding thread 5 to cpu 5 (mask 20)
[2017-12-16 01:03:56] Binding thread 6 to cpu 6 (mask 40)
[2017-12-16 01:03:56] Binding thread 7 to cpu 7 (mask 80)
[2017-12-16 01:03:56] Binding thread 8 to cpu 8 (mask 100)
[2017-12-16 01:03:56] Binding thread 9 to cpu 9 (mask 200)
[2017-12-16 01:03:56] Binding thread 10 to cpu 10 (mask 400)
[2017-12-16 01:03:56] Binding thread 11 to cpu 11 (mask 800)
[2017-12-16 01:03:56] Binding thread 12 to cpu 12 (mask 1000)
[2017-12-16 01:03:56] Binding thread 13 to cpu 13 (mask 2000)
[2017-12-16 01:03:56] Binding thread 14 to cpu 14 (mask 4000)
[2017-12-16 01:03:56] Binding thread 15 to cpu 15 (mask 8000)
[2017-12-16 01:03:56] Binding thread 16 to cpu 16 (mask 10000)
[2017-12-16 01:03:56] Binding thread 17 to cpu 17 (mask 20000)
[2017-12-16 01:03:56] Binding thread 18 to cpu 18 (mask 40000)
[2017-12-16 01:03:56] Binding thread 19 to cpu 19 (mask 80000)
[2017-12-16 01:03:56] Binding thread 20 to cpu 20 (mask 100000)
[2017-12-16 01:03:56] Binding thread 21 to cpu 21 (mask 200000)
[2017-12-16 01:03:56] Binding thread 22 to cpu 22 (mask 400000)
[2017-12-16 01:03:56] Binding thread 23 to cpu 23 (mask 800000)
[2017-12-16 01:03:56] Binding thread 24 to cpu 24 (mask 1000000)
[2017-12-16 01:03:56] Binding thread 25 to cpu 25 (mask 2000000)
[2017-12-16 01:03:56] Binding thread 26 to cpu 26 (mask 4000000)
[2017-12-16 01:03:56] Binding thread 27 to cpu 27 (mask 8000000)
[2017-12-16 01:03:56] Binding thread 28 to cpu 28 (mask 10000000)
[2017-12-16 01:03:56] Binding thread 29 to cpu 29 (mask 20000000)
[2017-12-16 01:03:56] Binding thread 30 to cpu 30 (mask 40000000)
[2017-12-16 01:03:56] Binding thread 31 to cpu 31 (mask 80000000)
[2017-12-16 01:03:56] Binding thread 32 to cpu 32 (mask 1)
[2017-12-16 01:03:56] Binding thread 33 to cpu 33 (mask 2)
[2017-12-16 01:03:56] Binding thread 34 to cpu 34 (mask 4)
[2017-12-16 01:03:56] Binding thread 35 to cpu 35 (mask 8)
[2017-12-16 01:03:56] Binding thread 36 to cpu 36 (mask 10)
[2017-12-16 01:03:56] Binding thread 37 to cpu 37 (mask 20)
[2017-12-16 01:03:56] Binding thread 38 to cpu 38 (mask 40)
[2017-12-16 01:03:56] Binding thread 39 to cpu 39 (mask 80)
[2017-12-16 01:03:56] Binding thread 40 to cpu 40 (mask 100)
[2017-12-16 01:03:56] Binding thread 41 to cpu 41 (mask 200)
[2017-12-16 01:03:56] Binding thread 42 to cpu 42 (mask 400)
[2017-12-16 01:03:56] Binding thread 43 to cpu 43 (mask 800)
[2017-12-16 01:03:56] Binding thread 44 to cpu 44 (mask 1000)
[2017-12-16 01:03:56] Binding thread 45 to cpu 45 (mask 2000)
[2017-12-16 01:03:56] Binding thread 46 to cpu 46 (mask 4000)
[2017-12-16 01:03:56] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-16 01:03:56] Binding thread 47 to cpu 47 (mask 8000)
[2017-12-16 01:03:57] Stratum session id: deadbeefcafebabef76c160000000000
[2017-12-16 01:03:57] Stratum difficulty set to 10
[2017-12-16 01:03:58] Stratum difficulty set to 5
[2017-12-16 01:03:58] DEBUG: job_id='1e40' extranonce2=00000000 ntime=5a3470e6
[2017-12-16 01:03:58] Stratum difficulty set to 10 (0.03906)
(...)




Edit: Also is there anything unusual about that system? Any virtualization or NUMA?


There isn't anything unusual about this system, no virtualization, no multiple sockets etc.
newbie
Activity: 14
Merit: 0
Has anyone tried to compile cpuminer-opt on ARM architecture? I've tried, but it fails miserably...

Tried, works fine. How are you trying to do it?
legendary
Activity: 1470
Merit: 1114

Ubuntu 16.04.

When I start cpuminer-opt 3.7.6 on a 48 CPU system, in top/htop I can see only 32 CPUs are used (unexpected).
When I start cpuminer-opt 3.7.3 on a 48 CPU system, in top/htop I can see 48 CPUs are used (expected).

Didn't try other versions.


Command line:

Code:
# ./cpuminer -c config.conf -q
         **********  cpuminer-opt 3.7.6  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AES_NI and AVX2 and SHA extensions.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT

CPU: AMD EPYC 7401P 24-Core Processor               .
SW built on Dec 15 2017 with GCC 5.4.0.
CPU features: SSE2 AES AVX AVX2 SHA.
SW features: SSE2 AES AVX AVX2 SHA.
Algo features: AVX AVX2.
Start mining with AVX2.

[2017-12-15 22:06:13] Starting Stratum on stratum+tcp://address:port
[2017-12-15 22:06:13] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-15 22:06:13] Stratum difficulty set to 10

config.conf:

Code:
{

    "url" : "some-url:port",
    "user" : "some.01234.worker",
    "pass" : "pass",

    "algo" : "lyra2z",
    "api-bind" : 0
}

I presume this is the same system using both versions of cpuminer-opt.

I've reviewed the changes I made for 64 CPU support and they should only have an effect when
there are more than 64 vcores. It's as simple as if num_cpus > 64 do something different else
do as usual.

I can find no reason why it behaves differently or why it maxes at 32.

Test both versions with -D, the debug output may provide a clue.

Edit: Also is there anything unusual about that system? Any virtualization or NUMA?
newbie
Activity: 23
Merit: 0
I've tried running cpuminer-opt 3.7.6 with lyra2z on a 48 CPU system - unfortunately, only 32 CPUs are used.

The program says "48 miner threads started, using 'lyra2z' algorithm", with or without -t 48 option.

cpuminer-opt 3.7.3 behaves correctly and runs on all 48 cores.

Can you clarify? Does it start 48 threads and run 2 on some cores? Posting the program output would help.
What kind of CPU architecture do you have, multisocket?

Edit: also what OS and please post command line. I always need this, I shouldn't have to ask.

Ubuntu 16.04.

When I start cpuminer-opt 3.7.6 on a 48 CPU system, in top/htop I can see only 32 CPUs are used (unexpected).
When I start cpuminer-opt 3.7.3 on a 48 CPU system, in top/htop I can see 48 CPUs are used (expected).

Didn't try other versions.


Command line:

Code:
# ./cpuminer -c config.conf -q
         **********  cpuminer-opt 3.7.6  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AES_NI and AVX2 and SHA extensions.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT

CPU: AMD EPYC 7401P 24-Core Processor               .
SW built on Dec 15 2017 with GCC 5.4.0.
CPU features: SSE2 AES AVX AVX2 SHA.
SW features: SSE2 AES AVX AVX2 SHA.
Algo features: AVX AVX2.
Start mining with AVX2.

[2017-12-15 22:06:13] Starting Stratum on stratum+tcp://address:port
[2017-12-15 22:06:13] 48 miner threads started, using 'lyra2z' algorithm.
[2017-12-15 22:06:13] Stratum difficulty set to 10


config.conf:

Code:
{

    "url" : "some-url:port",
    "user" : "some.01234.worker",
    "pass" : "pass",

    "algo" : "lyra2z",
    "api-bind" : 0
}

CPU: AMD Epyc (single CPU): http://www.amd.com/en/products/cpu/amd-epyc-7401p

Code:
# grep -c processor /proc/cpuinfo
48

Code:
processor       : 47
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 1
model name      : AMD EPYC 7401P 24-Core Processor
stepping        : 2
microcode       : 0x8001207
cpu MHz         : 2000.000
cache size      : 512 KB
physical id     : 0
siblings        : 48
core id         : 0
cpu cores       : 24
apicid          : 61
initial apicid  : 61
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx cpb hw_pstate vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic overflow_recov succor smca
bugs            : fxsave_leak sysret_ss_attrs null_seg
bogomips        : 3992.21
TLB size        : 2560 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
full member
Activity: 200
Merit: 100

Does this also apply forgotten NVIDIA tesla architecture?

I would like to at least make the attempt,but I'm a newbie to what programming language refers,there are also no guides on how to work from 0 or how to start

my question although a bit vague, it is possible to work old and new some algorithms such as "cryptonight" ,has some impediment to what it refers to level of instructions or obstacle? (I know that this is not the indicated site I only ask for opinions regarding this)

Any opinion is appreciated  Smiley

You're asking in the wrong place. This is for CPU mining, don't expect any GPU advice here.

i agree, as I said just comment to see if I could run into any valuable information
legendary
Activity: 1470
Merit: 1114

Does this also apply forgotten NVIDIA tesla architecture?

I would like to at least make the attempt,but I'm a newbie to what programming language refers,there are also no guides on how to work from 0 or how to start

my question although a bit vague, it is possible to work old and new some algorithms such as "cryptonight" ,has some impediment to what it refers to level of instructions or obstacle? (I know that this is not the indicated site I only ask for opinions regarding this)

Any opinion is appreciated  Smiley

You're asking in the wrong place. This is for CPU mining, don't expect any GPU advice here.
legendary
Activity: 1470
Merit: 1114
I've tried running cpuminer-opt 3.7.6 with lyra2z on a 48 CPU system - unfortunately, only 32 CPUs are used.

The program says "48 miner threads started, using 'lyra2z' algorithm", with or without -t 48 option.

cpuminer-opt 3.7.3 behaves correctly and runs on all 48 cores.

Can you clarify? Does it start 48 threads and run 2 on some cores? Posting the program output would help.
What kind of CPU architecture do you have, multisocket?

Edit: also what OS and please post command line. I always need this, I shouldn't have to ask.
newbie
Activity: 23
Merit: 0
I've tried running cpuminer-opt 3.7.6 with lyra2z on a 48 CPU system - unfortunately, only 32 CPUs are used.

The program says "48 miner threads started, using 'lyra2z' algorithm", with or without -t 48 option.

cpuminer-opt 3.7.3 behaves correctly and runs on all 48 cores.
full member
Activity: 200
Merit: 100
Has anyone tried to compile cpuminer-opt on ARM architecture? I've tried, but it fails miserably...

Optimizations are architecture specific meaning that all optimizations would have to be
rewritten for ARM. That's the nature of specialization. As it stands now cpuminer-opt
already contains 3 or 4 versions of many functions just to suppport the variations within
the x86_64 architecture.

An optimized ARM miner would essentially have to have rewritten all optimizations I imported as well
as the ones I've added over the past 2 years. This would require a very skilled, and highly paid,
ARM developper.

Your best bet for ARM at this time is an unoptimized miner that isn't tied to one specific arcitecture.

Does this also apply forgotten NVIDIA tesla architecture?

I would like to at least make the attempt,but I'm a newbie to what programming language refers,there are also no guides on how to work from 0 or how to start

my question although a bit vague, it is possible to work old and new some algorithms such as "cryptonight" ,has some impediment to what it refers to level of instructions or obstacle? (I know that this is not the indicated site I only ask for opinions regarding this)

Any opinion is appreciated  Smiley
legendary
Activity: 1470
Merit: 1114
Mining with ARM is used mostly by web servers to mine coins using the CPUs of visitors'
phones and tablets, either with or without their knowledge.

Some people collect large numbers of old phones and use them for mining with the batteries removed.

But mining with individual phones or tablets (or any "low power" device with a battery) just isn't feasible.
Performance is crippled and it will shorten the life span of the device due to heat and battery wear, not
to mention the risk of lithium flameout.

There might be a business case for clustering large numbers of ARM CPUs to build a highly efficient
low power compute platform but that efficiency depends on the efficiency of the software.
newbie
Activity: 23
Merit: 0
https://www.scaleway.com/

They have 3 EUR / month ARM servers with 4 CPU cores.

So I was wondering how good or bad they perform.
legendary
Activity: 1470
Merit: 1114
Has anyone tried to compile cpuminer-opt on ARM architecture? I've tried, but it fails miserably...

Optimizations are architecture specific meaning that all optimizations would have to be
rewritten for ARM. That's the nature of specialization. As it stands now cpuminer-opt
already contains 3 or 4 versions of many functions just to suppport the variations within
the x86_64 architecture.

An optimized ARM miner would essentially have to have rewritten all optimizations I imported as well
as the ones I've added over the past 2 years. This would require a very skilled, and highly paid,
ARM developper.

Your best bet for ARM at this time is an unoptimized miner that isn't tied to one specific arcitecture.
Pages:
Jump to: