xmrig / xmrig-cuda

NVIDIA CUDA plugin for XMRig miner
GNU General Public License v3.0
378 stars 155 forks source link

CUDA only starts single thread? #165

Open grahamreeds opened 2 years ago

grahamreeds commented 2 years ago

Maybe I am reading this wrong but when I start xmrig with just CUDA it only starts a single thread?

D:\github.com\xmrig\build\Release>xmrig
 * ABOUT        XMRig/6.17.0 MSVC/2019
 * LIBS         libuv/1.38.0 OpenSSL/1.1.1g hwloc/2.7.0
 * HUGE PAGES   permission granted
 * 1GB PAGES    unavailable
 * CPU          Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz (1) 64-bit AES VM
                L2:1.0 MB L3:8.0 MB 4C/8T NUMA:1
 * MEMORY       7.1/47.9 GB (15%)
                Top-Slot 1(left): 8 GB DDR4 @ 2133 MHz HMA81GS6CJR8N-VK
                Top-Slot 2(right): 8 GB DDR4 @ 2133 MHz HMA81GS6DJR8N-XN
                Bottom-Slot 1(left): 16 GB DDR4 @ 2133 MHz M474A2K43BB1-CRC
                Bottom-Slot 2(right): 16 GB DDR4 @ 2133 MHz M474A2K43BB1-CRC
 * MOTHERBOARD  HP - HP ZBook 15 G3
 * DONATE       1%
 * ASSEMBLY     auto:intel
 * POOL #1      gulf.moneroocean.stream:10128 algo auto
 * POOL #2      pool.minexmr.com:4444 algo auto
 * COMMANDS     hashrate, pause, resume, results, connection
 * CUDA         11.0/11.6/6.17.0
 * CUDA GPU     #0 01:00.0 Quadro M2000M 1137/2505 MHz smx:5 arch:50 mem:3415/4095 MB
[2022-05-16 15:58:31.578]  net      use pool gulf.moneroocean.stream:10128  199.247.0.216
[2022-05-16 15:58:31.578]  net      new job from gulf.moneroocean.stream:10128 diff 11369 algo rx/0 height 2624793 (10 tx)
[2022-05-16 15:58:31.580]  cpu      use argon2 implementation AVX2
[2022-05-16 15:58:31.582]  randomx  init dataset algo rx/0 (8 threads) seed 4dea06a49b31df67...
[2022-05-16 15:58:31.583]  randomx  allocated 2336 MB (2080+256) huge pages 100% 1168/1168 +JIT (1 ms)
[2022-05-16 15:58:33.271]  net      new job from gulf.moneroocean.stream:10128 diff 11369 algo rx/0 height 2624794 (9 tx)
[2022-05-16 15:58:36.267]  randomx  dataset ready (4683 ms)
[2022-05-16 15:58:36.268]  nvidia   use profile  rx  (1 thread) scratchpad 2048 KB
|  # | GPU |  BUS ID | INTENSITY | THREADS | BLOCKS | BF |  BS | MEMORY | NAME
|  0 |   0 | 01:00.0 |       320 |      32 |     10 |  8 |  25 |    640 | Quadro M2000M
[2022-05-16 15:58:36.459]  nvidia   READY threads 1/1 (186 ms)
[2022-05-16 15:58:49.423]  net      new job from gulf.moneroocean.stream:10128 diff 11369 algo rx/0 height 2624795 (9 tx)
[2022-05-16 15:58:51.572]  miner    speed 10s/60s/15m n/a n/a n/a H/s max n/a H/s
[2022-05-16 15:59:06.886]  miner    speed 10s/60s/15m 86.09 n/a n/a H/s max 86.42 H/s
[2022-05-16 15:59:22.195]  miner    speed 10s/60s/15m 86.22 n/a n/a H/s max 86.44 H/s
[2022-05-16 15:59:37.508]  miner    speed 10s/60s/15m 86.50 n/a n/a H/s max 86.62 H/s
[2022-05-16 15:59:52.824]  miner    speed 10s/60s/15m 86.49 86.39 n/a H/s max 86.80 H/s
[2022-05-16 16:00:08.134]  miner    speed 10s/60s/15m 86.44 86.44 n/a H/s max 86.80 H/s
[2022-05-16 16:00:13.460]  nvidia   accepted (1/0) diff 11369 (63 ms)

Am I reading this wrong?

Spudz76 commented 2 years ago

Yes.

It only needs to start one CPU thread to speak to the GPU, which is running 32 actual threads (line below).

grahamreeds commented 2 years ago

Okay.

I wouldn't of expected CUDA performance to be so poor, even on my laptop. It is running about as fast as a raspberry pi!

Spudz76 commented 2 years ago

RandomX is intentionally nasty for GPUs. You normally would run two copies of xmrig (separate folders) and different configs. One with CPU only, GPUs off; and the other with CPU off and GPU(s) only. Because of how intensely different each sort of algorithm work on different devices. And then if you mine into MoneroOcean pool you can process other coins jobs and still get paid XMR. Even if you only point the GPU there, it will score a lot more using GPU-friendly algorithms. Although the M2000M is really old so probably not much more than the CPU scores at rx/0. But much better than 86H/s effective payout handling probably cn-gpu or something (Maxwell cores weren't great, but I run a bunch of even worse Fermi's).

grahamreeds commented 2 years ago

So what algo to mine? I tried various algos but they all default to rx/0:

[2022-05-19 13:06:34.885]  net      no active pools, stop mining
 * POOL #1      gulf.moneroocean.stream:10128 algo rx/arq
 * POOL #2      pool.minexmr.com:4444 algo auto
[2022-05-19 13:06:34.951]  net      use pool gulf.moneroocean.stream:10128  199.247.0.216
[2022-05-19 13:06:34.952]  net      new job from gulf.moneroocean.stream:10128 diff 128001 algo rx/0 height 2626870 (38 tx)
[2022-05-19 13:06:45.431]  miner    speed 10s/60s/15m 62.81 n/a n/a H/s max 66.36 H/s
[2022-05-19 13:06:50.419]  config   "D:\github.com\xmrig\build\Release\config.json" was changed, reloading configuration
[2022-05-19 13:06:50.420]  net      no active pools, stop mining
 * POOL #1      gulf.moneroocean.stream:10128 algo rx/wow
 * POOL #2      pool.minexmr.com:4444 algo auto
[2022-05-19 13:06:50.484]  net      use pool gulf.moneroocean.stream:10128  199.247.0.216
[2022-05-19 13:06:50.485]  net      new job from gulf.moneroocean.stream:10128 diff 128001 algo rx/0 height 2626870 (38 tx)
[2022-05-19 13:07:00.763]  miner    speed 10s/60s/15m 64.25 n/a n/a H/s max 66.36 H/s
[2022-05-19 13:07:02.536]  config   "D:\github.com\xmrig\build\Release\config.json" was changed, reloading configuration
[2022-05-19 13:07:02.537]  net      no active pools, stop mining
 * POOL #1      gulf.moneroocean.stream:10128 algo cn/0
 * POOL #2      pool.minexmr.com:4444 algo auto
[2022-05-19 13:07:02.605]  net      use pool gulf.moneroocean.stream:10128  199.247.0.216
[2022-05-19 13:07:02.606]  net      new job from gulf.moneroocean.stream:10128 diff 128001 algo rx/0 height 2626870 (38 tx)
Spudz76 commented 2 years ago

MoneroOcean's extra features require their fork of everything. MO-xmrig MO-xmrig-cuda

Then it will benchmark all algorithms at the first run and algo-switch from there on.

grahamreeds commented 2 years ago

I guess it isn't meant to be - the benchmark fails when it gets to kawpow.

I have logged a ticket: https://github.com/MoneroOcean/xmrig-cuda/issues/7