Getting lukMiner

*** Update **** : As kind of a new year's resolution I finally decided to start a 'real" blog on mining with lukMiner: http://lukminer.org . Will still use these pages here (at least for a while) to host the actual binaries, performance numbers, etc, but will eventually transition to this new page. Also, all new updates and news will be updated on the new  http://lukminer.org page ...

Also: To get updates on latest versions and updates: follow
the lukMiner Twitter feed @lukMiner, https://twitter.com/lukMining

Linux, latest version - for CPUs, 1st- and 2nd-generation Phis, and OpenCL-capable GPUs

Linux binary currently built on CentOS 6.4, should also work on any CentOS or Ubuntu flavor newer than that, including (this is tested) AWS and GCE instances. No external libraries or packages other than glibc should be needed.

Latest Version (v0.9.2, Jan Feb 10, 2018): http://files.lukminer.com/lukMiner-0.9.2.tgz

  • IMPORTANT HOTFIX FOR x100 MPSS USERS: This version fixes a major flaw in the x100 MPSS offload code that led to the miner mining only dev shares when this mode was used. Thanks to the two uses that reported this - I don't know how that could ever have gotten in there, but I verified (and fixed). Anybody that ran this mpss offload code for any serious amount of time, please let me know!

FAQ: Linux, Windows, Offload, and First-Generation Phi Cards

  • Proxy: lukMiner itseld does not include a proxy; however, it is possible to 'make' lukminer use a proxy using the 'proxychains' tool (https://github.com/haad/proxychains).
    just build and put that binary in that directory and a config file with the http [proxy address]  [port]
    Then call
    /proxychains4 ./luk-xmr-phi --url ... --port ... --user ...
    Many thanks to Xiaoping for finding that!
  • Windows: I did already port lukMiner to windows (once, long ago...), but currently have my hands handling the demand for the linux version, so releasing a windows version has to remain on the back burner.
  • OpenCL/GPU support: A OpenCL implementation has been experimentally added since v0.6.0. To be completely candid here, there will be faster GPU miners for monero out there (and if you do have a GPU, you might want to mine another coin in the first place, anyway), but at least the code should run out of the box on both NVidia and AMD without having to deal with the "how do I build this thing for my box?" hassle.... and it'll automatically use the CPU threads, too. Also, it's not that slow - I currently get about 600H/s on a GTX 1070.
  • Running LukMiner on First-Generation Xeon Phi Coprocessor Cards (3110, 5110, etc): Yes, this version does contain a native-mode experimental KNC version of my miner. To run this, make sure you have the MPSS stack installed, to have network access configured for your KNC cards, and to know how to run "native mode" binaries right on the coprocessor. Though I will eventually include an MPSS "offload" version, too, the current version will only run in native mode.
  • Running LukMiner on Second-Generation Coprocessor Cards (7220): This is possible; however, lukMiner does not support offload, so the way to run this is ssh into your 7220, copy the binary onto that card (it basically runs a full linux node), then run the binary on this card as if it was a linux node.

Windows

A windows-version already existed in the past, but I'm not currently sharing it ... I have my hands full with the Linux version right now.

Revision History

  • v0.9.0: (download here)
    • For Phi x100 devices: Added support for automatic offloading via MPSS - use the luk-xmr-mpss binary for this.
    • Significant fleshing out of error detection and handling, in particular for nicehash: unlike other pools nicehash seems to drop connections rather often (or simply not serve them any more), and "better" handling of that has required a lot of changes.
    • Changed the way dev shares are being computed. E.g., in the old code, as soon as one KNC was used all shares were "billed" at 4%; in the new code only the shares computed on the KNC will be billed at 4%, those computed on the CPU will take only 1%, even if this is run in the same binary.
  • v0.8.5: (download here)
    • Support for NiceHash mining ("--nicehash" option). Tested and working (until the NiceHash page went down :-/)
    • Colored output to improve readability of reported hashrate etc. Thanks to Klee/ServeTheHome for suggesting this!
    • Added port-forwarding for Xeon Phi x100's native mode mining (to work around some issues with some x100s' driver stack)
    • Added "benchmark mode" ("--bench" option): allows to measure hash rate even on machines that do not have network access. Thanks Dmitri for suggesting this.
    • Instructions for using proxies (see 'https://sites.google.com/site/lukxmrminer/proxies')
  • v0.8.4: (download here)
    • Improved auto-selection of parameters in particular for Aeon.
    • Yet more twiddline with optimal thread affinity, in particular for multi-socket systems.
    • Testing on many more platforms now.
  • v0.8.3: (download here)
    • Performance fix for certain multi-socket systems that used sub-optimal affinity. Fixed.
    • Bugfix: Older versions used AES instructions to verify developer share addresses, even on older CPUs that do not have AES, thus causing core dumps on such systems. Fixed.
      Special thanks to Eugene for helping me find this one
  • v0.8.0: (download here)
    • Reduced dev fee to 1% (for regular CPU) to 4% (for knc and knl miner)
    • Bugfix: 0.7 introduced an affinity-related bug that wrongly affinitized some threads on dual-socket Xeon system. This is now fixed, bumping my dual-Xeon from 1600H/s back to 1800H/s.
    • Bugfix: Fixed bug where phi versions of miner erroneously thought the devshares had been tampered with.
  • v0.7.3: https://drive.google.com/open?id=0BwReeO89ezy1aFNXeHVMNWlVbUk
    • Improved code for detecting hardware capabilities
    • Experimental support for Xeon Phi x100 (Knights Corner/KNC) native-mode miner (offload via MPSS planned for future version)
  • v0.7.0: https://drive.google.com/open?id=0BwReeO89ezy1b2VWYldpN0FiZzA
    • Changed naming scheme of binaries, where every binary now uses the same naming scheme of "luk-<coinname>-<minertype>", where minertype is "ocl" for opencl, "phi" for x200 Xeon Phis, "cpu" for regular CPUs, and "knc"/"win" will soon refer to x100 Xeon Phis resp Windows binaries. E.g., "lukMinerPhi_Aeon" is now "luk-aeon-phi".
    • Switched default accounts and developer share account to dwarfpool (for monero) and aeon-pool (for aeon). Also added some sanity check that prints a warning if the chosen pool does not have "aeon" resp "xmr" in the pool URL.
    • CPUs that report less than 2MB per socket (as is the case for some AMD CPUs, as well as under Win10 bash shell) now default to using all threads.
  • v0.6.1: https://drive.google.com/open?id=0BwReeO89ezy1WENSUjdlQy14ams
    • Bugfix - miner now works also on older CPUs that do not support SSE4.
  • v0.6.0: https://drive.google.com/open?id=0BwReeO89ezy1a0U1bFpYcUVYWTA
    • Now with experimental OpenCL support
  • v0.5.4: https://drive.google.com/open?id=0BwReeO89ezy1RFpSVXVqUE8zQWs
    • Added "watchdog" functionality that exits the miner if nothing gets found within 2 minutes (this typically indicates a pool that doesn't reply)
    • Some smaller bug-fixes
    • Experimental support for the Aeon coin: 5.4kH/s on my 7210.
  • v0.5.3: https://drive.google.com/open?id=0BwReeO89ezy1Yzh5NndtRzRvWkE
    • Removed dependence on hwloc library. Also fixes some (apparent) issues of running the glibc-2.12 binary on newer systems (this should now work again)
  • v0.5.2: https://drive.google.com/open?id=0BwReeO89ezy1dzBCZnNnNlJueE0
    • Better affinity via hwloc queries - requires additional dependence on hwloc library, but better performance
    • Improved performance: 2750H/s on a Phi 7210, 1800 H/s on a Dual Xeon E5-2699v3 (Haswell)
    • Lower dependency on libc - now requires only libc 2.12, and should also work on older centos 6 systems
  • v0.5.0: https://drive.google.com/open?id=0BwReeO89ezy1TmhCYTBqTFI0UFE
    • Completely rewritten stratum code for stability (all shares submitted from single thread). 
    • Rewritten status outputs; now printing both per-thread hash rate (upon finding a share) and total hash rate (upon accepted share, and every few seconds)
    • Improved performance in particular for Skylake architecture and multi-socket machines
    • Known issues: binary still depends on glibc 2.14 (CentOS 7+, Ubuntu 16.04+, AMI)
  • v0.4.0
    • Switched to static linking






Questions/comments/feedback: email me at lukas.l.alexander@gmail.com