keplerminer icon indicating copy to clipboard operation
keplerminer copied to clipboard

A Kepler-optimized implmentation of scrypt mining

Keplerminer is a Kepler-and-later optimized implementation of scrypt-based coin mining (Litecoin, etc.) for Nvidia GPUs. It requires kepler (compute_30) or later and will not compile for older architectures.

For people looking for a working, easy-to-use miner, these improvements can now be found in CudaMiner.

As a proof of concept, building this code will produce two binaries that can be run:

  • hasher_bench
  • hasher_test

By default, hasher_bench will scan 200,000 keys and show the time and Kh/s rate achieved in doing so.

hasher_test tests that scanning and several of the individual components of the system work properly.

In addition, it will build key_per_thread, which is a naive mining implementation that I wrote for comparison. It is not particularly useful.

This is not a standalone miner: The main result of compiling it is a shared object (.so) file, hasher_c.so, which must then be linked into cpuminer with a modified implementation of cpuminer/scrypt.c. (file "scrypt.c")

Before compiling: Ensure that "nvcc" is in your $PATH.

To compile: make

To add into cpuminer the hard way (don't do this - use CudaMiner instead unless you're doing development):

cp scrypt.c hasher_c.o hasher_c.h hasher.o ../cpuminer/ cd ../cpuminer/ make * look for the error message about not finding scanhash_c * copy/paste that gcc line and add hasher_c.so at the end

My code is covered under the Apache license. This project includes several files from Colin Percival's tarsnap project, which are covered under their own license, which is BSD-like. Please see individual files. If not otherwise specified, Apache.

Btw, if you find yourself doing a ton of mining with this and want to send a thank you, my bitcoin donation address is:

17sb5mcCnnt4xH3eEkVi6kHvhzQRjPRBtS

(cheesy grin).