Experimental higher-fidelity C31 in 10.5 GB

As @tromp said up above:

This means you need to merge the changes that @tromp made to his memred2 cuckoo repository on GitHub, make sure it compiles properly on your server, update the specific files that were revised, update CMakeLists.txt, and then re-compile (and solve any compilation errors on the way).

Modifying the CMakeLists.txt file is the second-to-last step in the process. If you didn’t do the first few critical steps then it’s better to wait until they’re packaged up.

grin-miner/cuckoo-miner/src/cuckoo_sys/plugins/cuckoo/src/cuckatoo/mean.cu(618): error: no instance of function template "Round2" matches the argument list

argument types are: (int, u32, siphash_keys, u32 *, uint2 *, u32 *, u32 *)

Latest memred2 branch pulled, CMakeList updated to the same as cuckoo’s ^

Is there a quick way to tell whether you did it right? I’m running both versions now on different GPU. The experimental version seems to get a few more solutions, so far 21 vs 28, could still be luck though.

I just ran into the same issue. I think that @tromp’s latest commits broke the compilation process. Perhaps go back a few commits before he went to GrinConUS. From what I’m understanding, the improvements he made weren’t performance related at all, but more around reporting so that the reported gps rates in grin-miner match the gps rates that mining pools are reporting.

Ultimately, I think we’re going to have to wait for him to come back before we see further commits for both C31 and (hopefully) C32.

Ah, glad to hear I’m not alone – I was thinking it was user error on my behalf. Yeah, no harm in waiting, thanks for the reply

Ok, think I have most if not all bugs fixed now.
Please try latest memred2 commit, and let me know if you still see problems, or if it works for you. Even better if you can give fidelity stats…

NOTE: there is now an option to set expand to 3,
which is the default for 30+
This means that when trying the new solver within grin-miner, you need to avoid setting expand=2

3 Likes

How can I best test the fidelity?
Like this:
./cuda31.0 -d 0 -r 1000 | perl …/perl/cycles.pl
and report the outputs?

2080ti:
./cuda31.0 -d 0 -r 1000 | perl …/perl/cycles.pl
42 24 1.008

yes, the larger the range the better.

btw, one can try to further improve fidelity by increasing NEPS_A/B until running out of memory…

Very promising!

Will merge into master tomorrow, and ask Yeastplume to update grin-miner, if no issues come up…

1080ti:
./cuda31.1 -d 1 -r 1000 | perl …/perl/cycles.pl
42 24 1.008

Identical?

yes, of course.
cuda31.0 and cuda31.1 only differ in PART_BITS setting, which has no effect on DRAM use, or on fidelity…
PART_BITS=0 is just a little faster, but requires 64 KB shared memory, only available on RTX…

Having a brain freeze - can someone please tell me the command to update the submodule in grin-miner to use the memred2 branch.

Maybe just copy the memred2 version of cuckatoo/mean.cu over,
and update the compilation in CMakeLists.txt …

That seemed to work but seem to be getting a number of invalid shares on grinmint: ‘ERRO Failed to submit a solution: RpcError { code: -32502, message: “Failed to validate solution” }’. Poolside hash rate seems to be the same as before.

This will be great for 1080tis that use xorg for OC. Appreciate the efforts on this & looking forward to release.

Curious how one would decrease mem reqs further like minerbabe did with C31 on 8g. Is it lowering NRB1 with poorer fidelity? Adjusting expand for less mem & slower solve time?

With a rtx2080ti I also got 42 24 1.008
before I had about 1.6 gps, now 1.5 but grinmint seems to accept almost all shares reported by the miner

2080 ti here. I seem to be getting a lot more rejected shares – about 150 accepted / 75 rejected in the past 8 hours. I’ll rebuild run again and report back.

Update: Getting significantly more rejected shares w/
-DNRB1=26 -DNEPS_A=133 -DNEPS_B=85 -DPART_BITS=0 -DEDGEBITS=31
and latest memred2 branch. I seem to be an outlier here so maybe it’s me.

Update 2: I hadn’t changed expand=3 in grin-miner.toml

Can anyone share the binary please. :frowning:

1080ti:
ran the ./cuda31.1 -d 0 -r 1000 | perl …/perl/cycles.pl from the memred2 branch and added the new mean.cu to the build. Worked so far with a 2% improvement
Here is the output of the terminal:
2 499 0.998
4 229 0.916
6 161 0.966
8 131 1.048
10 99 0.99
12 101 1.212
14 78 1.092
16 57 0.912
18 55 0.99
20 54 1.08
22 43 0.946
24 32 0.768
26 38 0.988
28 43 1.204
30 35 1.05
32 24 0.768
34 35 1.19
36 26 0.936
38 19 0.722
40 17 0.68
42 24 1.008
1000 nonces 7 cycles at nonce 276

Assuming this confirms your information