Phoenix 1 is no longer in development, please use Phoenix 2:https://bitcointalksearch.org/topic/phoenix-2-miner-v200-75786FeaturesHere'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:
[email protected]: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:
[email protected]: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.5Windows binariesSource code/Linux release (requires Python, Twisted, and PyOpenCL)
GitHub:
https://github.com/jedi95/Phoenix-MinerDonations
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 newerNOTE: 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 threadMMP protocol specificationsphatk/phatk2 kernel threadDiapolo's modified phatk kernel