>> (p.1)
    Author Topic: Phoenix - Efficient, fast, modular miner  (Read 761354 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://bt.irlbtc.com/view/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
Page 1
Viewing Page: 1