Phoenix 1 is no longer in development, please use Phoenix 2:https://bitcointalk.org/index.php?topic=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: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.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