8

I decided today to give Monero mining a try.

First I tried mining with my CPU using wolf9466/cpuminer-multi and I get about 120H/s which I think is fair for three threads on my AMD CPU.

Then I tried the tsiv/ccminer-cryptonight fork on a spare NVidia GeForce 210 that I have on my system. I get over 1MH/s. I wish it was true but probably something's wrong :-)

    *** ccminer-cryptonight for nVidia GPUs by tsiv ***
 based on ccMiner by Christian Buchner and Christian H.
 based on cpuminer-multi by LucasJones
 based on pooler-cpuminer 2.3.2 (c) 2010 Jeff Garzik, 2012 pooler
    BTC donation address: 1JHDKp59t1RhHFXsTw2UQpR3F9BBz3R3cs
    DRK donation address: XrHp267JNTVdw5P3dsBpqYfgTpWnzoESPQ
    JPC donation address: Jb9hFeBgakCXvM5u27rTZoYR9j13JGmuc2
    VTC donation address: VwYsZFPb6KMeWuP4voiS9H1kqxcU9kGbsw
    XMR donation address: 
      (man these are long... single address, split on two lines)
      42uasNqYPnSaG3TwRtTeVbQ4aRY3n9jY6VXX3mfgerWt4ohD
      QLVaBPv3cYGKDXasTUVuLvhxetcuS16ynt85czQ48mbSrWX
-----------------------------------------------------------------
[2016-09-01 15:55:51] Using JSON-RPC 2.0
[2016-09-01 15:55:51] 1 miner threads started, using 'cryptonight' algorithm.
[2016-09-01 15:55:51] GPU #1: GeForce 210 (2 SMX), using 40 blocks of 8 threads
[2016-09-01 15:55:51] Starting Stratum on stratum+tcp://mine.moneropool.com:3333
[2016-09-01 15:55:51] GPU #1: GeForce 210, 18022.83 H/s
[2016-09-01 15:55:51] Pool set diff to 25000.1
[2016-09-01 15:55:51] Stratum detected new block
[2016-09-01 15:55:51] GPU #1: GeForce 210, 1960060.61 H/s
[2016-09-01 15:57:16] GPU #1: GeForce 210, 1387388.35 H/s
[2016-09-01 15:57:52] Stratum connection timed out
[2016-09-01 15:57:52] Stratum connection interrupted
[2016-09-01 15:57:52] GPU #1: GeForce 210, 1432825.48 H/s
[2016-09-01 15:57:52] Stratum detected new block
[2016-09-01 15:57:52] GPU #1: GeForce 210, 1765852.05 H/s
[2016-09-01 15:59:15] GPU #1: GeForce 210, 1278530.96 H/s
[2016-09-01 15:59:52] Stratum connection timed out
[2016-09-01 15:59:52] Stratum connection interrupted
[2016-09-01 15:59:52] GPU #1: GeForce 210, 1476921.50 H/s
[2016-09-01 15:59:52] Stratum detected new block
[2016-09-01 15:59:52] GPU #1: GeForce 210, 1939087.32 H/s
[2016-09-01 16:01:24] GPU #1: GeForce 210, 1267259.57 H/s

Has anyone else encountered this? How can I measure my actual hashrate? I've been waiting for a good 15 minutes now and the pool doesn't report any mining on my public address.

Should I install some other version of CUDA drivers? I have 6.5 installed. This is what deviceQuery looks like for my card:

Device 1: "GeForce 210"
  CUDA Driver Version / Runtime Version          6.5 / 6.5
  CUDA Capability Major/Minor version number:    1.2
  Total amount of global memory:                 1024 MBytes (1073479680 bytes)
  ( 2) Multiprocessors, (  8) CUDA Cores/MP:     16 CUDA Cores
  GPU Clock rate:                                1402 MHz (1.40 GHz)
  Memory Clock rate:                             500 Mhz
  Memory Bus Width:                              64-bit
  Maximum Texture Dimension Size (x,y,z)         1D=(8192), 2D=(65536, 32768), 3D=(2048, 2048, 2048)
  Maximum Layered 1D Texture Size, (num) layers  1D=(8192), 512 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(8192, 8192), 512 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       16384 bytes
  Total number of registers available per block: 16384
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  1024
  Maximum number of threads per block:           512
  Max dimension size of a thread block (x,y,z): (512, 512, 64)
  Max dimension size of a grid size    (x,y,z): (65535, 65535, 1)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             256 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     No
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      No
  Device PCI Bus ID / PCI location ID:           5 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 2, Device0 = GeForce 210, Device1 = GeForce 210
Result = PASS

Thanks

EDIT: OK I found out why there's no activity on my address. From the pool:

You won't see any balance in your account until a block has been found by the pool and after it has reached a mature status, which occurs about 2 hours after it is found. MoneroHash is a small pool for the time being, and as such it may take some time to find a block.

So my question is now only why the high hashrate...

5
  • 2
    Something is definitely wrong. I believe your card maybe too old to be supported. I know the Maxwell architecture is supported, but not sure about anything before that.
    – jwinterm
    Sep 1, 2016 at 14:33
  • Thanks. What you say sounds very likely. I will let it run for several hours and then report back here on whether there was any activity showing at the pool.
    – alexg
    Sep 1, 2016 at 14:38
  • 1
    With a 750ti you get about 200-250 h/s, so it's probably not worth continuing for several hours. It's saying you could almost 51% attack the network with a single old nvidia gpu :D
    – jwinterm
    Sep 1, 2016 at 15:36
  • I didn't think for a second that the hashrate readout was correct. I just wanted to see if maybe work was being done, while there was something wrong with the hashrate calculation.
    – alexg
    Sep 1, 2016 at 15:40
  • What hashrarate does your pool report?
    – Psddp
    Jan 23, 2019 at 18:03

4 Answers 4

13

It looks like your hash-rate is calculated in the following code:

hashes_done = 0;
gettimeofday(&tv_start, NULL);

/* scan nonces for a proof-of-work hash */
rc = scanhash_cryptonight(thr_id, work.data, work.target, max_nonce, &hashes_done);

/* record scanhash elapsed time */
gettimeofday(&tv_end, NULL);

timeval_subtract(&diff, &tv_end, &tv_start);

if (diff.tv_usec || diff.tv_sec) {
    pthread_mutex_lock(&stats_lock);
    thr_hashrates[thr_id] =
        hashes_done / (diff.tv_sec + 1e-6 * diff.tv_usec);
    pthread_mutex_unlock(&stats_lock);
}

The scanhash_cryptonight function calculates the hashes_done variable as:

*hashes_done = foundNonce - first_nonce + 1;

Purely speculating on my part as I'm not smart enough to understand everything in there, but my guess is that some incompatibility is causing the foundNonce assignment code to constantly return 0xffffffff, which skips the actual hashing, but still ups the nonce. You eventually exit the loop because you fail the nonce < max_nonce test, so now you have a large hashes_done number, and very little time passed because you didn't actually do any hashing, and you see the large hash rate?

 cryptonight_extra_cpu_final(thr_id, throughput, nonce, &foundNonce, d_ctx[thr_id]);

    if (foundNonce < 0xffffffff)
    {
        // hashing happens in here
    }

    nonce += throughput;
2
  • 1
    Thanks for digging into the code. You're right. It seems the calculation somehow fails silently. I must be the only person on the planet silly enough to even attempt to mine with this card.
    – alexg
    Sep 1, 2016 at 16:24
  • 5
    "The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man."
    – revler1082
    Sep 1, 2016 at 16:27
3

The issue is your connection to the pool timed out, it's hashing against a blank ram entry and thus the hash rate is,insane. Look at the connection timed out line, check your pool address:port then try again.

2

The insanely high hashrates are usually caused by using the wrong driver. tsivs version of this, in particular, is very old and works best with the drivers that existed back when tsiv wrong the software for monero.

There are newer forks of tsivs code available, and they address some of these issues.

Ah, I see the problem. You are using a GeForce 210. I doubt it has the proper compute abilities (CUDA versions etc) that are required for tsivs software. I think the minimum for tsivs software is 5.0 . It says on the github.

1

You can go as low as compute 2.0 cards with xmr-stak x64 2.2.0. I had done so with some old Tesla m2050 and m2070 cards. I haven't tried it with a compute 1.3 or 1.1 card yet. I have one laying around and will report back. Yes, cpuminer opti by wolf is very good. Several forum postings like this exist where the old cards are being revisited with new mining software. The 210 card can run old skool cudaminer for scrypt/ltc. But the return is so low since that algo is full of ASIC miners, extreme large hash rate pools. https://bitcointalk.org/index.php?topic=1806520.20

Best regards,

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.