Bitcoin Forum
February 08, 2025, 05:28:40 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1]
1  Bitcoin / Mining software (miners) / Phoenix 2 Miner v2.0.0 on: April 07, 2012, 08:43:08 AM
Features

  • BFI_INT support - Improves performance by 5-20% on supported GPUs
  • Efficient - Phoenix 2 doesn't discard any work unless it is invalid.
  • X-Roll-NTime support - Reduces load on pool servers by generating more work locally.
  • Free, open-source software - Phoenix 2 is available under the X11 license, and written in (fairly) well-documented and commented Python.
  • Modular kernels - If someone releases a more efficient kernel for our miner, it's as simple as dropping in the new kernel and using it.
  • Multiple device support - A single Phoenix 2 instance can mine on all the hardware in the system.
  • Hardware autodetect - Phoenix 2 can automatically detect and configure hardware.
  • RPC interface - Phoenix 2 can be monitored or controlled remotely using the RPC interface.
  • Config file - All user settings are stored in a simple config file.
  • Backup pool support - You can specify any number of backup pools in the config file
  • Supports RPC w/LP and MMP


Device autodetect

Phoenix 2 can automatically detect and configure all supported devices in the system. This can be configured via the global config option.

Autodetect can be specified by device class. With the default kernels Phoenix 2 support 3 classes of device: OpenCL (cl), CPU (cpu), and CUDA (cuda)

You can set the autodetect to only use certain devices. For example, the following setting will enable autodetect on all OpenCL devices except those which are CPUs or Nvidia GPUs (CUDA)
autodetect = +cl -cpu -cuda

Each device is given a unique device ID. For OpenCL the format works like this:
[class:platform:device]

So [cl:0:0] refers to OpenCL device 0 of platform 0.

[cpu:0] Is a generic identifier for the CPU.


JSON-RPC interface

Phoenix 2 has a built-in JSON-RPC server that allows remote monitoring and control of the miner. In the future this will be expanded to include a web interface.

  • bind - IP to bind the RPC server to.
  • disabled - Disables the RPC server.
  • logbuffer - The number of logs to return in the getlogs() call.
  • password - Password for the RPC server. Default is phoenix.
  • port - Port to use for the RPC server. Default is 7780.
  • root - Root directory for the web server.


Global settings

  • autodetect - Sets which classes of devices should be automatically detected.
  • backend - Sets the backend server. EX: http://user:password@example.com:8332
  • backups - Sets the backup servers. EX: http://user2:password2@server2.com:8332 http://bitcoin:bitcoin@localhost:8332
  • failback - Sets the interval to check the main server when on a backup server.
  • logfile - Enable this option to log to a file.
  • queuesize - Target/maximum size of queue.
  • queuedelay - Seconds before work expires to request more work.
  • ratesamples - Number of samples to average for hashrate reporting.
  • statusinterval - Seconds between status bar updates.
  • verbose - Enables verbose logging.


Global device settings

  • autoconfigure - Enables automatic configuration for the selected device.
  • disabled - Disables mining on this device.
  • kernel - Specifies which kernel to use for this device.
  • name - Sets the name to use for this device.
  • start_undetected - Sets if the kernel should start even if the device is not detected.


OpenCL/phatk2 Kernel settings

  • aggression - Sets the aggression. This allows you to control the kernel execution time to improve hashrate or reduce interface lag.
  • bfi_int - Enables the BFI_INT instruction on this device. (only supported by ATI 5xxx and 6xxx)
  • fastloop - Enables fast internal loop. This improves hashrate at lower aggression levels without introducing any additional interface lag.
  • goffset - Enables OpenCL 1.1 global offset. This can improve hashrate on supported devices.(does nothing for phatk2)
  • vectors - Enables 2-way vectors. (use this or vectors4, not both)
  • vectors4 - Enables 4-way vectors. (use this or vectors, not both)
  • worksize - Sets the worksize. Tweaking this setting may improve performance.


Download

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

GitHub:
https://github.com/phoenix2/phoenix


Donations

1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU


Tools
OpenCL info script


Links
Phoenix 1.x
Multiminer thread
MMP protocol specifications
phatk/phatk2 kernel thread
Diapolo's diakgcn kernel
2  Bitcoin / Mining software (miners) / [Claimed - 6 BTC bounty] New RPCProtocol for Phoenix on: July 12, 2011, 06:14:27 PM
For the past week I have been working on a new RPC implementation for Phoenix since the current one has several issues I have not been able to fix. It doesn't help matters that the original RPC code author, CFSworks, has been MIA for awhile now.

So I decided to rewrite the RPC code, without using the Twisted.web library. I think most of the issues with the current RPC protocol are due to the hacked-in support for keep-alive.

Anyway, what I have right now is basically an adaption of poclbm's RPC code to Phoenix's interface. It makes use of the Twisted library, but only for handling threads/deferreds.

The 6 BTC bounty will go to whoever can write code that meets the requirements below. You can use what I have or write it from scratch, so long as it meets the requirements. The current code successfully connects and gets work, but it doesn't correctly send shares back. Obviously the code must be distributed under the X11 license like the rest of Phoenix. The bounty is payable immediately to the address of your choice once I can confirm that the code meets the requirements.

Requirements:
1. Calls to requestWork() and sendResult() must not block while sending/receiving requests from the RPC server. (these don't need to be thread-safe, they are always called from the main thread)
2. For sent work, a boolean must be returned to the caller of sendResult() indicating accepted/rejected.
3. Sending and receiving work should use separate connections. (but only 1 each, to keep pool load down)
4. Sending and receiving work must not block each other.

Existing code:
http://xp-dev.com/svn/phoenix-miner/branches/NewRPC/RPCProtocol.py

Networking code isn't a strong point of mine, and I just don't have the time to do this myself.
3  Other / Obsolete (buying) / WTB: ATI 5870 reference cooler on: May 09, 2011, 06:59:24 AM
***Item already bought***

The fan in one of my 5870s died and I need a replacement. I am only interested in the reference cooler, no aftermarket stuff please. I would also be willing to buy a broken card with a working cooler.
 
To make sure it's clear what I am looking for, I mean this style of cooler:
4  Bitcoin / Mining software (miners) / Phoenix - Efficient, fast, modular miner on: April 25, 2011, 01:18:28 AM
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
Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!