Author

Topic: OFFICIAL CGMINER mining software thread for linux/win/osx/mips/arm/r-pi 4.11.0 - page 596. (Read 5805740 times)

legendary
Activity: 2576
Merit: 1186
Wrote code to append a file with this format: timestamp,disposition,target,pool,dev,thr,sharehash,sharedata

Will edit-in an example to this post when I get a chance to test (currently doing an all-day test of some other code).

If you want to test it before me, here's a paste of the code. It at least compiles for Windows. Zero checking on Linux so far.

It compiles on linux but doesn't work.  The output is happening, but not to a file (it appears on screen no matter what I have tried to pass to the command line param) for each share there is also this error:

Code:
[2012-04-24 17:59:54] sharelog fwrite error
Try this one.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
I can do it. Just trying to decide if it should be this way for everyone. Be aware that rejects are almost always rejected while meeting the target. They're rejected for other reasons.

Ok.  I'm fine with either adding the difficulty to the normal output as I originally suggested or creating a share log file as luke coded it (assuming we can get it working).

And I wouldn't expect this to change the reasons why shares appear as rejected.  I expect rejected shares are shares that cgminer thinks meet the target but that the pool rejected for whatever reason (e.g. they were stale).
That's fine. How would you want the difficulty displayed? I'm not really sure I understand the (0.999985) type value you're displaying in your sample.
hero member
Activity: 737
Merit: 500
I can do it. Just trying to decide if it should be this way for everyone. Be aware that rejects are almost always rejected while meeting the target. They're rejected for other reasons.

Ok.  I'm fine with either adding the difficulty to the normal output as I originally suggested or creating a share log file as luke coded it (assuming we can get it working).

And I wouldn't expect this to change the reasons why shares appear as rejected.  I expect rejected shares are shares that cgminer thinks meet the target but that the pool rejected for whatever reason (e.g. they were stale).
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Can multiple devices be specified in the config file?
i.e. the equivelent on -d0 -d1 -d3 -d4 -d5 on command line in the config file is ?
I might have to restructure that input as it predates my ability to parse multiple inputs with the one argument. I should change it to  -d 0,1,3,4,5 . Not even sure if you can put multiple -d on the config file, but if so, you'd just put in each -d entry on a separate line.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
hero member
Activity: 737
Merit: 500
Wrote code to append a file with this format: timestamp,disposition,target,pool,dev,thr,sharehash,sharedata

Will edit-in an example to this post when I get a chance to test (currently doing an all-day test of some other code).

If you want to test it before me, here's a paste of the code. It at least compiles for Windows. Zero checking on Linux so far.

It compiles on linux but doesn't work.  The output is happening, but not to a file (it appears on screen no matter what I have tried to pass to the command line param) for each share there is also this error:

Code:
[2012-04-24 17:59:54] sharelog fwrite error
donator
Activity: 1218
Merit: 1079
Gerald Davis
Can multiple devices be specified in the config file?
i.e. the equivelent on -d0 -d1 -d3 -d4 -d5 on command line in the config file is ?
legendary
Activity: 2576
Merit: 1186
I have a requested enhancement (see below for the bounty).  I have a need to log all of the shares that are found by cgminer (for statistical analysis purposes) and the existing information that is output is almost enough but In order to do my calculations, I need to know the target for the work that resulted in the share since I mine on pools that don't have a fixed share difficulty.

The current output looks something like this:

Code:
[2012-04-24 14:27:39] Accepted 00000000.131be987.c9501e82 PGA 0 thread 0 pool 1

My request is for some option to add in the target for the share.  To save output space, it would be preferable for it to be displayed as the equivalent difficulty and not the massively verbose hex target.  So as to not bother other cgminer users or those that are already parsing the current output, perhaps it should be optional (based on a new command line parameter, etc)?

I'm imagining something like:

Code:
[2012-04-24 14:27:39] Accepted 00000000.58373f06.7b5f26c7 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.4534557e.a78f6b4a (2.314230) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.db937fb0.34751330 (4.000000) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Rejected 00000000.ca984202.8376eec0 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:47] Rejected 00000000.714a3646.4348042c (0.999985) PGA 0 thread 0 pool 1

Or some other equally parse-able format that includes the timestamp, accepted/rejected, the share hash (or at least as much as is currently included), the difficulty/target, which device it was, and which pool it was (for cases where there are multiple pools configured).  It's fine if it also includes the thread (as shown above), but I don't need that information, myself.
Wrote code to append a file with this format: timestamp,disposition,target,pool,dev,thr,sharehash,sharedata

Will edit-in an example to this post when I get a chance to test (currently doing an all-day test of some other code).

Example:
Code:
1335313090,reject,ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000,http://luke.dashjr.org/tmp/code/earlyshare.json,CPU3,3,6f983c918f3299b58febf95ec4d0c7094ed634bc13754553ec34fc3800000000,00000001a0980aff4ce4a96d53f4b89a2d5f0e765c978640fe24372a000001c5000000004a4366808f81d44f26df3d69d7dc4b3473385930462d9ab707b50498f681634a4f1f63d01a0cd43fb3380000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

If you want to test it before me, here's a paste of the code. It at least compiles for Windows. Zero checking on Linux so far.
hero member
Activity: 737
Merit: 500
I have a requested enhancement (see below for the bounty).  I have a need to log all of the shares that are found by cgminer (for statistical analysis purposes) and the existing information that is output is almost enough but In order to do my calculations, I need to know the target for the work that resulted in the share since I mine on pools that don't have a fixed share difficulty.

The current output looks something like this:

Code:
[2012-04-24 14:27:39] Accepted 00000000.131be987.c9501e82 PGA 0 thread 0 pool 1

My request is for some option to add in the target for the share.  To save output space, it would be preferable for it to be displayed as the equivalent difficulty and not the massively verbose hex target.  So as to not bother other cgminer users or those that are already parsing the current output, perhaps it should be optional (based on a new command line parameter, etc)?

I'm imagining something like:

Code:
[2012-04-24 14:27:39] Accepted 00000000.58373f06.7b5f26c7 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.4534557e.a78f6b4a (2.314230) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Accepted 00000000.db937fb0.34751330 (4.000000) PGA 1 thread 1 pool 1
[2012-04-24 14:27:44] Rejected 00000000.ca984202.8376eec0 (0.999985) PGA 1 thread 1 pool 1
[2012-04-24 14:27:47] Rejected 00000000.714a3646.4348042c (0.999985) PGA 0 thread 0 pool 1

Or some other equally parse-able format that includes the timestamp, accepted/rejected, the share hash (or at least as much as is currently included), the difficulty/target, which device it was, and which pool it was (for cases where there are multiple pools configured).  It's fine if it also includes the thread (as shown above), but I don't need that information, myself.

I have looked at the code and I don't think this is super difficult, but I am not a skilled enough C/C++ programmer to do the enhancement myself with any confidence, so I will put up a bounty for it instead.  I know ckolivas is busy and/or on a break, so I don't mind if someone else does it and provides a patch.  That said, I'd prefer to see it incorporated into the mainline source code so that I don't have to worry about it breaking in the future, so I'm going to include some incentive for it to be merged as well.  Here are the bounties I am willing to pay:

  • 5 BTC to the author of a working patch against the current git cgminer source.
  • 5 BTC to the author of the patch if and when it gets merged into the cgminer source. This obviously means the change has to be done well enough that ckolivas is comfortable merging it.
  • 5 BTC to ckolivas if he merges the patch.

So that is 15 BTC to ckolivas if he does it all himself, or if it is done by someone else up to 10 BTC to the author and 5 BTC to ckolivas for merging it.

sr. member
Activity: 446
Merit: 250
Is there a "best" SDK to be using for mining?
2.5 is the best for 6000 series cards IIRC. 2.6 is necessary for 7000 cards and I'm not sure about 5000.

Not much difference between 2.1, 2.4, 2.5.   A couple % max IIRC.  I use 2.4.

But 2.6 has a big drop off for 5000 and 6000 series cards?
donator
Activity: 1218
Merit: 1079
Gerald Davis
99.9% sure that, That is what it did, Is it possible to use the kernal i saved from 2.1.2 for 2.3.3 Or must i go install old drivers, Complie a .bin, Save it, Install new drivers again, Replace the .bin like i've done before

Maybe.  Try and find out.  There are some incompatibilities between drivers but generally they "play nice".

Also driver =/= SDK.
AMD package installs them together but you can install/uninstall just the SDK.

So you can install the latest driver and SDK 2.4 for example.
On a new install just make sure to ONLY install the driver you want and then ONLY install the SDK you want.

The one exception is SDK 2.6 which is broken and an ass to uninstall completely.  There is a thread about it somewhere.  Another option is I think conman has compiled kernels (bin files) on a server somewhere.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Is there a "best" SDK to be using for mining?
2.5 is the best for 6000 series cards IIRC. 2.6 is necessary for 7000 cards and I'm not sure about 5000.

Not much difference between 2.1, 2.4, 2.5.   A couple % max IIRC.  I use 2.4.
hero member
Activity: 591
Merit: 500
Is there a "best" SDK to be using for mining?
2.5 is the best for 6000 series cards IIRC. 2.6 is necessary for 7000 cards and I'm not sure about 5000.
legendary
Activity: 1428
Merit: 1001
Okey Dokey Lokey
You likely updated your SDK at some point in the past.
cgminer will cache the compiled kernel hiding the change in performance.
new version of cgminer has no cached kernel so it compiles under new SDK and performance drops.

To confirm:
a) make backup of .bin files in old cgminer directory
b) delete .bin files in old cgminer directory.
c) start cgminer and it will recreate bin files using new SDK.
d) compare performance to "new" cgminer.

99.9% sure that, That is what it did, Is it possible to use the kernal i saved from 2.1.2 for 2.3.3 Or must i go install old drivers, Complie a .bin, Save it, Install new drivers again, Replace the .bin like i've done before
sr. member
Activity: 446
Merit: 250
You likely updated your SDK at some point in the past.
cgminer will cache the compiled kernel hiding the change in performance.
new version of cgminer has no cached kernel so it compiles under new SDK and performance drops.

To confirm:
a) make backup of .bin files in old cgminer directory
b) delete .bin files in old cgminer directory.
c) start cgminer and it will recreate bin files using new SDK.
d) compare performance to "new" cgminer.


Is there a "best" SDK to be using for mining?
donator
Activity: 1218
Merit: 1079
Gerald Davis
You likely updated your SDK at some point in the past.
cgminer will cache the compiled kernel (bin files) hiding the change in performance.
new version of cgminer has no cached kernel (bin files) so it compiles under new SDK and performance drops.

To confirm:
a) make backup of .bin files in old cgminer directory
b) delete .bin files in old cgminer directory.
c) start cgminer and it will recreate bin files using new SDK.
d) compare performance to "new" cgminer.
legendary
Activity: 1428
Merit: 1001
Okey Dokey Lokey
So i've been HAPPILY using cgminer version 2.1.2 with No issues, And i wonder this.
I have 1x6990 2x6870 1x5830 1x5770
If i update will i notice Obvious changes? Such as higher hashrates?

Woah what the fuck 30mh/core slower??!?!! what the hell!
Here is my gaming system with the dual 6870's

Code:
 cgminer version 2.3.3 - Started: [2012-04-24 09:51:27]
--------------------------------------------------------------------------------
 (5s):556.9 (avg):538.2 Mh/s | Q:22  A:15  R:0  HW:0  E:68%  U:8.88/m
 TQ: 1  ST: 2  SS: 0  DW: 1  NB: 2  LW: 0  GF: 0  RF: 0
 Connected to http://pit.deepbit.net:8332 with LP as user *************
 Block: 000009d3c3bee3207dee653e3729bc4e...  Started: [09:51:38]
--------------------------------------------------------------------------------
 [P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
 GPU 0:  74.0C  50%    | 278.0/282.8Mh/s | A:8 R:0 HW:0 U:4.74/m I: 3
 GPU 1:  79.0C  78%    | 278.8/276.0Mh/s | A:9 R:0 HW:0 U:5.33/m I: 3
--------------------------------------------------------------------------------

[2012-04-24 09:52:25] Accepted 00000000.8e56b448.21c0d788 GPU 1 thread 3
[2012-04-24 09:52:27] Accepted 00000000.19c8c4e1.1cfeeeb6 GPU 0 thread 1
[2012-04-24 09:52:32] Accepted 00000000.3ef81cef.66d7bf19 GPU 1 thread 3
[2012-04-24 09:52:36] Accepted 00000000.f375494f.61edeffd GPU 0 thread 1
[2012-04-24 09:53:01] Accepted 00000000.5360ca14.bbe6e9e9 GPU 0 thread 1
[2012-04-24 09:53:02] Accepted 00000000.a2bca0ff.1d014d8c GPU 1 thread 3
[2012-04-24 09:53:08] Accepted 00000000.8ca2ef3d.c819dd63 GPU 1 thread 2
[2012-04-24 09:53:09] Accepted 00000000.fe8c9ea7.a8bb18d8 GPU 1 thread 2
[2012-04-24 09:53:10] Accepted 00000000.5ae48698.4f8fa217 GPU 1 thread 2
[2012-04-24 09:53:10] Accepted 00000000.09e180b8.c099ef9d GPU 1 thread 3
[2012-04-24 09:53:10] Accepted 00000000.7bb4c2f6.b2e10aa9 GPU 1 thread 3
[2012-04-24 09:53:13] Accepted 00000000.5c3b0577.74747a36 GPU 1 thread 2

^^^Newer
v v vOlder
Code:
 cgminer version 2.1.2 - Started: [2012-04-24 09:54:18]
--------------------------------------------------------------------------------
 (5s):627.4 (avg):623.3 Mh/s | Q:13  A:15  R:0  HW:0  E:115%  U:12.83/m
 TQ: 2  ST: 1  SS: 0  DW: 0  NB: 1  LW: 0  GF: 0  RF: 0
 Connected to http://pit.deepbit.net:8332 with LP as user ***************
 Block: 000009d3c3bee3207dee653e3729bc4e...  Started: [09:54:18]
--------------------------------------------------------------------------------
 [P]ool management [G]PU management [S]ettings [D]isplay options [Q]uit
 GPU 0:  75.0C  50%    | 316.0/324.7Mh/s | A:9 R:0 HW:0 U:  7.70/m I: 3
 GPU 1:  79.0C  82%    | 316.2/323.4Mh/s | A:6 R:0 HW:0 U:  5.13/m I: 3
--------------------------------------------------------------------------------

[2012-04-24 09:54:31] Accepted 00000000.d27e0e14.ac2a2dc5 GPU 1 thread 3
[2012-04-24 09:54:37] Accepted 00000000.95685005.07737480 GPU 0 thread 2
[2012-04-24 09:54:38] Accepted 00000000.0c81d27b.62f4eefc GPU 1 thread 3
[2012-04-24 09:54:38] Accepted 00000000.7b58cf89.ad70a24a GPU 0 thread 0
[2012-04-24 09:54:42] Accepted 00000000.14fa51cb.f938df0b GPU 1 thread 3
[2012-04-24 09:54:49] Accepted 00000000.d99bba9d.757eb820 GPU 0 thread 0
[2012-04-24 09:54:53] Accepted 00000000.ae7d0bc0.2caa74d1 GPU 1 thread 3
[2012-04-24 09:54:57] Accepted 00000000.aaf638c5.55ca044b GPU 0 thread 0
[2012-04-24 09:54:57] Accepted 00000000.0456264a.112018e7 GPU 0 thread 0
[2012-04-24 09:55:01] Accepted 00000000.23f02532.2b4aaf5a GPU 1 thread 3
[2012-04-24 09:55:04] Accepted 00000000.37fe79d5.b1743c5b GPU 0 thread 0
[2012-04-24 09:55:14] Accepted 00000000.70255cd6.7b516e40 GPU 0 thread 2
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
For those of you who want to build their own Windows version that works with Icarus, you might want to get icarus.c from my site:

http://www.petermoss.com/cgminer-wdog/my-cgminer-modifications/

I've been running it for a while now, it seems to work well.  I get ~400 Mh/s, 5.30-5.35 shares/min.

Heh you can't actually get 400MH/s unless you use a faster bitstream.
The device can only max out at 380MH/s with the standard bitstream.

I did use your code as a basis for the windows additions I did - serial initialisation - (I just minimised it as much as possible)
You'll see your name is in a comment above that code in driver-icarus.c in the git
The next release (the current git) works on windows.

There's still 2 things that certainly need to (must) be done to driver-icarus.c but they probably wont be there until after the release.
The hash rate (luke-jr found the simple fix for that) is wrong (and wrong in your one also)
That and a USB/UART problem that happens on some machines (I've not yet had it happen on 2 linux computers that have run for days or even weeks)
I'm trying an overnight windows test on another computer to see if I can have it happen
legendary
Activity: 2576
Merit: 1186
For those of you who want to build their own Windows version that works with Icarus, you might want to get icarus.c from my site:

http://www.petermoss.com/cgminer-wdog/my-cgminer-modifications/

I've been running it for a while now, it seems to work well.  I get ~400 Mh/s, 5.30-5.35 shares/min.

What commit was this based on?
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
...
It then mines with 7 Singles (COM3-COM9) but doesn't use COM10-COM12). Why is cgminer detecting an Icarus product on COM10-COM12? I have no Icarus, only BFL.
...
It actually says it didn't detect an Icarus if you read again Smiley
However, the Icarus code reports if it attempted and succeeded or failed.
In this case the 3 ports that BFL didn't succeed with were passed on to Icarus to try,
and as it said "Icarus Detect: Failed to open COM1x"

Aside: The next version of the code should actually work with Icarus on windows ...
I get the impression few if any have had it work in the past with Icarus on windows.
My pull request (that hopefully will go in) includes changes based on the suggestions by af_newbie and that made my pull request work fine on windows (that I delayed for a few weeks for that very reason, I hadn't tested it on windows)
It also works wonders for anyone with lots of Icarus devices (even on linux) the current code takes something like almost a minute to check 10 (I'm not sure of the exact figure), but the new one takes at most a little over 0.1s per device
Jump to: