Pages:
Author

Topic: [ANN]: cpuminer-opt v3.8.8.1, open source optimized multi-algo CPU miner - page 85. (Read 444067 times)

legendary
Activity: 1470
Merit: 1114
I haven't found any more getwork bugs, it now appears functionaly identical to cpuminer-multi.
My next step is to confirm getwork works with multi, if it doesn't I have no reference to use.
But first i'll have to implement lyra2z330. Will update when available.

I give it a try when you are ready.
It is not only about lyra2z330, but then also other algos can have a decent miner for solo.

Exactly. The getwork code is identical for every algo except cryptonight cryptolight. If I can get
getwork working on lyra2z330 it should also work on those other algos who support getwork.

GBT will be another issue and will require a similar iterative process to get it working.

Your testing is very much appreciated


First lyra2z330 solo block with 3.5.14!
Still, not yet used original HexxCoin wallet..

That's excellent news. It's looking like the miner side is working and it's just a wallet issue now.
That means it should work with almost any coin who's wallet already supports getwork.

Keep me updated on your progress. The next release will be 3.6.0 with getwork support.
legendary
Activity: 1470
Merit: 1114
I haven't found any more getwork bugs, it now appears functionaly identical to cpuminer-multi.
My next step is to confirm getwork works with multi, if it doesn't I have no reference to use.
But first i'll have to implement lyra2z330. Will update when available.

I give it a try when you are ready.
It is not only about lyra2z330, but then also other algos can have a decent miner for solo.

Exactly. The getwork code is identical for every algo except cryptonight cryptolight. If I can get
getwork working on lyra2z330 it should also work on those other algos who support getwork.

GBT will be another issue and will require a similar iterative process to get it working.

Your testing is very much appreciated
sr. member
Activity: 445
Merit: 255
Anyone have result with Ryzen and Hexxcoin ?  Smiley .
I think it would be nice if some could compile new version incl. new ryzen cpu. I am trying to get it to work, but somehow ryzen is not so good as intel cpus for mining.
...
Hello,
Could you try with 4 threads, with affinity setted by task managers on physicals cores, two by CCX. You may try with HT disabled.
For many algo, max performance is obtained with a good choice of threads different than max number of virtual cores/physical cores.

On my 6900k@4ghz with DDR3200, I could reach around 1900 around 4-6 threads.
With a xeon 2696V3 (18 cores) max on hexxcoin is 3200 with 7 cores and some kind of turbo boost hack and bclk @140hz: 3,3-3.950 ghz (and HT disabled to have higher turbo boost).

Lyra2z330 shouldn't drop in performance with too many threads the way cryptonight does. It should remain relatively steady once
it reaches it's peak.

As for compiling for Ryzen there are 2 points: compilers would first need to be updated with support for Ryzen and Ryzen contains
no new technology, it's just catching up to Intel with AVX2 (still not clear on their implementation) and hyperthreading so there's
no need for special compilation.

As with many AMD architectures compiling for native architecture is probably not the best choice, core-aes-avx2 is probably best.
This is note what I observed with my tests (maybe because I have cpu with large cache).
With the 6900k and the xeon E5 2696V3 (= 2699V3), it seems there is a sweet spot probably related to cache size and to the memory bandwith available which can increase with threads till some optimal value (4? I suppose with quad channel): 4-6 for the 6900k (20M cache) 7 for the xeon (45m of cache, there is some turbo boost effect for the xeon with fewer threads, but the 6900k was oc @4ghz for all cores).
full member
Activity: 154
Merit: 100
I haven't found any more getwork bugs, it now appears functionaly identical to cpuminer-multi.
My next step is to confirm getwork works with multi, if it doesn't I have no reference to use.
But first i'll have to implement lyra2z330. Will update when available.

I give it a try when you are ready.
It is not only about lyra2z330, but then also other algos can have a decent miner for solo.
legendary
Activity: 1470
Merit: 1114
I haven't found any more getwork bugs, it now appears functionaly identical to cpuminer-multi.
My next step is to confirm getwork works with multi, if it doesn't I have no reference to use.
But first i'll have to implement lyra2z330. Will update when available.
legendary
Activity: 1470
Merit: 1114
Anyone have result with Ryzen and Hexxcoin ?  Smiley .
I think it would be nice if some could compile new version incl. new ryzen cpu. I am trying to get it to work, but somehow ryzen is not so good as intel cpus for mining.
...
Hello,
Could you try with 4 threads, with affinity setted by task managers on physicals cores, two by CCX. You may try with HT disabled.
For many algo, max performance is obtained with a good choice of threads different than max number of virtual cores/physical cores.

On my 6900k@4ghz with DDR3200, I could reach around 1900 around 4-6 threads.
With a xeon 2696V3 (18 cores) max on hexxcoin is 3200 with 7 cores and some kind of turbo boost hack and bclk @140hz: 3,3-3.950 ghz (and HT disabled to have higher turbo boost).

Lyra2z330 shouldn't drop in performance with too many threads the way cryptonight does. It should remain relatively steady once
it reaches it's peak.

As for compiling for Ryzen there are 2 points: compilers would first need to be updated with support for Ryzen and Ryzen contains
no new technology, it's just catching up to Intel with AVX2 (still not clear on their implementation) and hyperthreading so there's
no need for special compilation.

As with many AMD architectures compiling for native architecture is probably not the best choice, core-aes-avx2 is probably best.
sr. member
Activity: 445
Merit: 255
Anyone have result with Ryzen and Hexxcoin ?  Smiley .
I think it would be nice if some could compile new version incl. new ryzen cpu. I am trying to get it to work, but somehow ryzen is not so good as intel cpus for mining.
...
Hello,
Could you try with 4 threads, with affinity setted by task managers on physicals cores, two by CCX. You may try with HT disabled.
For many algo, max performance is obtained with a good choice of threads different than max number of virtual cores/physical cores.

On my 6900k@4ghz with DDR3200, I could reach around 1900 around 4-6 threads.
With a xeon 2696V3 (18 cores) max on hexxcoin is 3200 with 7 cores and some kind of turbo boost hack and bclk @140hz: 3,3-3.950 ghz (and HT disabled to have higher turbo boost).
legendary
Activity: 1470
Merit: 1114

Closer
Atleast there is rejected after your line added.

[2017-03-12 19:24:37] 1 miner threads started, using 'lyra2z330' algorithm.
[2017-03-12 19:24:38] Current block is 1
[2017-03-12 19:24:38] No payout address provided, switching to getwork
[2017-03-12 19:25:07] CPU #0: 1086 H, 40.05 H/s
[2017-03-12 19:25:09] Rejected 1/1 (100.0%), 1086 H, 40.05 H/s, 0C
[2017-03-12 19:25:16] CPU #0: 201 H, 41.92 H/s
[2017-03-12 19:25:23] CPU #0: 210 H, 42.57 H/s
[2017-03-12 19:25:30] CPU #0: 213 H, 42.59 H/s
[2017-03-12 19:25:35] CPU #0: 102 H, 41.72 H/s
[2017-03-12 19:25:37] Rejected 2/2 (100.0%), 102 H, 41.72 H/s, 0C


Good work. It apears to be hashing properly but there is still a problem with the data,
wrong block number. Submitting a hash based on the wrong data will be rejected.

If optiminer, modified for lyra2z330, crashes on solo mining it doesn't make for a good
comparison. I may revisit this idea using cpuminer-multi if I get stuck but for now I'll
focus on verifying the data.

If I can't find anything else by analyzing the code I may build a debug load with some
extra data collection.

I'll update after analyzing the code some more.

Edit: In previous test block number was correct. Did you test differently? The code change should
not have affected this.
legendary
Activity: 1470
Merit: 1114
full member
Activity: 154
Merit: 100
Code:
[2017-03-12 13:51:58] 1 miner threads started, using 'lyra2z330' algorithm.
[2017-03-12 13:51:58] JSON protocol request:
{"method": "getblocktemplate", "params": [{"capabilities": ["coinbasetxn", "coinbasevalue", "longpoll", "workid"]}], "id
":0}


* Rebuilt URL to: http://127.0.0.1:29200/
* timeout on name lookup is not supported
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 29200 (#0)
* Server auth using Basic with user 'xxxx'
> POST / HTTP/1.1
Authorization: Basic TUFLRVVQWU9VUk9XTlVTRVI1NDY3NDU2NDVOQU1FOk1BS0VVUFk0NTY0NTY0NTY0T1VST1dOUEFTU1dPUkQ=
Host: 127.0.0.1:29200
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 126
User-Agent: cpuminer-opt/3.5.13
X-Mining-Extensions: longpoll reject-reason
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Date: Sun, 12 Mar 2017 11:51:59 +0000
< Connection: keep-alive
< Content-Length: 486
< Content-Type: application/json
< Server: Hexxcoin-json-rpc/v3.0.0.9
<
* Connection #0 to host 127.0.0.1 left intact
[2017-03-12 13:51:59] JSON protocol response:
{
   "error": null,
   "result": {
      "version": 2,
      "target": "000000c636000000000000000000000000000000000000000000000000000000",
      "previousblockhash": "9544851be86616cf93bb72a6f616ae8e2a93c4ea7a76501fb8de62f5625e448d",
      "coinbasevalue": 1250000000,
      "sizelimit": 4000000,
      "transactions": [],
      "coinbaseaux": {
         "flags": "062f503253482f"
      },
      "mutable": [
         "time",
         "transactions",
         "prevblock"
      ],
      "mintime": 1489318795,
      "height": 20465,
      "curtime": 1489319519,
      "noncerange": "00000000ffffffff",
      "sigoplimit": 40000,
      "bits": "1e00c636"
   },
   "id": 0
}
[2017-03-12 13:51:59] Current block is 20465
[2017-03-12 13:51:59] No payout address provided, switching to getwork
[2017-03-12 13:51:59] JSON protocol request:
{"method": "getwork", "params": [], "id":0}


* Rebuilt URL to: http://127.0.0.1:29200/
* Found bundle for host 127.0.0.1: 0xa0abc0
* Re-using existing connection! (#0) with host 127.0.0.1
* Connected to 127.0.0.1 (127.0.0.1) port 29200 (#0)
* Server auth using Basic with user 'xxxx'
> POST / HTTP/1.1
Authorization: Basic TUFLRVVQWU9VUk9XTlVTRVI1NDY3NDU2NDVOQU1FOk1BS0VVUFk0NTY0NTY0NTY0T1VST1dOUEFTU1dPUkQ=
Host: 127.0.0.1:29200
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 45
User-Agent: cpuminer-opt/3.5.13
X-Mining-Extensions: longpoll reject-reason
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Date: Sun, 12 Mar 2017 11:52:00 +0000
< Connection: keep-alive
< Content-Length: 592
< Content-Type: application/json
< Server: Hexxcoin-json-rpc/v3.0.0.9
<
* Connection #0 to host 127.0.0.1 left intact
[2017-03-12 13:52:00] JSON protocol response:
{
   "error": null,
   "result": {
      "data": "00000002625e448db8de62f57a76501f2a93c4eaf616ae8e93bb72a6e86616cf9544851ba458635750186a25ca698fba5e7072e0f
66db6c717fc5ec42e57b8bd7df17a5258c536601e00c6360000000000000080000000000000000000000000000000000000000000000000000000000
0000000000000000000000080020000",
      "midstate": "06cb9fc40aeca1a1b37d1feb82d99c0b7798bdacd6d221bc003a59db78c2f015",
      "hash1": "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000
000000000000000000010000",
      "target": "00000000000000000000000000000000000000000000000000000036c6000000"
   },
   "id": 0
}
[2017-03-12 13:52:00] got new work in 1341.60 ms
[2017-03-12 13:52:00] JSON protocol request:
{"method": "getmininginfo", "params": [], "id":8}


* Rebuilt URL to: http://127.0.0.1:29200/
* Found bundle for host 127.0.0.1: 0xa0abc0
* Re-using existing connection! (#0) with host 127.0.0.1
* Connected to 127.0.0.1 (127.0.0.1) port 29200 (#0)
* Server auth using Basic with user 'xxxx'
> POST / HTTP/1.1
Authorization: Basic TUFLRVVQWU9VUk9XTlVTRVI1NDY3NDU2NDVOQU1FOk1BS0VVUFk0NTY0NTY0NTY0T1VST1dOUEFTU1dPUkQ=
Host: 127.0.0.1:29200
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 51
User-Agent: cpuminer-opt/3.5.13
X-Mining-Extensions: longpoll reject-reason
Expect: 100-continue

* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Date: Sun, 12 Mar 2017 11:52:01 +0000
< Connection: keep-alive
< Content-Length: 231
< Content-Type: application/json
< Server: Hexxcoin-json-rpc/v3.0.0.9
<
* Connection #0 to host 127.0.0.1 left intact
[2017-03-12 13:52:01] JSON protocol response:
{
   "error": null,
   "result": {
      "blocks": 20464,
      "genproclimit": -1,
      "hashespersec": 0,
      "currentblocksize": 1000,
      "currentblocktx": 0,
      "difficulty": 0.0050562100000000002,
      "errors": "",
      "generate": false,
      "networkhashps": 168115,
      "testnet": false,
      "pooledtx": 0
   },
   "id": 8
}
[2017-03-12 13:52:02] CPU #0: 2 H, 128.21 H/s
[2017-03-12 13:52:02] JSON protocol request:
{"method": "getwork", "params": [], "id":0}

I must move to linux to test that line you added.
Takes some time..
sr. member
Activity: 1419
Merit: 275
Community built, Privacy driven
For information about ryzen cpu, 16 cores loaded
legendary
Activity: 1470
Merit: 1114
Im going to test that line updated.
1 hour...

That was something i really missed,
i saw it but forgot.

These all bugs lead upto Zcoin, Vertcoin..
Edit:
Done and testing

Edit; 128/132 no help

im going to sleep.

We're making progress faster than I expected. 128 is the correct data size.

I've found another major miss in the code, this time in cpu-miner.c line 1678.
Add one line...

Code:
            if (have_stratum)
             {
                pthread_mutex_unlock(&g_work_lock);
                continue;
             }
// add the following line
             algo_gate.get_new_work( &work, &g_work, thr_id, &end_nonce, true );

             pthread_mutex_unlock( &g_work_lock );
          }


Edit: Please add  "-D -P" options to command line to provide more output
full member
Activity: 154
Merit: 100
Im going to test that line updated.
1 hour...

That was something i really missed,
i saw it but forgot.

These all bugs lead upto Zcoin, Vertcoin..
Edit:
Done and testing

Edit; 128/132 no help

im going to sleep.
legendary
Activity: 1470
Merit: 1114
@hexxodev

I think I've found another bug in getwork. You may want to do this before modding the zcoin miner.
It's a one line change in cpu-miner.c line 289.

Code:
bool std_work_decode( const json_t *val, struct work *work)
{
    int i;
    int data_size   = algo_gate.work_data_size;
    int target_size = sizeof(work->target);
//    int adata_sz    = ARRAY_SIZE(work->data);
    int adata_sz    = data_size / 4;
    int atarget_sz  = ARRAY_SIZE(work->target);

Your first post about 330/height/8096 was not related to our problem.

What you just posted: may be.
I try to find time  to work on this.
Sorry, im doing this left handed right now.

I guess the size.

Look:
https://github.com/hexxcointakeover/hexxcoin/blob/master/src/rpcmining.cpp#L259

If memory serves me right, original miner wont work with zcoin(solo)


Actually just a couple of lines lower...

Code:
        for (int i = 0; i < 128/4; i++)
((unsigned int*)pdata)[i] = ByteReverse(((unsigned int*)pdata)[i]);

In my code it was using the size of the struct instead of the size of the algo's data.
The struct is bigger because it needs to support algos that have bigger data.

Ignore the zcoin mod stuff for now. You're right it has nothing to do with the getwork problem.
I was thinking of using it to look at the problem from a different angle. It's always easier if there
is a working model to compare with.



full member
Activity: 154
Merit: 100
@hexxodev

I think I've found another bug in getwork. You may want to do this before modding the zcoin miner.
It's a one line change in cpu-miner.c line 289.

Code:
bool std_work_decode( const json_t *val, struct work *work)
{
    int i;
    int data_size   = algo_gate.work_data_size;
    int target_size = sizeof(work->target);
//    int adata_sz    = ARRAY_SIZE(work->data);
    int adata_sz    = data_size / 4;
    int atarget_sz  = ARRAY_SIZE(work->target);

Your first post about 330/height/8096 was not related to our problem.
(original miner fork)

What you just posted: may be.
I try to find time  to work on this.
Sorry, im doing this left handed right now.

I guess the size.

Look:
https://github.com/hexxcointakeover/hexxcoin/blob/master/src/rpcmining.cpp#L259

If memory serves me right, original miner wont work with zcoin(solo)

I can re test it.
No need for compile any miner.
Likely it would be only waste of time.
No one ever solo mined zcoin...

legendary
Activity: 1470
Merit: 1114
@hexxodev

I think I've found another bug in getwork. You may want to do this before modding the zcoin miner.
It's a one line change in cpu-miner.c line 289.

Code:
bool std_work_decode( const json_t *val, struct work *work)
{
    int i;
    int data_size   = algo_gate.work_data_size;
    int target_size = sizeof(work->target);
//    int adata_sz    = ARRAY_SIZE(work->data);
    int adata_sz    = data_size / 4;
    int atarget_sz  = ARRAY_SIZE(work->target);
legendary
Activity: 1470
Merit: 1114
I use cpuminer-opt-3.5.12-windows for hexxcoin on suprnova , its ok ? .

Thanks. The discussion with hexxodev is about solo mining, nothing to do with pool mining using
stratum. I don't want anyone following the advice I give to him unless they know what they are doing.
legendary
Activity: 1134
Merit: 1001
I use cpuminer-opt-3.5.12-windows for hexxcoin on suprnova , its ok ? .
legendary
Activity: 1470
Merit: 1114
HexxCoin/Lyra2z330 solo tested with 3.5.13
Switching to getwork works now without coinaddress, but still not able to find blocks.

Thanks for testing. Can you show me the output? How long did you test vs expected block time?
Is there another miner where solo works for this algo?



There is currently no other miner than yours.
So we cant test it else.
Using false algo would give same results.  <---hint..

It shows block we are on and nethashrate, all seems like it is working.
Still, shown hashrate is about 1.5x compared to possible hashrate at pool.
It is doing some hash but not valid work.
Hashrate is extremely reacting to cpu load, not like with pool.
Edit:
Using 2 instances solo + pool cpuminer.
Pool cpuminer speed stays at 100% even when solo miner is "hashing".
It is not really giving any real load to cpu.


[2017-03-11 18:48:29] 1 miner threads started, using 'lyra2z330' algorithm.
[2017-03-11 18:48:30] API bind to port 4048 failed - trying again in 20sec
[2017-03-11 18:48:30] Current block is 19930
[2017-03-11 18:48:30] No payout address provided, switching to getwork
[2017-03-11 18:48:32] CPU #0: 2 H, 64.10 H/s
[2017-03-11 18:48:35] CPU #0: 2 H, 64.10 H/s
[2017-03-11 18:48:37] CPU #0: 2 H, 64.10 H/s
[2017-03-11 18:48:39] CPU #0: 2 H, 64.10 H/s
[2017-03-11 18:48:41] CPU #0: 2 H, 64.10 H/s

Excellent info. I'll take another look at the code to see why it's not hashing correctly. That part
should have nothing to do with getwork so it might be something simple.

Edit: In the meantime you might be able to mod the zcoin miner by optiminer even if you have no
coding skills.

https://github.com/Optiminer/cpuminer-xzc

Just change the rows arg in algo/lyra2rev2.c line 25 to 330.

Code:
old: LYRA2(wholeMatrix, hash, 32, input, 80, input, 80, 2, height, 256);

new: LYRA2(wholeMatrix, hash, 32, input, 80, input, 80, 2, 330, 256);

Just remember to use -a lyra2v2 on the command line, he just modified lyra2v2 to work for zcoin,
now you can modify it to work for lyra2z330. If getwork works it gives me something to compare with.

full member
Activity: 154
Merit: 100
Input needed!
Im trying to help user to setup cloud mining.
Currently I have no fresh linux setup to use.

This is a "hands free" guess:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y build-essential libssl-dev libcurl4-openssl-dev libjansson-dev libgmp-dev automake screen git
git clone https://github.com/JayDDee/cpuminer-opt
cd cpuminer-opt
./build.sh
screen -d -m  ./cpuminer -a lyra2z330 -o stratum+tcp://hexx.suprnova.cc:2876 -u myuser -p mypassword


Please modify and repost
Pages:
Jump to: