Bitcoin Forum
May 24, 2024, 07:05:35 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 »
81  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 4% increase) for Phoenix - 2011-08-04 on: August 07, 2011, 06:37:46 AM
The latest version (2011-08-04) has a major problem that I can see.

The assumption that there won't be more than 1 valid nonce per kernel execution is very wrong. At aggression 14 for example each kernel execution tests 2^30 nonces. The chance that there will be more than 1 valid nonce in any given kernel execution in this case is going to be about 2.5% (if I did the math right) This effectively causes a net loss in performance compared to the previous version at high aggression. At lower aggression values (10 and below) this is less of a problem since the performance loss in these cases will be much less than 1%.
82  Bitcoin / Mining software (miners) / Re: Modified Kernel for Phoenix 1.4 on: July 29, 2011, 07:20:04 AM
not working with Phoenix r101

Phoenix 1.5 includes the phatk kernel by default, unlike 1.4. Just use the included one. If you want more performance, phatk r112 from the Phoenix SVN is even faster.
83  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 29, 2011, 07:17:41 AM
If someone could load it up in pdb and figure out what datastructure is doing it, I could probably fix it.

I would start with the RPC code, including the modified Twisted.web library. I run my miners through MMP, and I usually run them for weeks at a time with >100,000 accepted shares between restarts. I don't see any performance problems or memory leaks running with MMP.
84  Bitcoin / Mining software (miners) / Re: How do I run the Phoenix miner script directly in Windows 7 x64? on: July 27, 2011, 03:35:34 PM
I would like to run the Phoenix python script directly and test if there is any performance benefit to doing so.  After installing Python 3.2 for Windows 7 x64, I run the following commands in the source directory containing phoenix.py and always get the same error:


Phoenix is designed for Python 2.6/2.7. That is most likely the cause of your issue.
85  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 18, 2011, 08:45:14 AM
Quote
r112 | jedi95 | 2011-07-18 13:09:01 +0900 (Mon, 18 Jul 2011) | 1 line

Performance improvement for phatk
just updated to r112, but got my speed slow down from ~360Mhash --> ~330Mhash (Ubuntu 11.4, SDK 2.4, phatk on a 5850 850MHz). Rolled back to r111 & waiting for news.

Odd, I'm running phatk r112 on 4 5870s and a 5830. The hashrate is slightly higher than what I get with r111.

I didn't make these particular changes to phatk, see this thread:
http://forum.bitcoin.org/index.php?topic=25860.0
86  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-11 on: July 15, 2011, 07:47:25 PM
Testing the 2011-07-11 kernel.7z

XFX 5870 @ 940/300
Ubuntu 11.04, ATI Drivers 11.5, SDK 2.1
Before: [428.56 Mhash/sec] -> After: [432.28 Mhash/sec]
Stales before: 0.22% - > Stales after: 3.48%
Over a 4 hour test period

XFX 5870 @ 940/300
Ubuntu 11.04, ATI Drivers 11.5, SDK 2.4
Before: [422.34 Mhash/sec] -> After: [189.58 Mhash/sec]
Stales: Not tested due to adverse affects.

Well that is very strange, but at least you are able to mine faster with SDK2.1 and the current kernel version ^^.
Btw. I had other things to do, but during the next week I will release a new version.

Dia
Awesome, I look forward to it.
I think the rejected shares was random variance from my side as it seems to have settled down to a more realistic 0.88%.

Keep in mind that OpenCL kernel changes have NO effect on stale shares (aside from the VERY small difference in time it takes to run 1 execution of some number of hashes) All nonces found by the kernel to satisfy H == 0 are verified on the CPU prior to sending. Shares are also checked against the current known block before sending, in case new work was received while the kernel was executing. Basically this means that every share sent to the server is valid as far as the miner is concerned. If the OpenCL kernel is returning bad work it will never be sent to the server, and instead you will get "Unusual behavior from OpenCL. Hardware problem?"

That said, changes to the python portion of a Phoenix kernel can increase stale shares if badly implemented. (see: FASTLOOP excessive stales with high aggression in older versions of Phoenix)
87  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 14, 2011, 03:25:23 AM
The rewrite for the RPC protocol is finished, and has been uploaded to the SVN.

It works fine in my testing, but more feedback would be great before pushing this as a new version. This SHOULD definitively fix the idle problem, since that was related to the old RPCProtocol.
88  Bitcoin / Mining software (miners) / Re: [6 BTC bounty] New RPCProtocol for Phoenix on: July 14, 2011, 03:13:24 AM
Okay I've fixed your code so that it submits shares correctly, tested against eligius. Here are the changes:

Line 82 and 83 changed to:

Code:
        self.postdata = {"method": 'getwork', 'id': 1}
        self.headers = {"User-Agent": USER_AGENT, "Authorization": 'Basic ' + b64encode('%s:%s' % (url.username, url.password)), "Content-Type": 'application/json'}

Changed the id to 1. I doubt it makes a difference, but Phoenix uses 1 normally.
Added a Content-Type header, which is necessary for submitting work, but not getting work ... not sure why. That's just how the pool operates I guess.


Line 290:

Code:
        d = self.sendWork(result.encode('hex'))

You already wrap the data in an array, so that wasn't necessary, and we need to hex the whole result, not just the first byte.

And that's it! I have no tested if this solves the idle problem. Someone else who experiences the idle problem will probably have to test it out for an extended period of time to see if your code fixes it.

Nice work! With these changes I was able to finish a complete RPCProtocol including long polling. Let me know what address you want payment sent to.
89  Bitcoin / Mining software (miners) / Re: [6 BTC bounty] New RPCProtocol for Phoenix on: July 14, 2011, 01:27:36 AM
Okay so, given your code, you do this for sending work:

Code:
d = threads.deferToThread(self.getwork, self.sendConnection, data)

Which means that it actually calls getwork. I guess you didn't implement a submitwork function and just used that as a placeholder?

EDIT: I take that back; getwork should be compatible with doing submitwork requests, because of the data parameter.


I don't know Phoenix's code well enough to immediately work on it myself. Seems overly complicated, compared to just having two threads (mining thread and network thread) and two Queues (workQueue and resultsQueue). I actually moved away from Phoenix because of the idle issues, after I hacked phatk into poclbm. poclbm's code is quite simple and indeed uses the two threads with Queues architecture.

I don't like how poclbm works, since it sends and recieves work in the same thread. This means that if sending results stalls for even a few seconds, the miner is unable to get more work. This is made worse by the fact that poclbm lacks a queue, so it doesn't have a buffer of work for when this occurs.

This is one of the main reasons I decided to make another miner.
90  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 13, 2011, 04:04:15 PM
Nothing can be done on my end. For Windows if you have more than 1 ATI GPU installed each instance will peg one CPU core at 100%. There is some stupid event loop in ATI's driver. The best way to minimize the problem is to change the process affinity so that all the instances run on the same CPU core. This doesn't reduce hashrate at all.
Well, on my system it goes like this:
 1% CPU with AGGRESSION=9
17% CPU with AGGRESSION=10
33% CPU with AGGRESSION=11

This is with an Athlon 64 X2 6000+, one 6870 card and Catalyst 11.6/SDK 2.4

Well, I have no idea what's going on there. If you were having the problem described above your CPU load would be pegged at 50% (1 core out of 2 at 100%) regardless of miner settings. I don't know how it can end up using more CPU at higher aggression, since there are fewer kernel executions per second. On miners without the 100% problem the most CPU usage I have seen is 2-3%
91  Bitcoin / Mining software (miners) / Re: Lots of rejected shares. on: July 13, 2011, 03:56:09 PM
Are you mining on a pool with long polling?

If not, then that explains things. Phoenix doesn't have an askrate by default, so without long polling slow miners end up wasting a ton of time on stale work. The fix is to alter the command line to use an askrate.

example:

-u http://name:password@pool.com:8332/;askrate=10

This would set an askrate of 10 seconds.

I'm not sure how to do this in GUIminer though.
92  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-11 on: July 13, 2011, 08:41:00 AM
>I modified the shipping phatk Kernel from Phoenix 1.50. I now get round about 9-10 MHash/s more on my 5830 (up >from 310 to 319/320)!

I would really like to replicate this. Currently getting 310 Mh with 2.1 + 11.5 with bitless Ma() changes. Using the 7-11 I only get a small jump to 311. Can you share the config you use? sdk/driver version etc Thanks.


That might be tough since phatk doesn't work very well on older SDK versions. It was designed to be used with SDK 2.4, and on 2.1 I get better results with poclbm. The Ma() changes also apply to poclbm, so you won't see a gain there.
93  Bitcoin / Mining software (miners) / Re: [6 BTC bounty] New RPCProtocol for Phoenix on: July 13, 2011, 08:34:24 AM
Quote
So I decided to rewrite the RPC code, without using the Twisted.web library. I think most of the issues with the current RPC protocol are due to the hacked-in support for keep-alive.
Keep Alive is only used for the Long Polling connections, as far as I know. So, do you suspect that whatever hack Phoenix uses to enable Keep Alive is also interfering with getwork requests and submissions? Or is Long Polling the only issue?

I'm just curious and trying to flesh out more information in this thread.

The keep-alive connections are required for stable operation on some pools due to anti-DDoS protection. Without keep-alive the miner makes a new connection for each getwork() as opposed to re-using the existing one. A good example is Slush's pool, which many users were having problems with prior to adding keep-alive. The current RPCProtocol implementation uses the Twisted.web library, which does not support keep-alive. CFSworks "hacked-in" keep-alive support for Twisted.web so that we could continue to use it. However, I suspect that the idle issues people have been having with Phoenix are caused by a bug in this modification. All my miners run through MMP and I have yet to see a single idle problem, which eliminates the rest of the components as the source of the problem.

Basically, what I want is a new RPCProtocol that doesn't use Twisted.web.
94  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 13, 2011, 08:25:56 AM
Yep, it's pretty bad. 50% cpu usage per GPU. Something is seriously wrong.

Wow I checked this for my system (Phenom II X6 / Win7 x64 SP1) and Phoenix 1.5 eats one FULL CPU core per instance running (2 GPUs - 2 Cores eaten).
I downclock the cores to 800 MHz each, for Mining so one could think, if I raise the core freq. it will only use 1 core for 2 or more cards. No it eats one core and it doesn't matter, if it's clocked at 800 MHz or 3200 MHz, THAT IS crazy.

Jedi, is there any explanation for this, can we help to track the issue down!?

Dia

Nothing can be done on my end. For Windows if you have more than 1 ATI GPU installed each instance will peg one CPU core at 100%. There is some stupid event loop in ATI's driver. The best way to minimize the problem is to change the process affinity so that all the instances run on the same CPU core. This doesn't reduce hashrate at all.
95  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-11 on: July 12, 2011, 06:34:48 PM

Stales have nothing to do with GPU errors in Phoenix. All results returned by the GPU are verified before being sent to the server, which means if the kernel finds invalid shares you will get "Unexpected behavior from OpenCL. Hardware problem?" instead of the share being submitted. If you are not getting any of these errors there is NO WAY a kernel change can affect the number of stale shares. It might affect the total number of shares submitted in a given time period, but every share sent to the server by Phoenix is verified to be H == 0 on the CPU beforehand.

Thanks for clarification! Good to know, this was new for me.

Dia

Thanks for the heads up. I am running 4 5830s on 1 box clocked at 950/300 pointed at bitcoins.lc. It seems the stale count went up for me, didn't mean to blame you or anything just saying that was what happened. I'lll look into on the pool end though.

My post was mainly intended to clarify that stale shares are not a good measurement for kernel changes.

A much more reliable test would be to count the total number of shares submitted over a long period (say 24 hours or so) This includes stales, since the goal is to test how many shares the kernel finds, not how many the server accepts. If this number is higher than without the kernel modifications, you know that it's helping.
96  Bitcoin / Mining software (miners) / [Claimed - 6 BTC bounty] New RPCProtocol for Phoenix on: July 12, 2011, 06:14:27 PM
For the past week I have been working on a new RPC implementation for Phoenix since the current one has several issues I have not been able to fix. It doesn't help matters that the original RPC code author, CFSworks, has been MIA for awhile now.

So I decided to rewrite the RPC code, without using the Twisted.web library. I think most of the issues with the current RPC protocol are due to the hacked-in support for keep-alive.

Anyway, what I have right now is basically an adaption of poclbm's RPC code to Phoenix's interface. It makes use of the Twisted library, but only for handling threads/deferreds.

The 6 BTC bounty will go to whoever can write code that meets the requirements below. You can use what I have or write it from scratch, so long as it meets the requirements. The current code successfully connects and gets work, but it doesn't correctly send shares back. Obviously the code must be distributed under the X11 license like the rest of Phoenix. The bounty is payable immediately to the address of your choice once I can confirm that the code meets the requirements.

Requirements:
1. Calls to requestWork() and sendResult() must not block while sending/receiving requests from the RPC server. (these don't need to be thread-safe, they are always called from the main thread)
2. For sent work, a boolean must be returned to the caller of sendResult() indicating accepted/rejected.
3. Sending and receiving work should use separate connections. (but only 1 each, to keep pool load down)
4. Sending and receiving work must not block each other.

Existing code:
http://xp-dev.com/svn/phoenix-miner/branches/NewRPC/RPCProtocol.py

Networking code isn't a strong point of mine, and I just don't have the time to do this myself.
97  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-11 on: July 12, 2011, 03:18:25 PM
I was getting only .01% stales, with your patch I have an increase of 10mhash on average with my 5830 ( 295->305) but my stale count is now around 3-4%.....

Perhaps the kernel pushes your card harder and it generates errors. But could be the pool, driver and so on, like Vince said.

Dia

Stales have nothing to do with GPU errors in Phoenix. All results returned by the GPU are verified before being sent to the server, which means if the kernel finds invalid shares you will get "Unexpected behavior from OpenCL. Hardware problem?" instead of the share being submitted. If you are not getting any of these errors there is NO WAY a kernel change can affect the number of stale shares. It might affect the total number of shares submitted in a given time period, but every share sent to the server by Phoenix is verified to be H == 0 on the CPU beforehand.
98  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-06 on: July 06, 2011, 08:53:03 PM
I'm sorry to hear that ... what are the error messages you get with 2.1? I only tried with 2.4 and will test only on 2.4 and later SDKs by myself. Buf If you give me a hint I can try to fix it.

Dia

Don't worry about it.  The improvements for the SDK 2.4 users are clear and I'm impressed that you've managed to close the gap between 2.4 and 2.1 as much as you have.

I don't know how to get detailed error messages from phatk.  When I use SDK 2.1 and your latest kernel I run the command
python phoenix.py -u http://<user>:<pass>@<host>:<port>/ -a 1 -q 1 -k phatk VECTORS BFI_INT FASTLOOP=false AGGRESSION=14 WORKSIZE=256 DEVICE=1
and get
[<date> <time>] FATAL kernel error: Failed to load OpenCL kernel!

If I try the same with the previous version of your kernel everything works happily.  I wish I had more details for you but I just don't know how to get them.


If Phoenix would allow to output the OpenCL compiler build log we could get an idea what's wrong. Perhaps jedi95 reads here and takes this as a suggestion Cheesy.
Perhaps I can take the lead with 2.4 and newer versions of my kernel, but for now I have no huge optimization ideas ... (but I'm thinking about it right now ^^).

Dia

There is no point trying to run phatk on pre-2.4 SDK versions. It will just end up being slower than the poclbm kernel.

For mining I see only 2 real options:
SDK 2.1 with poclbm
SDK 2.4 with phatk

2.2 is slower than 2.1 on poclbm and doesn't work well with phatk either.
2.3 is even slower than 2.2 on poclbm, but all I know with phatk is that it's slower than with 2.4

Anyway, getting the output from the compiler is very simple. You just need to comment out the try/except block surrounding self.loadKernel().
99  Bitcoin / Mining software (miners) / Re: further improved phatk OpenCL Kernel (> 2% increase) for Phoenix - 2011-07-03 on: July 05, 2011, 03:50:18 PM
i tried it on one of my 3 x 6990 mining rig - normally using poclbm with the phatk per GPU 408 MH/s - with your kernel per GPU 407 MH/s

This isn't exactly a fair comparison since phatk was specifically targeted at VLIW5 GPUs on SDK 2.4. A better comparison would be against phatk without this modification.
100  Bitcoin / Mining software (miners) / Re: [MINER] Phoenix - New efficient, fast, modular miner **BFI_INT support!** on: July 01, 2011, 09:36:17 PM
Make sure you apply this fix if you haven't already:

http://forum.bitcoin.org/index.php?topic=23067.0

6% performance increase for me Cheesy

This has been on the SVN since Monday, and since kernels are not part of the compiled binary I'm not planning another release until I finish the RPC re-write.
Pages: « 1 2 3 4 [5] 6 7 8 9 10 11 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!