Bitcoin Forum
April 19, 2024, 11:17:25 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 57 »
  Print  
Author Topic: Phoenix - Efficient, fast, modular miner  (Read 760546 times)
jedi95 (OP)
Full Member
***
Offline Offline

Activity: 219
Merit: 120


View Profile
April 25, 2011, 01:18:28 AM
Last edit: April 07, 2012, 08:48:33 AM by jedi95
Merited by ABCbits (9)
 #1

Phoenix 1 is no longer in development, please use Phoenix 2:
https://bitcointalk.org/index.php?topic=75786

Features

Here's what it has to offer:
  • It's fast - Phoenix implements the BFI_INT instruction, which can improve performance by 5-20%
  • It's as efficient as theoretically possible (that is, it doesn't discard any work unless that work would be invalid)
  • It's free, open-source software - It's available under the X11 license, and written in (fairly) well-documented and commented Python.
  • It loads kernels dynamically - If someone releases a more efficient kernel for our miner, it's as simple as dropping in the new kernel and using it.
  • It has a simple command-line interface - Obviously "simple" is subjective, but it's pretty easy to get started using.
  • It supports RPC w/LP and MMP, and provides plenty of stats.
  • It supports automatic failover by specifying a backup server with -b
-

Example usage

To connect to a pool such as Slush's using our miner and Phateus's phatk2 kernel, you would use a command line such as:
phoenix -u http://USERNAME.WORKERNAME:PASSWORD@api2.bitcoin.cz:8332/ -k phatk2 DEVICE=0 VECTORS BFI_INT AGGRESSION=4
...where DEVICE=0 instructs it to use OpenCL device #0, VECTORS has it run 2-way vectors, BFI_INT enables the BFI_INT instruction in newer ATI GPUs, and AGGRESSION can be used to tweak execution size (similar to poclbm's -f)

If you want to tweak the askrate, (since the default is 10 without LP, or none with LP enabled servers) you can use something like this:
phoenix -u http://USERNAME.WORKERNAME:PASSWORD@api2.bitcoin.cz:8332/;askrate=5 -k phatk2 DEVICE=0 VECTORS BFI_INT AGGRESSION=4

This should only be used on pools that don't support RPC LP or MMP.


Download

Latest version: 1.7.5
Windows binaries
Source code/Linux release (requires Python, Twisted, and PyOpenCL)

GitHub:
https://github.com/jedi95/Phoenix-Miner


Donations

1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU


Phoenix interface
The hashrate display is an average using the most recent 16 samples by default. (configure with -a) It also automatically scales the units depending on the rate.

Accepted and rejected share counts should be pretty self-explanatory.

The protocol type indicates the type of connection:
  • RPC - A standard RPC server, such as Slush's pool or bitcoind
  • RPC (+LP) - An RPC server supporting long polling, such as deepbit.net or bitcoinpool.com
  • MMP - An MMP server, such as Multiminer.

The block change notification only appears on RPC servers that implement the X-Blocknum header and MMP servers that send the BLOCK message.
NOTE: RPC servers with long poll have a different notification.


Command line options

Phoenix arguments

 -v (verbose) - Logs additional debug messages to the console. Default is disabled.
 -q (queue size) - Sets the size of the internal work queue. Default is 1. This shouldn't need to be changed for most GPU miners.
 -a (average samples) - Sets the number of samples to use for hashrate averaging. Default is 10. You might want to lower this for longer kernel execution times. (high aggression)
 -u (URL) - Sets the URL of the work server. The correct protocol is selected based on the prefix (RPC for http://, MMP for mmp://)
 -b (Backup URL) - Sets the URL of the backup work server. The backup server will be used if the primary server is down. Works exactly like -u.
 -k (kernel) - Selects which kernel to load. Default is poclbm. All other arguments MUST come before specifying a kernel. Any arguments after -k are sent to the kernel.

Poclbm/phatk/phatk2 kernel arguments

 PLATFORM=ID - Sets the OpenCL platform to use. This isn't needed if you only have a single platform.
 DEVICE=ID - Sets the OpenCL device to use. This isn't needed if you only have a single device.
 VECTORS - Enables 2-way vectors. This may improve hashrate if enabled, but it can be slower on some hardware. Default is disabled.
 AGGRESSION=LEVEL - Sets the aggression. This allows you to control the kernel execution time to improve hashrate or reduce interface lag. Default is 4 (poclbm), 5 (phatk/phatk2).
 WORKSIZE=SIZE - Sets the worksize. Tweaking this setting may improve performance similar to poclbm's -w flag. Default is the maximum supported by the device.
 FASTLOOP - Enables fast internal loop. This improves hashrate at lower aggression levels without introducing any additional interface lag. Default is enabled.
 BFI_INT - Enables the BFI_INT instruction on newer AMD/ATI GPUs. This significantly improves hashrate. Default is enabled on phatk/phatk2, disabled on poclbm.

NOTE 1: Using FASTLOOP at higher AGGRESSION won't improve performance. However, it no longer results in stale shares. To disable FASTLOOP use FASTLOOP=false.
NOTE 2: The phatk and phatk2 kernels don't work well Nvidia GPUs. Use poclbm kernel instead.


Recommended settings

High-end ATI cards (58xx, 5970, 68xx, 69xx)

Non-dedicated (use these settings if you use the computer while mining)
-k phatk2 VECTORS BFI_INT AGGRESSION=7

Dedicated miner
-k phatk2 VECTORS BFI_INT FASTLOOP=false AGGRESSION=11


Midrange and older ATI cards (48xx, 57xx, ect)

Non-dedicated (use these settings if you use the computer while mining)
-k phatk2 VECTORS BFI_INT AGGRESSION=5

Dedicated miner
-k phatk2 VECTORS BFI_INT FASTLOOP=false AGGRESSION=9

BFI_INT only supported on 5xxx and newer
NOTE: For optimal performance use either SDK 2.1 with poclbm or SDK 2.4 with phatk2. Using phatk/phatk2 on SDK versions other than 2.4 will likely reduce performance.

These settings are intended only as a starting point, and may not be optimal for your system configuration.


Links

Multiminer thread
MMP protocol specifications
phatk/phatk2 kernel thread
Diapolo's modified phatk kernel

Phoenix Miner developer

Donations appreciated at:
1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
1713525445
Hero Member
*
Offline Offline

Posts: 1713525445

View Profile Personal Message (Offline)

Ignore
1713525445
Reply with quote  #2

1713525445
Report to moderator
1713525445
Hero Member
*
Offline Offline

Posts: 1713525445

View Profile Personal Message (Offline)

Ignore
1713525445
Reply with quote  #2

1713525445
Report to moderator
The network tries to produce one block per 10 minutes. It does this by automatically adjusting how difficult it is to produce blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713525445
Hero Member
*
Offline Offline

Posts: 1713525445

View Profile Personal Message (Offline)

Ignore
1713525445
Reply with quote  #2

1713525445
Report to moderator
1713525445
Hero Member
*
Offline Offline

Posts: 1713525445

View Profile Personal Message (Offline)

Ignore
1713525445
Reply with quote  #2

1713525445
Report to moderator
xenon481
Sr. Member
****
Offline Offline

Activity: 406
Merit: 250



View Profile
April 25, 2011, 01:36:47 AM
 #2

This runs far far slower than poclbm on my nvidia GTX 280.

poclbm = ~50MHash/sec
phoenix = ~32MHash/sec

Tips Appreciated: 171TQ2wJg7bxj2q68VNibU75YZB22b7ZDr
jedi95 (OP)
Full Member
***
Offline Offline

Activity: 219
Merit: 120


View Profile
April 25, 2011, 01:39:34 AM
 #3

This runs far far slower than poclbm on my nvidia GTX 280.

poclbm = ~50MHash/sec
phoenix = ~32MHash/sec

That's probably the result of our changes to the poclbm OpenCL kernel. The speed tests were run on an ATI 5870. Also, you may want to try with/without VECTORS to see if it helps.

What aggression and -f values were you using for each?

Phoenix Miner developer

Donations appreciated at:
1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
kindle
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
April 25, 2011, 01:55:45 AM
 #4

Hi does this support solo mining?

xenon481
Sr. Member
****
Offline Offline

Activity: 406
Merit: 250



View Profile
April 25, 2011, 01:57:59 AM
 #5

This runs far far slower than poclbm on my nvidia GTX 280.

poclbm = ~50MHash/sec
phoenix = ~32MHash/sec

That's probably the result of our changes to the poclbm OpenCL kernel. The speed tests were run on an ATI 5870. Also, you may want to try with/without VECTORS to see if it helps.

What aggression and -f values were you using for each?

nvidia GTX 280

poclbm
----------------------------
Vectors off / -f 60 = ~50MH/s desktop lag barely noticeable


phoenix
----------------------------
Vectors on / Aggression Default / FastLoop off = ~29.5MH/s
Vectors off / Aggression Default / FastLoop off = ~32MH/s
Vectors off / Aggression Default / FastLoop on = ~41MH/s
Vectors off / Aggression 3 / FastLoop on = ~46MH/s desktop lag barely noticeable
Vectors off / Aggression 4 / FastLoop on = ~47.5MH/s with noticeable desktop lag
Vectors off / Aggression 5 / FastLoop on = ~49.5MH/s but quite a bit of desktop lag
Vectors off / Aggression 7 / FastLoop off = ~50MH/s but extreme desktop lag
Vectors off / Aggression 7 / FastLoop on = ~51MH/s but extreme desktop lag

Tips Appreciated: 171TQ2wJg7bxj2q68VNibU75YZB22b7ZDr
eleuthria
Legendary
*
Offline Offline

Activity: 1750
Merit: 1007



View Profile
April 25, 2011, 02:01:49 AM
 #6

Comparable to poclbm.py in Linux with my 5870s (using the H.x, H.y, and H == 0 mod) when using aggression 12, compared to poclbm.py with -f1.

Are you using 1024 kHash = 1 mHash, or 1000?

RIP BTC Guild, April 2011 - June 2015
jedi95 (OP)
Full Member
***
Offline Offline

Activity: 219
Merit: 120


View Profile
April 25, 2011, 02:04:23 AM
 #7

Comparable to poclbm.py in Linux with my 5870s (using the H.x, H.y, and H == 0 mod) when using aggression 12, compared to poclbm.py with -f1.

Are you using 1024 kHash = 1 mHash, or 1000?

1000, so the rates should be directly comparable.

Phoenix Miner developer

Donations appreciated at:
1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
eleuthria
Legendary
*
Offline Offline

Activity: 1750
Merit: 1007



View Profile
April 25, 2011, 02:05:12 AM
 #8

In that case it's slightly slower (~2 mHash/sec) using Aggression 12.  It's slightly faster than base poclbm, but slower than the modified poclbm with the H.x, H.y, and H==0 modification.

RIP BTC Guild, April 2011 - June 2015
shivansps
Hero Member
*****
Offline Offline

Activity: 1134
Merit: 502


Vave.com - Crypto Casino


View Profile
April 25, 2011, 02:08:24 AM
 #9


nevermind.

mskwik
Full Member
***
Offline Offline

Activity: 125
Merit: 100


View Profile
April 25, 2011, 02:27:25 AM
 #10

Code looks very nice, unfortunately I get the same issues as with poclbm using it.  Hashrate is roughly as expected, but CPU usage is pegged at 100% on one core while it is running.  Guess I'll be sticking with Diablominer which also gives roughly the same rate without the CPU usage.

This is a 5770 running on Gentoo, hashrate is in the ~165-170M range depending on exact settings.

dbitcoin
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500

BTCDig - mining pool


View Profile WWW
April 25, 2011, 02:28:15 AM
 #11

Long polling support not functional.
You use old and stupid restriction: LP path with same domain and port.
There is no strict description in LP first draft specification about this.
But this is already discussed and implemented in miners.

http://domain.com:port/path/

Full URL Supported by:
poclbm miner from beta1 vesrion
ufasoft SSE2 miner
git version of jgarzik cpuminer



BTCDig - mining pool (Stratum, VarDiff, DGM, SSL, JSON API)
BitLex
Hero Member
*****
Offline Offline

Activity: 532
Merit: 505


View Profile
April 25, 2011, 02:33:25 AM
Last edit: April 25, 2011, 02:53:20 AM by BitLex
 #12

just did a quick test on XP Cat10.12/SDK2.2

HD5570 @750MHz
poclbm -f 5 -w 128 -v gives ~72Mhash/s
phoenix VECTORS AGGRESSION=10 ~68.5Mhash/s

HD5850 @775MHz
poclbm -f 40 -w 128 -v gives ~262Mhash/s
phoenix VECTORS AGGRESSION=10 ~257.5Mhash/s

not really faster it seems,
setting Aggro higher on either card just makes the system unusable, but doesn't improve speed much.




CFSworks
Member
**
Offline Offline

Activity: 63
Merit: 10


View Profile
April 25, 2011, 02:40:17 AM
 #13

Long polling support not functional.
You use old and stupid restriction: LP path with same domain and port.
There is no strict description in LP first draft specification about this.
But this is already discussed and implemented in miners.

http://domain.com:port/path/

Full URL Supported by:
poclbm miner from beta1 vesrion
ufasoft SSE2 miner
git version of jgarzik cpuminer

Oops, thanks for the heads up; I didn't know about that little detail, though I would have appreciated a less flamish way of letting me know.
Full-URL support will be included in the next release.

Phoenix Miner developer

PGP/GPG key: FC5461A3
Personal donations: 1Abq88sPz2MjH4Yi8yZVCbfu1ZXRSP7id5
bolapara
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
April 25, 2011, 02:44:22 AM
 #14

poclbm with vectors and f=1: 385MH/s
phoenix with vectors and agg=12: 377MH/s

5870
jedi95 (OP)
Full Member
***
Offline Offline

Activity: 219
Merit: 120


View Profile
April 25, 2011, 02:47:58 AM
 #15

We certainly appreciate everyone rushing to try it, and provide feedback. Thank you very much!

We know what the problem with speed is. Our test environment uses SDK 2.4, which didn't require a worksize since the default of 256 was providing the best results. We're adding a WORKSIZE option to the kernel right now, (an equivalent to poclbm's -w) that should help you tweak it a bit more for other SDK versions.

Thank you for your patience!

Phoenix Miner developer

Donations appreciated at:
1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
jedi95 (OP)
Full Member
***
Offline Offline

Activity: 219
Merit: 120


View Profile
April 25, 2011, 04:26:56 AM
 #16

Version 1.01 has been released.

Changes:
1. Fixed RPC LP to allow different domain and port.
2. Added WORKSIZE= kernel argument to tweak performance.
3. Other minor fixes to improve speed.

We are also working on a CUDA kernel to improve performance on Nvidia hardware.

Phoenix Miner developer

Donations appreciated at:
1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
bolapara
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
April 25, 2011, 05:17:16 AM
 #17

poclbm with f=1, ws=128: 385MH/s
phoenix 1.0 with agg=12: 377MH/s
phoenix 1.01 with agg=13 ws=128: 380MH/s

ubuntu 10.10, 5870, 2.1 sdk, vectors
dbitcoin
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500

BTCDig - mining pool


View Profile WWW
April 25, 2011, 05:27:40 AM
 #18

Version 1.01 has been released.

Changes:
1. Fixed RPC LP to allow different domain and port.
2. Added WORKSIZE= kernel argument to tweak performance.
3. Other minor fixes to improve speed.

We are also working on a CUDA kernel to improve performance on Nvidia hardware.

Very good.
Added to pool download page, support for long polling enabled.

BTCDig - mining pool (Stratum, VarDiff, DGM, SSL, JSON API)
M4v3R
Hero Member
*****
Offline Offline

Activity: 607
Merit: 500


View Profile
April 25, 2011, 06:32:24 AM
 #19

How should I use this with deepbit.net pool, where usernames are emails? The @ symbol in email conflicts with @ separator between user/password and hostname.
bolapara
Member
**
Offline Offline

Activity: 78
Merit: 10


View Profile
April 25, 2011, 06:33:47 AM
 #20

How should I use this with deepbit.net pool, where usernames are emails? The @ symbol in email conflicts with @ separator between user/password and hostname.

If you're in Linux just escape the @ in the username:

Code:
http://myself\@here.net:password@hostname.net

I don't use Windows so I have no clue there.
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 57 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!