madscientist159 / xmrig

Monero (XMR) CPU miner
GNU General Public License v3.0
4 stars 2 forks source link

XMRig

:warning: Monero will change PoW algorithm on October 18, all miners and proxy should be updated to v2.8+ :warning:

Github All Releases GitHub release GitHub Release Date GitHub license GitHub stars GitHub forks

XMRig is a high performance Monero (XMR) CPU miner, with official support for Windows. Originally based on cpuminer-multi with heavy optimizations/rewrites and removing a lot of legacy code, since version 1.0.0 completely rewritten from scratch on C++.

Table of contents

Features

Download

Usage

Use config.xmrig.com to generate, edit or share configurations.

Options

  -a, --algo=ALGO          specify the algorithm to use
                             cryptonight
                             cryptonight-lite
                             cryptonight-heavy
  -o, --url=URL            URL of mining server
  -O, --userpass=U:P       username:password pair for mining server
  -u, --user=USERNAME      username for mining server
  -p, --pass=PASSWORD      password for mining server
      --rig-id=ID          rig identifier for pool-side statistics (needs pool support)
  -t, --threads=N          number of miner threads
  -v, --av=N               algorithm variation, 0 auto select
  -k, --keepalive          send keepalived packet for prevent timeout (needs pool support)
      --nicehash           enable nicehash.com support
      --tls                enable SSL/TLS support (needs pool support)
      --tls-fingerprint=F  pool TLS certificate fingerprint, if set enable strict certificate pinning
  -r, --retries=N          number of times to retry before switch to backup server (default: 5)
  -R, --retry-pause=N      time to pause between retries (default: 5)
      --cpu-affinity       set process affinity to CPU core(s), mask 0x3 for cores 0 and 1
      --cpu-priority       set process priority (0 idle, 2 normal to 5 highest)
      --no-huge-pages      disable huge pages support
      --no-color           disable colored output
      --variant            algorithm PoW variant
      --donate-level=N     donate level, default 5% (5 minutes in 100 minutes)
      --user-agent         set custom user-agent string for pool
  -B, --background         run the miner in the background
  -c, --config=FILE        load a JSON-format configuration file
  -l, --log-file=FILE      log all output to a file
  -S, --syslog             use system log for output messages
      --max-cpu-usage=N    maximum CPU usage for automatic threads mode (default 75)
      --safe               safe adjust threads and av settings for current CPU
      --asm=ASM            ASM code for cn/2, possible values: auto, none, intel, ryzen.
      --print-time=N       print hashrate report every N seconds
      --api-port=N         port for the miner API
      --api-access-token=T access token for API
      --api-worker-id=ID   custom worker-id for API
      --api-id=ID          custom instance ID for API
      --api-ipv6           enable IPv6 support for API
      --api-no-restricted  enable full remote access (only if API token set)
      --dry-run            test configuration and exit
  -h, --help               display this help and exit
  -V, --version            output version information and exit

Also you can use configuration via config file, default name config.json. Some options available only via config file: autosave, hw-aes. watch option currently not implemented in miners only in proxy.

Algorithm variations

av Hashes per round Hardware AES
1 1 (Single) yes
2 2 (Double) yes
3 1 (Single) no
4 2 (Double) no
5 3 (Triple) yes
6 4 (Quard) yes
7 5 (Penta) yes
8 3 (Triple) no
9 4 (Quard) no
10 5 (Penta) no

Common Issues

HUGE PAGES unavailable

Other information

CPU mining performance

Please note performance is highly dependent on system load. The numbers above are obtained on an idle system. Tasks heavily using a processor cache, such as video playback, can greatly degrade hashrate. Optimal number of threads depends on the size of the L3 cache of a processor, 1 thread requires 2 MB of cache.

POWER performance comparison, CNv7 to CNv8:

POWER performance discussion

CNv8 integrated two uncommonly used instructions (64 bit integer square root, 64 bit integer divide) that leverage unique hardware in specific x86 CPUs. POWER deemphasised those two rarely used integer square root / integer divide instructions that are key for CNv8 performance, focusing more on improving performance for other areas of the core design. Unfortunately a more balanced CNv8 algorithm, testing other parts of the CPU in addition to these two instructions, would have been a better choice. As it stands Monero requires a specific type of ASIC (Core i / Xeon / Zen CPU) for maximum performance by design. These CPUs are owner-hostile and present serious risks in the form of the ME and PSP vendor DRM systems.

18 core and higher parts only

If it is desired to increase hashrate back to CNv7 levels at the expense of increased electrical power (same as GPU mining), this can be accomplished by editing the WoF tables to maintain boost even at the higher logic utilization CNv8 produces. Note that this is technically a form of overclocking, and as such thermals need to be monitored for CPU, mainboard, and VRMs in addition to watching for system instability.

Maximum performance for POWER9 4 and 8 core CPUs

SMT4, 2 threads per core, power save == 2 (4 threads per chiplet)

Maximum performance for POWER9 CPUs greater than 8 cores

SMT4, 1 thread per core, power save == 2 (2 threads per chiplet)

Maximum performance checklist

Donations

xmrig general

Contacts