rieMiner - Solo + pooled Riecoin mining
Re: rieMiner - Solo + pooled Riecoin mining
I've made a pull request with some minor fixes, but none of them explain any asserts or seg faults in the default configuration.
I'll keep running in debug to see if I see anything. I also hope you don't have a hardware issue - are you overclocking at all?
I'll keep running in debug to see if I see anything. I also hope you don't have a hardware issue - are you overclocking at all?
Re: rieMiner - Solo + pooled Riecoin mining
Merged, thank you.
I am underclocking and undervolting, but the system should be fairly solid as I do not have issues with it otherwise, it can run Prime95, run games, there is some margin to the voltage, and I mined for months previously without issue and with the same settings. And if there were any issue, it would completely crash instead of producing Segmentation Faults.
I overclock only for benchmarking (2700X @4 GHz). This value is somewhat convenient because I get about 1 block/day at Difficulty 1600 and Sieve 2^31. Though I wonder if it would be much faster if I used DDR4 3200 instead of 2400. However, I am not buying at these crazy prices... I had to recycle from a previous computer.
I am underclocking and undervolting, but the system should be fairly solid as I do not have issues with it otherwise, it can run Prime95, run games, there is some margin to the voltage, and I mined for months previously without issue and with the same settings. And if there were any issue, it would completely crash instead of producing Segmentation Faults.
I overclock only for benchmarking (2700X @4 GHz). This value is somewhat convenient because I get about 1 block/day at Difficulty 1600 and Sieve 2^31. Though I wonder if it would be much faster if I used DDR4 3200 instead of 2400. However, I am not buying at these crazy prices... I had to recycle from a previous computer.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Re: rieMiner - Solo + pooled Riecoin mining
Code: Select all
admin@DESKTOP-9MIIKSR MINGW64 ~/rieMiner
$ make
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o main.o main.cpp
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o Miner.o Miner.cpp
In file included from WorkManager.hpp:6,
from Miner.hpp:8,
from Miner.cpp:5:
Miner.cpp: In member function 'void Miner::_updateRemainders(uint32_t, uint64_t, uint64_t)':
Miner.cpp:269:70: warning: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
DBG_VERIFY(if (remainder >> cnt != mpz_tdiv_ui(tar, p)) { printf("Remainder check fail %lu != %lu\n", remainder >> cnt, mpz_tdiv_ui(tar, p)); abort();});
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
main.hpp:26:40: note: in definition of macro 'DBG_VERIFY'
#define DBG_VERIFY(x) if (DEBUG > 1) { x; };
^
Miner.cpp:285:39: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
if (index != indexCheck) { printf("Index check fail, p=%ld, i=%ld, start_i=%ld\n", p, i, start_i); abort(); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
main.hpp:26:40: note: in definition of macro 'DBG_VERIFY'
#define DBG_VERIFY(x) if (DEBUG > 1) { x; };
^
Miner.cpp:285:39: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
if (index != indexCheck) { printf("Index check fail, p=%ld, i=%ld, start_i=%ld\n", p, i, start_i); abort(); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
main.hpp:26:40: note: in definition of macro 'DBG_VERIFY'
#define DBG_VERIFY(x) if (DEBUG > 1) { x; };
^
Miner.cpp:285:39: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
if (index != indexCheck) { printf("Index check fail, p=%ld, i=%ld, start_i=%ld\n", p, i, start_i); abort(); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
main.hpp:26:40: note: in definition of macro 'DBG_VERIFY'
#define DBG_VERIFY(x) if (DEBUG > 1) { x; };
^
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o StratumClient.o StratumClient.cpp
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o GBTClient.o GBTClient.cpp
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o Client.o Client.cpp
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o tools.o tools.cpp
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -c -o CpuID.o CpuID.cpp
m4 external/mod_1_4_win.asm >mod_1_4.s
as mod_1_4.s -o mod_1_4.o
rm mod_1_4.s
sed -f external/mod_1_2_avx_win.sed <external/mod_1_2_avx.asm >mod_1_2_avx.asm
m4 mod_1_2_avx.asm >mod_1_2_avx.s
as mod_1_2_avx.s -o mod_1_2_avx.o
rm mod_1_2_avx.s mod_1_2_avx.asm
g++ -Wall -Wextra -std=gnu++11 -O3 -march=native -o rieMiner main.o Miner.o StratumClient.o GBTClient.o Client.o WorkManager.cpp Stats.cpp tools.o CpuID.o mod_1_4.o mod_1_2_avx.o -pthread -ljansson -lcurl -lcrypto -lgmpxx -lgmp -lws2_32
admin@DESKTOP-9MIIKSR MINGW64 ~/rieMiner
Re: rieMiner - Solo + pooled Riecoin mining
These are only warnings... Though it could indeed be nice that you fix them eventually, Rockhawk. You should have used Std::Couts or Cerrs.
Also, I caught something else, a true Segmentation Fault this time:
Code: Select all
[0001:43:13] (1-3t/s) = (290.0 12.61 0.530) ; (2-6t) = (78076 3285 163 7 1) | 6.17 h
Thread 34 "rieMinerNew" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff05ffb700 (LWP 27515)]
0x000055555556762f in Miner::_addToPending (ent=23937269, pos=<synthetic pointer>: 6, pending=0x7fff05ffa170,
sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:122
122 sieve[old >> 3] |= (1 << (old & 7));
(gdb) bt
#0 0x000055555556762f in Miner::_addToPending (ent=23937269, pos=<synthetic pointer>: 6, pending=0x7fff05ffa170,
sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:122
#1 Miner::_addRegToPending (mask=65535, reg=..., pos=<synthetic pointer>: 6, pending=0x7fff05ffa170,
sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:132
#2 Miner::_processSieve6 (this=0x55555561aff0,
sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., offsets=<optimized out>, start_i=<optimized out>, end_i=28192750) at Miner.cpp:428
#3 0x000055555556c20f in Miner::_runSieve(SieveInstance&, unsigned int) () at Miner.cpp:472
#4 0x000055555556cf31 in Miner::_verifyThread() () at Miner.cpp:558
#5 0x000055555556edd8 in Miner::process (this=this@entry=0x55555561aff0, block=...) at Miner.cpp:661
#6 0x00005555555882d1 in WorkManager::minerThread() () at /usr/include/c++/8/bits/char_traits.h:285
#7 0x00007ffff794aaff in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x00007ffff76c5f2a in start_thread (arg=0x7fff05ffb700) at pthread_create.c:463
#9 0x00007ffff75f8edf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) print old
$1 = 23618780
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Re: rieMiner - Solo + pooled Riecoin mining
Weird that I don't see these. I guess you must be compiling 64-bit otherwise it wouldn't work, but then why is unsigned long only 32-bits?
Anyway - these messages weren't originally intended to be compiled in, I'll change them to use std::cerr so the warning goes away.
Hmm, sieve and old both look fine. If you still have it up, doesPttn wrote: ↑04 Dec 2018, 07:10Also, I caught something else, a true Segmentation Fault this time:
Same parameters as before (Sieve 2^33, 4 Sieve Workers, 16 Threads), after the latest merge. I wait for you if you need that I execute some commands in Gdb.Code: Select all
[0001:43:13] (1-3t/s) = (290.0 12.61 0.530) ; (2-6t) = (78076 3285 163 7 1) | 6.17 h Thread 34 "rieMinerNew" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fff05ffb700 (LWP 27515)] 0x000055555556762f in Miner::_addToPending (ent=23937269, pos=<synthetic pointer>: 6, pending=0x7fff05ffa170, sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:122 122 sieve[old >> 3] |= (1 << (old & 7)); (gdb) bt #0 0x000055555556762f in Miner::_addToPending (ent=23937269, pos=<synthetic pointer>: 6, pending=0x7fff05ffa170, sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:122 #1 Miner::_addRegToPending (mask=65535, reg=..., pos=<synthetic pointer>: 6, pending=0x7fff05ffa170, sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., this=0x55555561aff0) at Miner.hpp:132 #2 Miner::_processSieve6 (this=0x55555561aff0, sieve=0x555556222620 "\376\377\377\377\377\375", '\377' <repeats 30 times>, "\376\377\377\377\377\377\377\377\377\377\337", '\377' <repeats 37 times>, "\357", '\377' <repeats 65 times>, "\337\377\377\377\377\377\377\377\377\376\177\377\377\377\377\377\377\377\377\367\377\377\367\377\377\376", '\377' <repeats 24 times>..., offsets=<optimized out>, start_i=<optimized out>, end_i=28192750) at Miner.cpp:428 #3 0x000055555556c20f in Miner::_runSieve(SieveInstance&, unsigned int) () at Miner.cpp:472 #4 0x000055555556cf31 in Miner::_verifyThread() () at Miner.cpp:558 #5 0x000055555556edd8 in Miner::process (this=this@entry=0x55555561aff0, block=...) at Miner.cpp:661 #6 0x00005555555882d1 in WorkManager::minerThread() () at /usr/include/c++/8/bits/char_traits.h:285 #7 0x00007ffff794aaff in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #8 0x00007ffff76c5f2a in start_thread (arg=0x7fff05ffb700) at pthread_create.c:463 #9 0x00007ffff75f8edf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) print old $1 = 23618780
Code: Select all
p sieve[old>>3]
Re: rieMiner - Solo + pooled Riecoin mining
I getRockhawk wrote: ↑04 Dec 2018, 11:11Hmm, sieve and old both look fine. If you still have it up, doesexecute OK? If so, something weird has happened, because it's segfaulted trying to write to that location, which should be addressable.Code: Select all
p sieve[old>>3]
Code: Select all
(gdb) p sieve[old>>3]
$2 = 255 '\377
Tell me if I can start another session.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Re: rieMiner - Solo + pooled Riecoin mining
Yes, that is what you would expect to be there. So the code has segfaulted on the line:Pttn wrote: ↑04 Dec 2018, 11:23I getRockhawk wrote: ↑04 Dec 2018, 11:11Hmm, sieve and old both look fine. If you still have it up, doesexecute OK? If so, something weird has happened, because it's segfaulted trying to write to that location, which should be addressable.Code: Select all
p sieve[old>>3]
Is this intended?Code: Select all
(gdb) p sieve[old>>3] $2 = 255 '\377
Tell me if I can start another session.
Code: Select all
sieve[old >> 3] |= (1 << (old & 7));
Code: Select all
pending[pos]
Unfortunately this is beginning to look like a hardware issue, although I'm always reluctant to say that! I'll keep running in the debugger and let you know if I see anything.
Re: rieMiner - Solo + pooled Riecoin mining
Code: Select all
(gdb) p pending[pos]
$3 = 23618780
In another hand, I already had to debug another Segmentation Fault before, and the given line was not at all the culprit.Rockhawk wrote: ↑04 Dec 2018, 12:15Yes, that is what you would expect to be there. So the code has segfaulted on the line:Code: Select all
sieve[old >> 3] |= (1 << (old & 7));
It was something like Gbd giving me a line where I assigned to a Std::String a value (which would never cause any issue), and even if I set a constant value to that string, it would still SegFault, and if I removed the assignment it would fail somewhere else... The actual error was somewhere else, in a completely different function and source file, where I called a Json_decref once too much...
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Re: rieMiner - Solo + pooled Riecoin mining
I reverted your commit "Remove unuse dense limit and tidy up" because it broke mining in Testnet with "Segment 0 1 with index ... is > 1" errors.
At least with Sieve 2^24, 4 Threads. Unlike the Segmentation Faults, this one always happens directly at start of mining.
At least with Sieve 2^24, 4 Threads. Unlike the Segmentation Faults, this one always happens directly at start of mining.
rieMiner - Riecoin solo + pooled miner
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Personal Riecoin page (links, download,...)
freebitco.in - earn up to $200 in BTC each hour!
Re: rieMiner - Solo + pooled Riecoin mining
That commit did fix a theoretical bug and make the code significantly simpler, so I'd rather it wasn't reverted.
I see the problem too with very small Sieve - was trying to do too much last night! I'll fix it.
I see the problem too with very small Sieve - was trying to do too much last night! I'll fix it.