nginnever / zogminer

an OpenCL Zcash GPU miner
MIT License
151 stars 64 forks source link

Change of sign v[14] ^= -1; Segmentation fault #64

Open bpvarsity opened 8 years ago

bpvarsity commented 8 years ago

Ubuntu 14.04.4 LTS

02:15 AM root@35a38d xxxxxxx /root/zogminer # ./src/zcash-miner -G -stratum="stratum+tcp://equihash.usa.nicehash.com:3357" -user=12CwMEnYkKkGfoRifAxnNF43mK3hNhvLgv -password=x [OPENCL]:Found suitable OpenCL device [Hawaii] with 4191158272 bytes of GPU memory [OPENCL]:Using platform: AMD Accelerated Parallel Processing [OPENCL]:Using device: Hawaii(OpenCL 2.0 AMD-APP (1800.11)) [OPENCL]:Printing program log [OPENCL]:"/tmp/OCLPW4qaO.cl", line 288: warning: integer conversion resulted in a change of sign v[14] ^= -1; ^

It just hangs on this. I have 2 AMD 290's and 3x AMD 380's

Sometimes it does unhang and say Segmentation fault

Also got this when trying allgpu

root@35a38d 192.168.2.166 /root/zogminer # ./src/zcash-miner -G -allgpu -genproclimit=2 -stratum="stratum+tcp://equihash.usa.nicehash.com:3357" -user=12CwMEnYkKkGfoRifAxnNF43mK3hNhvLgv -password=x [OPENCL]:Found suitable OpenCL device [Hawaii] with 4174381056 bytes of GPU memory [OPENCL]:Using platform: AMD Accelerated Parallel Processing [OPENCL]:Using device: Hawaii(OpenCL 2.0 AMD-APP (1800.11)) [OPENCL]:Found suitable OpenCL device [Hawaii] with 4174381056 bytes of GPU memory [OPENCL]:Using platform: AMD Accelerated Parallel Processing [OPENCL]:Using device: Hawaii(OpenCL 2.0 AMD-APP (1800.11)) [OPENCL]:Printing program log [OPENCL]:"/tmp/OCLrtC2K7.cl", line 288: warning: integer conversion resulted in a change of sign v[14] ^= -1; ^ [OPENCL]:Printing program log [OPENCL]:"/tmp/OCLWfneif.cl", line 288: warning: integer conversion resulted in a change of sign v[14] ^= -1; ^ Kernel run took 162 ms. (12.5872 H/s) Kernel run took 161 ms. (10.2548 H/s) Kernel run took 165 ms. (10.5742 H/s) Kernel run took 162 ms. (10.3879 H/s) Kernel run took 159 ms. (11.3494 H/s) Kernel run took 161 ms. (10.4436 H/s) Kernel run took 159 ms. (11.2963 H/s) Kernel run took 156 ms. (11.1262 H/s) Kernel run took 164 ms. (10.9007 H/s) Kernel run took 160 ms. (10.5967 H/s) Kernel run took 165 ms. (11.2524 H/s) Kernel run took 162 ms. (10.694 H/s) Kernel run took 160 ms. (11.5069 H/s) Kernel run took 162 ms. (11.3908 H/s) Invalid solution: invalid collision length between StepRows Invalid solution: invalid collision length between StepRows Kernel run took 163 ms. (11.6856 H/s) Kernel run took 162 ms. (11.2907 H/s) Kernel run took 161 ms. (11.4967 H/s) Invalid solution: invalid collision length between StepRows Invalid solution: invalid collision length between StepRows Kernel run took 159 ms. (11.3527 H/s) Kernel run took 158 ms. (11.5808 H/s) Kernel run took 164 ms. (11.3849 H/s) Kernel run took 159 ms. (11.695 H/s) Kernel run took 158 ms. (11.3205 H/s) Invalid solution: invalid collision length between StepRows Invalid solution: invalid collision length between StepRows Kernel run took 165 ms. (11.4587 H/s) Kernel run took 147 ms. (11.3485 H/s) Kernel run took 145 ms. (11.6038 H/s)

bpvarsity commented 8 years ago

Dmseg shows

[ 414.233588] zcash-miner[6957]: segfault at 7faa5813d893 ip 000055d69c6d9c2b sp 00007faa4659ab50 error 4 in zcash-miner[55d69c493000+30b000] [ 763.348298] zcash-miner[12822]: segfault at 0 ip 000055ca0a9b876f sp 00007f273390e8d0 error 4 in zcash-miner[55ca0a970000+30b000] [ 962.030312] zcash-miner[1678]: segfault at 0 ip 000056540a6a876f sp 00007fddb83d08d0 error 4 in zcash-miner[56540a660000+30b000]

bpvarsity commented 8 years ago

clinfo is in my pastebin as its long

https://www.mycodebin.com/?e4ae35589b3707b0#krZJRdZx+6wZV7TaVyJujwzCAZydYm/4+Kh9fDI6CvY=

thehecki commented 8 years ago

self here with a HD5770

./src/zcash-miner -G Running the test miner [OPENCL]:Found suitable OpenCL device [Juniper] with 536870912 bytes of GPU memory [OPENCL]:Using platform: AMD Accelerated Parallel Processing [OPENCL]:Using device: Juniper(OpenCL 1.2 AMD-APP (1800.11)) [OPENCL]:Printing program log [OPENCL]:"/tmp/OCL1xCsFw.cl", line 288: warning: integer conversion resulted in a change of sign v[14] ^= -1; ^

[OPENCL]:CL ERROR:CL_INVALID_BUFFER_SIZE

coeniebeyers commented 8 years ago

I'm getting the following on a HD5870:

[OPENCL]:Found suitable OpenCL device [Cypress] with 536870912 bytes of GPU memory
[OPENCL]:Using platform: AMD Accelerated Parallel Processing
[OPENCL]:Using device: Cypress(OpenCL 1.2 AMD-APP (1800.11))
[OPENCL]:Printing program log
[OPENCL]:"/tmp/OCLytVWo6.cl", line 288: warning: integer conversion resulted in a
          change of sign
          v[14] ^= -1;
                   ^

[OPENCL]:CL ERROR:CL_INVALID_BUFFER_SIZE

I see the INVALID_BUFFER_SIZE issue was marked as resolved here: https://github.com/nginnever/zogminer/issues/21 however I'm still getting this problem with a fresh build

professionalemail commented 8 years ago

AMD Radeon 390X

[OPENCL]:Found suitable OpenCL device [Hawaii] with 8535408640 bytes of GPU memory [OPENCL]:Using platform: AMD Accelerated Parallel Processing [OPENCL]:Using device: Hawaii(OpenCL 2.0 AMD-APP (1800.11)) [OPENCL]:Printing program log [OPENCL]:"/tmp/OCLMpffbk.cl", line 288: warning: integer conversion resulted in a change of sign v[14] ^= -1; ^

terminate called without an active exception

findkiko commented 8 years ago

For what it's worth I see the change of sign warning but the program does run on my 280X so I'm not sure that warning is related to the seg-faults you guys are seeing.

rbiegel commented 8 years ago

zogminer always segfaults here with 3x 280X, Linux amd64.

gdb ./zcash-miner
GNU gdb (Gentoo 7.11.1 vanilla) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./zcash-miner...done.
(gdb) r -G
Starting program: /.../zcash-miner -G
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Running the test miner
[OPENCL]:Found suitable OpenCL device [Tahiti] with 3151942848 bytes of GPU memory
[OPENCL]:Using platform: AMD Accelerated Parallel Processing
[OPENCL]:Using device: Tahiti(OpenCL 1.2 AMD-APP (1912.5))
[New Thread 0x7fffeb8b0700 (LWP 9617)]
[OPENCL]:Printing program log
[OPENCL]:"/tmp/OCL9613T3.cl", line 288: warning: integer conversion resulted in a
          change of sign
          v[14] ^= -1;
                   ^

[OPENCL]:CL ERROR:CL_INVALID_ARG_INDEX

Thread 1 "zcash-miner" received signal SIGSEGV, Segmentation fault.
0x000055555568b9c8 in GPUSolver::GPUSolve200_9(unsigned char*, unsigned long, unsigned long, std::function<bool (std::vector<unsigned char, std::allocator<unsigned char> >)>, std::function<bool (GPUSolverCancelCheck)>, crypto_generichash_blake2b_state) (this=this@entry=0x555555910e80, 
    header=header@entry=0x555556123370 "\004", header_len=header_len@entry=108, nonce=nonce@entry=0, validBlock=..., cancelled=..., base_state=...)
    at libzogminer/gpusolver.cpp:212
212                     index_vector[i] = indices->values[s-1][i];
(gdb) bt
#0  0x000055555568b9c8 in GPUSolver::GPUSolve200_9(unsigned char*, unsigned long, unsigned long, std::function<bool (std::vector<unsigned char, std::allocator<unsigned char> >)>, std::function<bool (GPUSolverCancelCheck)>, crypto_generichash_blake2b_state) (this=this@entry=0x555555910e80, 
    header=header@entry=0x555556123370 "\004", header_len=header_len@entry=108, nonce=nonce@entry=0, validBlock=..., cancelled=..., base_state=...)
    at libzogminer/gpusolver.cpp:212
#1  0x000055555568bd74 in GPUSolver::run(unsigned int, unsigned int, unsigned char*, unsigned long, unsigned long, std::function<bool (std::vector<unsigned char, std::allocator<unsigned char> >)>, std::function<bool (GPUSolverCancelCheck)>, crypto_generichash_blake2b_state) (this=<optimized out>, 
    n=<optimized out>, k=<optimized out>, header=0x555556123370 "\004", header_len=108, nonce=0, validBlock=..., cancelled=..., base_state=...)
    at libzogminer/gpusolver.cpp:159
#2  0x00005555555a0658 in test_mine (n=<optimized out>, k=<optimized out>, d=<optimized out>, conf=...) at standaloneminer.cpp:186
#3  0x00005555555a3743 in main (argc=<optimized out>, argv=<optimized out>) at standaloneminer.cpp:316
(gdb) bt full
#0  0x000055555568b9c8 in GPUSolver::GPUSolve200_9(unsigned char*, unsigned long, unsigned long, std::function<bool (std::vector<unsigned char, std::allocator<unsigned char> >)>, std::function<bool (GPUSolverCancelCheck)>, crypto_generichash_blake2b_state) (this=this@entry=0x555555910e80, 
    header=header@entry=0x555556123370 "\004", header_len=header_len@entry=108, nonce=nonce@entry=0, validBlock=..., cancelled=..., base_state=...)
    at libzogminer/gpusolver.cpp:212
        i = 0
        index_vector = std::vector of length -23456249050416, capacity -23456249050416 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...}
        sol_char = std::vector of length 48, capacity -95 = {<error reading variable sol_char (Cannot access memory at address 0x60)>
        s = 4100073
        t = {__d = {__r = 1478086987711133595}}
        ptr = 0
        nNonce = {<base_blob<256u>> = {data = '\000' <repeats 31 times>}, <No data fields>}
        d = <optimized out>
        checkedSols = 31
#1  0x000055555568bd74 in GPUSolver::run(unsigned int, unsigned int, unsigned char*, unsigned long, unsigned long, std::function<bool (std::vector<unsigned char, std::allocator<unsigned char> >)>, std::function<bool (GPUSolverCancelCheck)>, crypto_generichash_blake2b_state) (this=<optimized out>, 
    n=<optimized out>, k=<optimized out>, header=0x555556123370 "\004", header_len=108, nonce=0, validBlock=..., cancelled=..., base_state=...)
    at libzogminer/gpusolver.cpp:159
No locals.
#2  0x00005555555a0658 in test_mine (n=<optimized out>, k=<optimized out>, d=<optimized out>, conf=...) at standaloneminer.cpp:186
        foundBlock = <optimized out>
        curr_state = {h = {7640891576939301178, 13503953896175478587, 4354685564936845355, 11912009170470909681, 5840696475078001361, 11170449401992604703, 
            5254726338130009649, 6620516921164833201}, t = {0, 0}, f = {0, 0}, 
          buf = "\004", '\000' <repeats 103 times>, "\017\017\017 ", '\000' <repeats 147 times>, buflen = 108, last_node = 0 '\000'}
        cancelled = {<std::_Maybe_unary_or_binary_function<bool, EhSolverCancelCheck>> = {<std::unary_function<EhSolverCancelCheck, bool>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x43f712fe4b29a2, 
                _M_const_object = 0x43f712fe4b29a2, _M_function_pointer = 0x43f712fe4b29a2, 
                _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x43f712fe4b29a2, this adjustment 1393}, 
              _M_pod_data = "\242)K\376\022\367C\000q\005\000\000\000\000\000"}, 
            _M_manager = 0x55555559f1c2 <std::_Function_base::_Base_manager<test_mine(int, int, uint32_t, GPUConfig)::<lambda(EhSolverCancelCheck)> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, 
          _M_invoker = 0x55555559f194 <std::_Function_handler<bool(EhSolverCancelCheck), test_mine(int, int, uint32_t, GPUConfig)::<lambda(EhSolverCancelCheck)> >::_M_invoke(const std::_Any_data &, <unknown type in /.../zcash-miner, CU 0x1e02f2, DIE 0x24eccd>)>}
        validBlock = {<std::_Maybe_unary_or_binary_function<bool, std::vector<unsigned char, std::allocator<unsigned char> > >> = {<std::unary_function<std::vector<unsigned char, std::allocator<unsigned char> >, bool>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, 
            static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x555555910eb0, _M_const_object = 0x555555910eb0, 
                _M_function_pointer = 0x555555910eb0, 
                _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x555555910eb0, this adjustment -54414284990125787}, 
              _M_pod_data = "\260\016\221UUU\000\000%\351t\000\177\256>\377"}, 
            _M_manager = 0x55555559f26f <std::_Function_base::_Base_manager<test_mine(int, int, uint32_t, GPUConfig)::<lambda(std::vector<unsigned char, std::allocator<unsigned char> >)> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, 
          _M_invoker = 0x55555559f445 <std::_Function_handler<bool(std::vector<unsigned char, std::allocator<unsigned char> >), test_mine(int, int, uint32_t, GPUConfig)::<lambda(std::vector<unsigned char, std::allocator<unsigned char> >)> >::_M_invoke(const std::_Any_data &, <unknown type in /.../zcash-miner, CU 0x1e02f2, DIE 0x26959d>)>}
        cancelledGPU = {<std::_Maybe_unary_or_binary_function<bool, GPUSolverCancelCheck>> = {<std::unary_function<GPUSolverCancelCheck, bool>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {
                _M_object = 0x56690003d9ecf0, _M_const_object = 0x56690003d9ecf0, _M_function_pointer = 0x56690003d9ecf0, 
---Type <return> to continue, or q <return> to quit--- 
                _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x56690003d9ecf0, this adjustment -69476151170736021}, 
              _M_pod_data = "\360\354\331\003\000iV\000k`\033\001\317+\t\377"}, 
            _M_manager = 0x55555559f147 <std::_Function_base::_Base_manager<test_mine(int, int, uint32_t, GPUConfig)::<lambda(GPUSolverCancelCheck)> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, 
          _M_invoker = 0x55555559f119 <std::_Function_handler<bool(GPUSolverCancelCheck), test_mine(int, int, uint32_t, GPUConfig)::<lambda(GPUSolverCancelCheck)> >::_M_invoke(const std::_Any_data &, <unknown type in /.../zcash-miner, CU 0x1e02f2, DIE 0x24ec0e>)>}
        state = {h = {7640891576939301178, 13503953896175478587, 4354685564936845355, 11912009170470909681, 5840696475078001361, 11170449401992604703, 
            5254726338130009649, 6620516921164833201}, t = {0, 0}, f = {0, 0}, 
          buf = "\004", '\000' <repeats 103 times>, "\017\017\017 ", '\000' <repeats 147 times>, buflen = 108, last_node = 0 '\000'}
        I = {<CBlockHeader> = {static HEADER_SIZE = 140, static CURRENT_VERSION = 4, nVersion = 4, hashPrevBlock = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, hashMerkleRoot = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, hashReserved = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, nTime = 0, nBits = 537857807, nNonce = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, nSolution = std::vector of length 0, capacity 0}, <No data fields>}
        ss = {<CBaseDataStream<std::vector<char, zero_after_free_allocator<char> > >> = {vch = std::vector of length 108, capacity 136 = {4 '\004', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 
              0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 15 '\017', 15 '\017', 15 '\017', 32 ' '}, nReadPos = 0, nType = 1, 
            nVersion = 170002}, <No data fields>}
        nStart = 1478086987
        start_cycles = 1678101979597520
        pblock = {<CBlockHeader> = {static HEADER_SIZE = 140, static CURRENT_VERSION = 4, nVersion = 4, hashPrevBlock = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, hashMerkleRoot = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, hashReserved = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, nTime = 0, nBits = 537857807, nNonce = {<base_blob<256u>> = {
                data = '\000' <repeats 31 times>}, <No data fields>}, nSolution = std::vector of length 0, capacity 0}, 
          vtx = std::vector of length 0, capacity 0, vMerkleTree = std::vector of length 0, capacity 0}
        hashTarget = {<base_uint<256u>> = {pn = {0, 0, 0, 0, 0, 0, 0, 252645120}}, <No data fields>}
        solver = <optimized out>
        nn = <optimized out>
        header = <optimized out>
#3  0x00005555555a3743 in main (argc=<optimized out>, argv=<optimized out>) at standaloneminer.cpp:316
        conf = {useGPU = true, selGPU = 0, globalWorkSize = 35, workgroupSize = 0}
        stratum = ""