Docker xmrig cryptonight universal

Patrick

Administrator
Staff member
Dec 21, 2010
12,004
4,990
113
Just playing around with this one a bit.

Important Update: 2018-03-25 - Updated to xmrig 2.5.1 for hardfork(s)
Update 2018-03-31 - Updated to xmrig 2.5.2 for xmrig bug fix
Update 2018-10-19 - Updated to xmrig 2.8.3 for new hardfork

Code:
servethehome/universal_cryptonight:latest
Now based on an early Ubuntu 18.04 and xmrig 2.8.3

Aeon Example
Code:
docker run -it -e username=<wallet> -e numthreads=14 --cpuset-cpus="12-23,24,30" -e aeon=true -e av=2 servethehome/universal_cryptonight:latest
or another Aeon pool:
Code:
docker run -it -e username=<wallet> -e pool=<pooladdress> -e startport=<port> -e numthreads=14 --cpuset-cpus="12-23,24,30" -e aeon=true -e av=2 servethehome/universal_cryptonight:latest
Cryptonight Example
Code:
docker run -it -e username=<wallet> -e pool=<pooladdress> -e startport=<port> -e numthreads=14 --cpuset-cpus="12-23,24,30" servethehome/universal_cryptonight:latest
The default for cryptonight is Monero @ dwarfpool.

If you want to add a worker ID after the wallet (format for a normal is -u <wallet>.<workerid>) then use
Code:
-e workerid=worker1
Still more stuff to add, but that now is a single docker image for aeon av2, av1 (that defaults to the STH pool so no need for priv) and for cryptonight coins.

More work tomorrow on this but worth a test.
 
Last edited:

MiniKnight

Well-Known Member
Mar 30, 2012
3,000
909
113
NYC
This is nice but you need a wrapper script for it because there's so many variables now.

When is this going to be done as "test" and moved to normal?
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,004
4,990
113
Yea it is about the same as the old ones now even with Spectre and Meltdown patches applied. Tried ETN, Sumo, Turtle, Intense, Monero, and Aeon with it.

I like the defaults since that allows you to simply have a wallet address and start mining.

Tagged this :latest as well.
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,004
4,990
113
Looks like Aeon on EPYC is a bit faster on this too. The av2 on EPYC 7451 was 1465H/s per NUMA node with the old aeon private image. The new universal one (defaults the pool/ port still) is giving just over 1500H/s per NUMA node. That is the net difference between 12000H/s and 11720H/s or about a 2.3% improvement.
 

Joel

Active Member
Jan 30, 2015
811
162
43
39
Liking this. A lot. Now we don't need to download different images to switch pools.

Is there a way to configure low power (4mb cache) threads on cryptonight coins?
 

MiniKnight

Well-Known Member
Mar 30, 2012
3,000
909
113
NYC
I made this to script startup easily based on your earlier script:
Code:
#!/bin/bash
#for Debian based
sudo sysctl vm.nr_hugepages=128

wallet=<walletid>
numthr=8
pool=<poolid>
port=3333
pass=x
image=servethehome/universal_cryptonight:latest
docker run -itd -e pool=$pool -e startport=$port -e username=$wallet -e pass=$pass -e numthreads=$numthr --cpuset-cpus="0-7" $image
docker run -itd -e pool=$pool -e startport=$port -e username=$wallet -e pass=$pass -e numthreads=$numthr --cpuset-cpus="8-15" $image
If you've got more CPUs you can add those docker run lines as needed only changing the cpuset-cpus.

You can add the -e aeon=true and -e av=1 to the lines for Aeon pools using this image.
 

AlexG

New Member
Sep 21, 2015
6
1
3
38
Question.. I just got a 7351P, do I need to have at least 4 modules of RAM installed in order to mine with the 4 numa of the cpu?
Currently I get ~340H/s on a single numa, but if try to add more the H/s drop.


Code:
root@ubuntu:~# numactl --hardware
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 16 17 18 19
node 0 size: 0 MB
node 0 free: 0 MB
node 1 cpus: 4 5 6 7 20 21 22 23
node 1 size: 15991 MB
node 1 free: 14038 MB
node 2 cpus: 8 9 10 11 24 25 26 27
node 2 size: 0 MB
node 2 free: 0 MB
node 3 cpus: 12 13 14 15 28 29 30 31
node 3 size: 0 MB
node 3 free: 0 MB
node distances:
node   0   1   2   3
  0:  10  16  16  16
  1:  16  10  16  16
  2:  16  16  10  16
  3:  16  16  16  10
Code:
root@ubuntu:~# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              32
On-line CPU(s) list: 0-31
Thread(s) per core:  2
Core(s) per socket:  16
Socket(s):           1
NUMA node(s):        4
Vendor ID:           AuthenticAMD
CPU family:          23
Model:               1
Model name:          AMD EPYC 7351P 16-Core Processor
Stepping:            2
CPU MHz:             2400.000
CPU max MHz:         2400.0000
CPU min MHz:         1200.0000
BogoMIPS:            4799.65
Virtualization:      AMD-V
L1d cache:           32K
L1i cache:           64K
L2 cache:            512K
L3 cache:            8192K
NUMA node0 CPU(s):   0-3,16-19
NUMA node1 CPU(s):   4-7,20-23
NUMA node2 CPU(s):   8-11,24-27
NUMA node3 CPU(s):   12-15,28-31
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 cpuid 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 v_vmsave_vmload overflow_recov succor smca
And heres an example with 2 NUMAs and its output
Code:
docker run -itd -e pool=$pool -e startport=$port -e username=$wallet -e pass=$pass -e numthreads=$numthr --cpuset-cpus="0-3,16-19" $image
docker run -itd -e pool=$pool -e startport=$port -e username=$wallet -e pass=$pass -e numthreads=$numthr --cpuset-cpus="4-7,20-23" $image

root@ubuntu:~# ./etdocker.sh speed
gallant_shirley :
 [2018-03-17 05:12:49] speed 2.5s/60s/15m 124.8 124.7 n/a H/s max: 125.9 H/s
jolly_payne :
 [2018-03-17 05:12:41] speed 2.5s/60s/15m 24.6 65.4 n/a H/s max: 340.0 H/s
 

AlexG

New Member
Sep 21, 2015
6
1
3
38
Do you think it would be possible for you to run a benchmark with just 1 ram module installed just to see if you get the same results as me ??
And how do I know how the relationship between NUMA nodes - ram sticks ?? I got a Supermicro H11SSL-i motherboard for the 7351p processor which has up to 8 ram slots
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,004
4,990
113
Do you think it would be possible for you to run a benchmark with just 1 ram module installed just to see if you get the same results as me ??
And how do I know how the relationship between NUMA nodes - ram sticks ?? I got a Supermicro H11SSL-i motherboard for the 7351p processor which has up to 8 ram slots
I would love to but the servers are all in the data center now.

2 channels per NUMA node so I would guess if there are 8 DIMMs you can populate every other slot. The manual should have this information
 

Klee

Well-Known Member
Jun 2, 2016
1,285
393
83
Need to update xmrig to the latest version, 2.5.0, for the upcoming Monero fork/network update or what ever they are calling it.

I updated all but one computer and am currently mining Monero with the new version.

Hopefully the network difficulty and hashrate will drop nicely after the fork and the asics will be useless mining Monero for a while.
 

leerees

Member
Feb 15, 2018
51
2
8
40
Is this going to be updated to the latest xmrig for the Monero fork?
Is the donation level set to 0?
 

Patrick

Administrator
Staff member
Dec 21, 2010
12,004
4,990
113
An important update, this has been updated for the Monero hardfork using xmrig 2.5.1
 
  • Like
Reactions: Joel