Foreverrising Blog

June 23, 2011

The Phoenix Miner Explained (BitCoin GPU Mining)

This article assumes first off that you are setup to mine. If you are not setup, then see either the articles for BitCoin mining for Windows, or Ubuntu. They are pretty universal. You’ll need the latest drivers and latest version of AMD APP SDK installed.

Now you’ll need to download the Phoenix miner, so download it for either Windows or for Linux. Unpack it to where ever you want and then get to mining!

Yes, it’s pretty simple, but the flags, or switches, are what matters the most (aside from the GPUs clocks). [FYI, you should be able to use MSI Afterburner on Windows to lower the memory clock to its lowest available setting, and the core clock to the maximum. That’s as much as I mess with the clocks.]

A quick description of the flags comes from BitCoin Forum thread I’ve added some comments in italics, and these are for both Windows and Linux, and are CaSe SenSiTive:

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://)

For use
-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.

You can use the poclbm, but I would recommend using the phatk kernel.

Poclbm kernel 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.

Use VECTORS for an AMD card

AGGRESSION=LEVEL – Sets the aggression. This allows you to control the kernel execution time to improve hashrate or reduce interface lag. Default is 4.
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 disabled.

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 kernel uses the same command line options

Recommended settings

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

Non-dedicated (use these settings if you use the computer while mining)

Dedicated miner

Use the phatk kernel if you are using a 5XXX series card! It will increase hash speeds noticeably. Replace poclbm with phatk.

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

Non-dedicated (use these settings if you use the computer while mining)

Dedicated miner

BFI_INT only supported on 5xxx and newer

NOTE: For optimal performance use either SDK 2.1 with poclbm or SDK 2.4 with phatk. Using phatk on SDK versions other than 2.4 will likely reduce performance. Using phatk on Nvidia GPUs will also reduce performance.

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

For windows, you have a couple of options for making your mining easier. Usually, for many Windows users, people do not want to mess with the command prompt. For those of us who used computers before graphical user interfaces were there, there is nothing new. Here’s what to do:

Open Notepad (not WordPad), then enter:

cd “c:\[path to the directory which contains phoneix.exe]\”
start phoenix.exe -u DEVICE=0 -k phatk AGGRESSION=12 BFI_INT VECTORS -q 2 WORKSIZE=128

The hit File- Save as- and select the drop down box and switch it from text files to all files. Name the file something simple, like mine.bat (not mine.txt, we want a .bat, or batch file).

Now, where you put the file is going to dictate how you can run it. I put the file into my c:\windows\system32\ folder (for Windows XP), so when I want to mine I can either (1) select Run from the start menu and type “mine” without the quotes, or I could (2) right-click on the mine.bat file in the windows\system32 folder and select Send To> Desktop (create shortcut). With a shortcut on the desktop, all you would need to do is double-click on it.

The other thing you may want to do is to create three different mine.bat files; one mine_low.bat, one mine.bat, and one mine_full.bat. Each with settings which mine with minimal resources (low AGGRESSION number) for while you’re surfing or whatever, and one medium, and one to mine with full computer resources. Then you can mine at different levels depending on if and how you want to use your computer.

If you’re using Ubuntu (because it’s just better), you’ll want to make a couple .sh scripts.

Open terminal, then type


Hit yes, then paste (editing for your own directory and desired clock/fanspeed):

aticonfig –pplib-cmd ‘set fanspeed 0 100’
aticonfig –odsc=1000,1050
cd /[path to]/phoenix-1.50

Then save the file and back in the terminal type

chmod +x

And then to execute, in your home directory type:


So, what about the settings? Next I’ll show you the scripts I use to get the most out of my cards..

For my ATI Radeon HD 5770 (using max core clock/ min memory clock set with MSI Afterburner, with the latest Catalyst driver and AMD APP SDK 2.4 in Windows XP) I use:

cd “C:\[path to phoenix]\phoenix-1.50\”
start phoenix.exe -u DEVICE=0 -k phatk AGGRESSION=12 BFI_INT VECTORS WORKSIZE=128

For my ATI Radeon HD 6870 (using the latest Catalyst drivers and AMD APP SDK 2.4 and aticonfig set clocks in Ubuntu 10.10 fully updated) I use:

aticonfig –pplib-cmd ‘set fanspeed 0 100’
aticonfig –odsc=1000,1050
cd /[path to home]/phoenix-1.50

Happy and productive mining! Be efficient.

Erock – 1HXrbVT3WRqk6rHTPKKJ9ppoFbsYjmjTqX (Donations if you like it)

Blog at