Author

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

legendary
Activity: 2408
Merit: 1102
Leading Crypto Sports Betting & Casino Platform
ok this makes no sense :
intel G1820 using cpuminer-core2 is getting 569h or 10h/s
the G3250s using cpuminer-core2 are also getting ss high as  500 h or 9.8 h/s
and a brand new skylarke I-7 600k using cpuminer-core-avx2   is getting a max of 580 hs or 9.9 h/s cores hash faster but max out at aroun 90h
a core i3 4170 using cpuminer-core-avx2 gets only 450 h or 8.9 hs/s  - slower hash but each core does 120 h

any ideas as to why the i3 and the skylarke under perform so much on lyra2z
legendary
Activity: 1470
Merit: 1114
cant build on Centos 7 6x

Code:
In file included from algo/hodl/hodl-gate.h:1:0,
                 from algo/hodl/hodl.cpp:2:
./algo-gate-api.h:126:49: error: using typedef-name ‘json_t’ after ‘struct’
 bool ( *work_decode )            ( const struct json_t*, struct work* );
                                                 ^
In file included from ./miner.h:38:0,
                 from algo/hodl/hodl.cpp:1:
/usr/include/jansson.h:53:3: note: ‘json_t’ has a previous declaration here
 } json_t;
   ^
In file included from algo/hodl/hodl.cpp:1:0:
./miner.h:526:20: warning: ‘algo_names’ defined but not used [-Wunused-variable]
 static const char *algo_names[] = {
                    ^
make[2]: *** [algo/hodl/cpuminer-hodl.o] Error 1
make[2]: Leaving directory `/home/stas/cpuminer-opt'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/stas/cpuminer-opt'
make: *** [all] Error 2


installed
sudo yum groupinstall 'Development Tools'

sudo yum install tmux gmp-devel jansson-devel openssl-devel boost-devel git automake gcc make curl-devel

I think there were errors before this, I need to see the first ones. Also please provide some of the more mundane
info like the version, where you downloaded from and the build commands you used.

Edit: Try uninstalling jansson-devel. It looks like there is a bug in configure that can't handle when jansson is installed
on the system.
member
Activity: 63
Merit: 10
cant build on Centos 7 6x

Code:
In file included from algo/hodl/hodl-gate.h:1:0,
                 from algo/hodl/hodl.cpp:2:
./algo-gate-api.h:126:49: error: using typedef-name ‘json_t’ after ‘struct’
 bool ( *work_decode )            ( const struct json_t*, struct work* );
                                                 ^
In file included from ./miner.h:38:0,
                 from algo/hodl/hodl.cpp:1:
/usr/include/jansson.h:53:3: note: ‘json_t’ has a previous declaration here
 } json_t;
   ^
In file included from algo/hodl/hodl.cpp:1:0:
./miner.h:526:20: warning: ‘algo_names’ defined but not used [-Wunused-variable]
 static const char *algo_names[] = {
                    ^
make[2]: *** [algo/hodl/cpuminer-hodl.o] Error 1
make[2]: Leaving directory `/home/stas/cpuminer-opt'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/stas/cpuminer-opt'
make: *** [all] Error 2


installed
sudo yum groupinstall 'Development Tools'

sudo yum install tmux gmp-devel jansson-devel openssl-devel boost-devel git automake gcc make curl-devel
full member
Activity: 239
Merit: 100
hero member
Activity: 700
Merit: 500
My mistake, I was assuming shared memory.

ah yes, with shared memory a second cpu would not speed things up

i suppose shared memory only exists in specific systems nowadays?
legendary
Activity: 1470
Merit: 1114
Given the 12 thread performance was similar to 48 it looks like it was using both CPUs. With only one CPU I would expect the
performance to drop by half.


I take that back. Adding another CPU doesn't increase memory bandwidth. A dual CPU is overkill, an i7 is overkill. The only way
to improve performance is with LGA2011 which has a 4 channel memory controller.

afaik each cpu has its own memory, so using multiple cpu actually should multiply the hashpower by the amount of cpus used. if one cpu wants to access the memory of another cpu it would need to do so via qpi. each memory bus per cpu is unique and shouldnt slow down other cpus, only qpi access slows down significantly.

increasing cpu <-> memory speeds should also increase the hashpower

That wasn't the point. A single CPU has access to 4 memory channels instead of 2 doubling the memory bandwidth, The 2nd CPU
is still overkill.

i dont seem to understand your point


taken a system with multiple (say 2) cpu sockets exists and both cpus are present:

- each cpu has dual or quad memory channel (if its dual or quad doesnt matter in this scenario)
- each cpu gives X H/s, like a normal single cpu system would, just two cpu+ram on one mobo
- each cpu uses their own dual/quad memory channel

using one cpu produces X H/s, using both cpu produces 2x X H/s

taken a system with a single cpu socket exists:

- the cpu has dual memory channels

upgrading the dual channel to quad channel through a mobo/cpu upgrade results in (likely) doubled hashrate


im missing the point where a second cpu doesnt speed up the total hashrate of the system if the second cpu has its own memory channels

or do you imply the one cpu should use the other dual channel memory for the other cpu and thus doubling its memory bandwith? cause that wont work afaik

My mistake, I was assuming shared memory.
hero member
Activity: 700
Merit: 500
Given the 12 thread performance was similar to 48 it looks like it was using both CPUs. With only one CPU I would expect the
performance to drop by half.


I take that back. Adding another CPU doesn't increase memory bandwidth. A dual CPU is overkill, an i7 is overkill. The only way
to improve performance is with LGA2011 which has a 4 channel memory controller.

afaik each cpu has its own memory, so using multiple cpu actually should multiply the hashpower by the amount of cpus used. if one cpu wants to access the memory of another cpu it would need to do so via qpi. each memory bus per cpu is unique and shouldnt slow down other cpus, only qpi access slows down significantly.

increasing cpu <-> memory speeds should also increase the hashpower

That wasn't the point. A single CPU has access to 4 memory channels instead of 2 doubling the memory bandwidth, The 2nd CPU
is still overkill.

i dont seem to understand your point


taken a system with multiple (say 2) cpu sockets exists and both cpus are present:

- each cpu has dual or quad memory channel (if its dual or quad doesnt matter in this scenario)
- each cpu gives X H/s, like a normal single cpu system would, just two cpu+ram on one mobo
- each cpu uses their own dual/quad memory channel

using one cpu produces X H/s, using both cpu produces 2x X H/s

taken a system with a single cpu socket exists:

- the cpu has dual memory channels

upgrading the dual channel to quad channel through a mobo/cpu upgrade results in (likely) doubled hashrate


im missing the point where a second cpu doesnt speed up the total hashrate of the system if the second cpu has its own memory channels

or do you imply the one cpu should use the other dual channel memory for the other cpu and thus doubling its memory bandwith? cause that wont work afaik
legendary
Activity: 1470
Merit: 1114
Given the 12 thread performance was similar to 48 it looks like it was using both CPUs. With only one CPU I would expect the
performance to drop by half.


I take that back. Adding another CPU doesn't increase memory bandwidth. A dual CPU is overkill, an i7 is overkill. The only way
to improve performance is with LGA2011 which has a 4 channel memory controller.

afaik each cpu has its own memory, so using multiple cpu actually should multiply the hashpower by the amount of cpus used. if one cpu wants to access the memory of another cpu it would need to do so via qpi. each memory bus per cpu is unique and shouldnt slow down other cpus, only qpi access slows down significantly.

increasing cpu <-> memory speeds should also increase the hashpower

That wasn't the point. A single CPU has access to 4 memory channels instead of 2 doubling the memory bandwidth, The 2nd CPU
is still overkill.
hero member
Activity: 700
Merit: 500
Given the 12 thread performance was similar to 48 it looks like it was using both CPUs. With only one CPU I would expect the
performance to drop by half.


I take that back. Adding another CPU doesn't increase memory bandwidth. A dual CPU is overkill, an i7 is overkill. The only way
to improve performance is with LGA2011 which has a 4 channel memory controller.

afaik each cpu has its own memory, so using multiple cpu actually should multiply the hashpower by the amount of cpus used. if one cpu wants to access the memory of another cpu it would need to do so via qpi. each memory bus per cpu is unique and shouldnt slow down other cpus, only qpi access slows down significantly.

increasing cpu <-> memory speeds should also increase the hashpower
legendary
Activity: 1470
Merit: 1114
The branding Intel uses for Celeron CPUs is misleading and is causing confusion with some users.
First the model number don't match the generation, ie some G4xxx models are branded as Skylake
but Skylake Pentiums are the 6xxx series.

But more importantly Celerons are cost reduced and stripped of some advanced technology, including AVX
and AVX2. Therefore the AVX and AVX2 builds will not work on Celerons. The Westmere build is likely the
most featured compile that can be used with Celerons.

I will update the readme file included in the binary package of the next release to clarify.

I would also like to remind users to always read the readme file before reporting problems and to provide a
clear problem description and supporting data. I will ignore any reports without data.
legendary
Activity: 1470
Merit: 1114
@felix
you mean your fork or joblo's one?
btw i got 256 gb of ram on that dual xeon server
will follow your advices later...

i only have a copy of the src in my github acc, no modifications made, im talking about joblos cpuminer-opt

the amount of memory is largely irrelevant, its more the speed from cpu to memory that dictates the hashpower

my xeon e3 has 8 cores, though using more than 4 cores does not result in more hashpower

with 2x 24 threads (2 cpu) i assume the optimum thread count per cpu is about 6-10, maybe a bit more or less depending on the power of each individual core

now on linux placing procs on specific cpus is easy, not sure how to do this on windows.

im unsure how cpuminer-opt handles the placement of threads in a multi cpu environment, if you only specify 12 threads (6 per cpu) it might spread them on cpu0 and cpu1, but it might also spread them only on cpu0 which would result in only half the hashpower

Given the 12 thread performance was similar to 48 it looks like it was using both CPUs. With only one CPU I would expect the
performance to drop by half.


I take that back. Adding another CPU doesn't increase memory bandwidth. A dual CPU is overkill, an i7 is overkill. The only way
to improve performance is with LGA2011 which has a 4 channel memory controller.
sr. member
Activity: 462
Merit: 250
Arianee:Smart-link Connecting Owners,Assets,Brands
i've tried zcash mining in windows with mobile ivy bridge cpu.it just stops.i mean windows error.
hero member
Activity: 700
Merit: 500
@felix
you mean your fork or joblo's one?
btw i got 256 gb of ram on that dual xeon server
will follow your advices later...

i only have a copy of the src in my github acc, no modifications made, im talking about joblos cpuminer-opt

the amount of memory is largely irrelevant, its more the speed from cpu to memory that dictates the hashpower

my xeon e3 has 8 cores, though using more than 4 cores does not result in more hashpower

with 2x 24 threads (2 cpu) i assume the optimum thread count per cpu is about 6-10, maybe a bit more or less depending on the power of each individual core

now on linux placing procs on specific cpus is easy, not sure how to do this on windows.

im unsure how cpuminer-opt handles the placement of threads in a multi cpu environment, if you only specify 12 threads (6 per cpu) it might spread them on cpu0 and cpu1, but it might also spread them only on cpu0 which would result in only half the hashpower
member
Activity: 84
Merit: 10
@felix
you mean your fork or joblo's one?
btw i got 256 gb of ram on that dual xeon server
will follow your advices later...
hero member
Activity: 700
Merit: 500
yup those numbers could add up to the actual hashrate, try with very low core nums like 3,4,5 and post the results, this algo is very memory bound, more cpu power doesnt speed things up but can make things worse actually

also if this system is using multiple cpu you will need to spread the few threads on the other processors to achive maximum hashpower (to use multiple memories), i dont know if this is possible with plain threads (procs work fine) other option would be to start multiple cpuminer for each cpu with low thread count
member
Activity: 84
Merit: 10
so this is default (no -t) run of joblo's miner on dual xeon e5-2690v3
48 threads

(pls don't mind *-3.4.5 folder name, it's a clean 3.4.Cool
-t 12

member
Activity: 84
Merit: 10
tried cpuminer-xzc, it shows weird (?) 220-230 kh/s hashrate but a pool shows about 60-70 h/s, 48 threads

are you referring to ocminers cpuminer-xzc or cpuminer-opt by joblo?

please share the parameters used to start the miner for further debug, might just be a wrong algo specified
this one is from https://github.com/ocminer/cpuminer-xzc/releases
command line: cpuminer -a lyra2rev2 -o stratum+tcp://xzc.suprnova.cc:5595 -u ***.*** -p *** -t 48
legendary
Activity: 1470
Merit: 1114
what about renaming the binaries to the corresponding arch?

4.8.x didnt include this (thats why you where not able to compile westmere, or in general other arch's by their name)

gcc 4.8.5, 4.9.4, 5.4.0 and 6.2.0 indicate the following:

core2 == core2
corei7 == nehalem
corei7-avx == sandybridge
core-avx-i == ivybridge
core-avx2 == haswell

missing in 4.8.x:

westmere (4.9.4)
broadwell (4.9.4)
skylake (6.2.0)

i suppose there is no easy way to upgrade gcc in a mingw environment on windows, im using gnustep which is the current version and only ships with gcc 4.8.x sadly

i also attempted cross compiling but ran into issues with linking the libs in the last step, has anybody done that before?

I just defaulted to the gcc arch but I'm flexible. A case could also be made for going strictly by the best feature like is displayed
by the miner.

Using the Intel brand doesn't help with AMD users who are unfamiliar with them. The newer architectures have the best
feature in their name so AMD users can key on that (assuming the issue of compatibility and performance of Intel builds
on AMD CPUs is resolved).

I'm also considering dropping core-avx-i as their is no specifically targetted code for this arch. If there are any performance differences
over corei7-avx it's all from the compiler. I would like to hear if there are users with Ivybridge CPUs that get lower perfomance using
corei7-avx vs core-avx-i.
hero member
Activity: 700
Merit: 500
what about renaming the binaries to the corresponding arch?

4.8.x didnt include this (thats why you where not able to compile westmere, or in general other arch's by their name)

gcc 4.8.5, 4.9.4, 5.4.0 and 6.2.0 indicate the following:

core2 == core2
corei7 == nehalem
corei7-avx == sandybridge
core-avx-i == ivybridge
core-avx2 == haswell

missing in 4.8.x:

westmere (4.9.4)
broadwell (4.9.4)
skylake (6.2.0)

i suppose there is no easy way to upgrade gcc in a mingw environment on windows, im using gnustep which is the current version and only ships with gcc 4.8.x sadly

i also attempted cross compiling but ran into issues with linking the libs in the last step, has anybody done that before?
full member
Activity: 121
Merit: 100
Hi, After several hours mining displays "Unauthorized worker".
After rebooting cpu-miner its all OK. I have AMD FX,  cpuminer-btver1 -a lyra2z -o stratum+tcp://xzc.suprnova.cc:5595 -u user.worker -p pass
Jump to: