r4in
Newbie
Offline
Activity: 36
Merit: 0
|
|
July 07, 2011, 06:36:00 PM |
|
Hi all, I have found a serious bug in phoenix that I can reproduce with 2 different mining pcs i have: When the pool server is down and phoenix tries to reconnect a few times phoenix.exe will crash and the whole pc dies shortly after (=freeze, no bsod etc however) Im using standard catalyst 2.4 and no overclocking at all (4x 6870 @ 900/500) Thanks alot
|
|
|
|
gellimac
|
|
July 07, 2011, 08:26:17 PM |
|
hi
I use phoenix through GUIMiner (when I use phoenix in CMD it told me couldn't find kernel) but when I use phoenix it often disconnect for no reson and reconnect later. I run this option on 5850 on windows 7 64 bit : -v -k phatk VECTORS BFI_INT AGGRESSION=13 FASTLOOP=false WORKSIZE=256
Do you know what's wrong?
|
|
|
|
shivansps
|
|
July 08, 2011, 08:23:37 AM Last edit: July 08, 2011, 05:09:46 PM by shivansps |
|
i just did an small mod to the phoenix code, to export the hashrate to a plain text file... i did it to make remote monitoring easier. phoenix.py #!/usr/bin/python
# Copyright (C) 2011 by jedi95 <jedi95@gmail.com> and # CFSworks <CFSworks@gmail.com> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE.
import imp from sys import exit from twisted.internet import reactor from optparse import OptionParser
import minerutil from ConsoleLogger import ConsoleLogger from WorkQueue import WorkQueue from Miner import Miner
class CommandLineOptions(object): """Implements the Options interface for user-specified command-line arguments. """
def __init__(self): self.parsedSettings = None self.url = None
self.logger = None self.connection = None self.kernel = None self.queue = None self.logtotext = None
self.kernelOptions = {}
self._parse()
def _parse(self): parser = OptionParser(usage="%prog -u URL [-k kernel] [kernel params]") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="show debug messages") parser.add_option("-k", "--kernel", dest="kernel", default="poclbm", help="the name of the kernel to use") parser.add_option("-u", "--url", dest="url", default=None, help="the URL of the mining server to work for [REQUIRED]") parser.add_option("-q", "--queuesize", dest="queuesize", type="int", default=1, help="how many work units to keep queued at all times") parser.add_option("-a", "--avgsamples", dest="avgsamples", type="int", default=10, help="how many samples to use for hashrate average"), parser.add_option("-l", "--logtotext", dest="logtotext", default="none")
self.parsedSettings, args = parser.parse_args()
if self.parsedSettings.url is None: parser.print_usage() exit() else: self.url = self.parsedSettings.url
for arg in args: self._kernelOption(arg)
def getQueueSize(self): return self.parsedSettings.queuesize def getAvgSamples(self): return self.parsedSettings.avgsamples
def _kernelOption(self, arg): pair = arg.split('=',1) if len(pair) < 2: pair.append(None) var, value = tuple(pair) self.kernelOptions[var.upper()] = value
def makeLogger(self, requester, miner): if not self.logger: self.logger = ConsoleLogger(miner,self.parsedSettings.verbose,self.parsedSettings.logtotext) return self.logger
def makeConnection(self, requester): if not self.connection: try: self.connection = minerutil.openURL(self.url, requester) except ValueError, e: print(e) exit() return self.connection
def makeKernel(self, requester): if not self.kernel: module = self.parsedSettings.kernel try: file, filename, smt = imp.find_module(module, ['kernels']) except ImportError: print("Could not locate the specified kernel!") exit() kernelModule = imp.load_module(module, file, filename, smt) self.kernel = kernelModule.MiningKernel(requester) return self.kernel
def makeQueue(self, requester): if not self.queue: self.queue = WorkQueue(requester, self) return self.queue
if __name__ == '__main__': options = CommandLineOptions() miner = Miner() miner.start(options)
reactor.run() ConsoleLogger.py # Copyright (C) 2011 by jedi95 <jedi95@gmail.com> and # CFSworks <CFSworks@gmail.com> # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE.
import sys from time import time from datetime import datetime
def formatNumber(n): """Format a positive integer in a more readable fashion.""" if n < 0: raise ValueError('can only format positive integers') prefixes = 'KMGTP' whole = str(int(n)) decimal = '' i = 0 while len(whole) > 3: if i + 1 < len(prefixes): decimal = '.%s' % whole[-3:-1] whole = whole[:-3] i += 1 else: break return '%s%s %s' % (whole, decimal, prefixes[i])
class ConsoleLogger(object): """This class will handle printing messages to the console."""
TIME_FORMAT = '[%d/%m/%Y %H:%M:%S]'
UPDATE_TIME = 1.0
def __init__(self, miner, verbose=False, logtotext="none"): self.verbose = verbose self.miner = miner self.logtotext = logtotext self.lastUpdate = time() - 1 self.rate = 0 self.accepted = 0 self.invalid = 0 self.lineLength = 0 self.connectionType = None
def reportRate(self, rate, update=True): """Used to tell the logger the current Khash/sec.""" self.rate = rate if update: self.updateStatus()
def reportType(self, type): self.connectionType = type
def reportBlock(self, block): self.log('Currently on block: ' + str(block))
def reportFound(self, hash, accepted): if accepted: self.accepted += 1 else: self.invalid += 1
hexHash = hash[::-1] hexHash = hexHash[:8].encode('hex') if self.verbose: self.log('Result %s... %s' % (hexHash, 'accepted' if accepted else 'rejected')) else: self.log('Result: %s %s' % (hexHash[8:], 'accepted' if accepted else 'rejected'))
def reportMsg(self, message): self.log(('MSG: ' + message), True, True)
def reportConnected(self, connected): if connected: self.log('Connected to server') else: self.log('Disconnected from server')
def reportConnectionFailed(self): self.log('Failed to connect, retrying...')
def reportDebug(self, message): if self.verbose: self.log(message)
def updateStatus(self, force=False): #only update if last update was more than a second ago dt = time() - self.lastUpdate if force or dt > self.UPDATE_TIME: rate = self.rate if (not self.miner.idle) else 0 type = " [" + str(self.connectionType) + "]" if self.connectionType is not None else '' status = ( "[" + formatNumber(rate) + "hash/sec] " "[" + str(self.accepted) + " Accepted] " "[" + str(self.invalid) + " Rejected]" + type) self.say(status) if self.logtotext != "none": try: f = open(self.logtotext,"w") f.write(status) f.close() except IOError as e: print("({})".format(e)) self.lastUpdate = time()
def say(self, message, newLine=False, hideTimestamp=False): #add new line if requested if newLine: message += '\n' if hideTimestamp: timestamp = '' else: timestamp = datetime.now().strftime(self.TIME_FORMAT) + ' '
message = timestamp + message
#erase the previous line if self.lineLength > 0: sys.stdout.write('\b \b' * self.lineLength) sys.stdout.write(' ' * self.lineLength) sys.stdout.write('\b \b' * self.lineLength)
#print the line sys.stdout.write(message) sys.stdout.flush()
#cache the current line length if newLine: self.lineLength = 0 else: self.lineLength = len(message)
def log(self, message, update=True, hideTimestamp=False): self.say(message, True, hideTimestamp) if update: self.updateStatus(True) Added new command line argument: -l filename.txt What it does is to export "status(hashrate and other stats)" to a plain text file, in a single line for easier use. Like this: [400.31 Mhash/sec] [0 Accepted] [0 Rejected] [RPC] You can use routes too, like this -l /usr/hashrate.txt, but you going to need to run the miner with sudo. It seems to be working fine.
|
|
|
|
JaTochNietDan
Newbie
Offline
Activity: 29
Merit: 0
|
|
July 09, 2011, 01:39:22 AM |
|
[09/07/2011 02:36:59] Phoenix r101 starting... [09/07/2011 02:37:03] Connected to server [09/07/2011 02:37:03] Currently on block: 135403 [0 Khash/sec] [0 Accepted] [0 Rejected] [RPC] It never moves up in hashes....can anyone help? I'm running Ubuntu 10.10 with an ATI 5850 and using these parameters: -k poclbm DEVICE=1 VECTORS BFI_INT AGGRESSION=7 I ran it without the device parameter and it showed me a list of my devices, the second one which is ID 1 is displayed as Cypress which I assume is my ATI card? The first one is my processor. It does work when I select my processor as the device, although as expected it's extremely slow. Followed this tutorial exactly, except I didn't use 11.04 as I don't have access to it currently. Any suggestions besides updating to 11.04?
|
|
|
|
brunoshady
Sr. Member
Offline
Activity: 262
Merit: 250
Dubs Get
|
|
July 09, 2011, 02:51:58 AM |
|
[09/07/2011 02:36:59] Phoenix r101 starting... [09/07/2011 02:37:03] Connected to server [09/07/2011 02:37:03] Currently on block: 135403 [0 Khash/sec] [0 Accepted] [0 Rejected] [RPC] It never moves up in hashes....can anyone help? I'm running Ubuntu 10.10 with an ATI 5850 and using these parameters: -k poclbm DEVICE=1 VECTORS BFI_INT AGGRESSION=7 I ran it without the device parameter and it showed me a list of my devices, the second one which is ID 1 is displayed as Cypress which I assume is my ATI card? The first one is my processor. It does work when I select my processor as the device, although as expected it's extremely slow. Followed this tutorial exactly, except I didn't use 11.04 as I don't have access to it currently. Any suggestions besides updating to 11.04? try to remove vectors and BFI_INT and probably will work... I guess it's something wrong with your drivers, or your card doesnt support neither vectors or bfi_int
|
😆
|
|
|
JaTochNietDan
Newbie
Offline
Activity: 29
Merit: 0
|
|
July 09, 2011, 03:15:08 AM |
|
[09/07/2011 02:36:59] Phoenix r101 starting... [09/07/2011 02:37:03] Connected to server [09/07/2011 02:37:03] Currently on block: 135403 [0 Khash/sec] [0 Accepted] [0 Rejected] [RPC] It never moves up in hashes....can anyone help? I'm running Ubuntu 10.10 with an ATI 5850 and using these parameters: -k poclbm DEVICE=1 VECTORS BFI_INT AGGRESSION=7 I ran it without the device parameter and it showed me a list of my devices, the second one which is ID 1 is displayed as Cypress which I assume is my ATI card? The first one is my processor. It does work when I select my processor as the device, although as expected it's extremely slow. Followed this tutorial exactly, except I didn't use 11.04 as I don't have access to it currently. Any suggestions besides updating to 11.04? try to remove vectors and BFI_INT and probably will work... I guess it's something wrong with your drivers, or your card doesnt support neither vectors or bfi_int Have tried it like that too, same results
|
|
|
|
brunoshady
Sr. Member
Offline
Activity: 262
Merit: 250
Dubs Get
|
|
July 09, 2011, 04:20:24 AM |
|
[09/07/2011 02:36:59] Phoenix r101 starting... [09/07/2011 02:37:03] Connected to server [09/07/2011 02:37:03] Currently on block: 135403 [0 Khash/sec] [0 Accepted] [0 Rejected] [RPC] It never moves up in hashes....can anyone help? I'm running Ubuntu 10.10 with an ATI 5850 and using these parameters: -k poclbm DEVICE=1 VECTORS BFI_INT AGGRESSION=7 I ran it without the device parameter and it showed me a list of my devices, the second one which is ID 1 is displayed as Cypress which I assume is my ATI card? The first one is my processor. It does work when I select my processor as the device, although as expected it's extremely slow. Followed this tutorial exactly, except I didn't use 11.04 as I don't have access to it currently. Any suggestions besides updating to 11.04? try to remove vectors and BFI_INT and probably will work... I guess it's something wrong with your drivers, or your card doesnt support neither vectors or bfi_int Have tried it like that too, same results hmm, try another kernell... and why your phoenix starts with r101 starting... when you download this?
|
😆
|
|
|
JaTochNietDan
Newbie
Offline
Activity: 29
Merit: 0
|
|
July 09, 2011, 10:02:22 AM |
|
[09/07/2011 02:36:59] Phoenix r101 starting... [09/07/2011 02:37:03] Connected to server [09/07/2011 02:37:03] Currently on block: 135403 [0 Khash/sec] [0 Accepted] [0 Rejected] [RPC] It never moves up in hashes....can anyone help? I'm running Ubuntu 10.10 with an ATI 5850 and using these parameters: -k poclbm DEVICE=1 VECTORS BFI_INT AGGRESSION=7 I ran it without the device parameter and it showed me a list of my devices, the second one which is ID 1 is displayed as Cypress which I assume is my ATI card? The first one is my processor. It does work when I select my processor as the device, although as expected it's extremely slow. Followed this tutorial exactly, except I didn't use 11.04 as I don't have access to it currently. Any suggestions besides updating to 11.04? try to remove vectors and BFI_INT and probably will work... I guess it's something wrong with your drivers, or your card doesnt support neither vectors or bfi_int Have tried it like that too, same results hmm, try another kernell... and why your phoenix starts with r101 starting... when you download this? I got it from the topic I linked with the git clone command, only a few hours ago so it should be the latest version. I think I'll just switch to a lightweight Windows installation, Ubuntu has been causing problems on that mining rig that I've setup. 11.04 wouldn't even boot on it.
|
|
|
|
bcforum
|
|
July 09, 2011, 05:31:44 PM |
|
any ideas to reach 300+Mhash/sec on a 6870 using Phoenix 1.5? running stock voltages and clock speeds I'm only getting 265Mhash/sec any way to get that up to 300 w/o overclocking? (don't want to shorten the life of the card) if not, then what should i overclock/underclock to hit 300Mhash/sec? rig specs: Ubuntu 11.04 2x HIS PCI-Express ATI Radeon HD6870 Video Card (Engine Clock: 900 MHz; Video Memory: 1GB DDR5; Memory Clock: 4.2 GHz; RAMDAC: 400 MHz) AMD Sempron 140, Socket AM3, 2.7 GHz, 1 MB Cache, 45 Watts ASRock AM3 processors AMD 770-140W 4DDR3/ATI CrossFireX motherboard Seagate Barracuda 7200.12 500 GB 7200RPM SATA 6Gb/s with NCQ 16MB Cache Kingston ValueRAM 2 GB 1333MHz PC3-10600 DDR3 DIMM Desktop Memory Thermaltake V3 Black Edition SECC / Plastic ATX Mid Tower Computer Case Antec EA-650 Green ATX Energy Star Certified Power Supply running: python phoenix.py -u http://user:pass@server:8832 -k phatk VECTORS BFI_INT AGGRESSION=12 DEVICE=0 thanks in advanced! Try different values of WORKSIZE and see what helps. Also, try the poclbm kernel as well. I'm using: -k poclbm DEVICE=0 AGGRESSION=13 BFI_INT WORKSIZE=64 VECTORS FASTLOOP=false because the phatk kernel is about 4% slower than poclbm.
|
If you found this post useful, feel free to share the wealth: 1E35gTBmJzPNJ3v72DX4wu4YtvHTWqNRbM
|
|
|
Tx2000
|
|
July 10, 2011, 11:37:28 AM |
|
Are there parameters or plan to include a failover similiar to that of poclbm?
|
|
|
|
Druas
Member
Offline
Activity: 78
Merit: 10
|
|
July 10, 2011, 07:49:07 PM |
|
I have seen one or two optimization to phoenix in the past two weeks. Any chance these could be released as a 1.51?
|
|
|
|
irosaurus
Newbie
Offline
Activity: 28
Merit: 0
|
|
July 11, 2011, 04:59:21 PM |
|
hi everybody,
I have a quick question. I noticed that the phoenix miner is using one out of four cpu cores completely. so on my quadcore, I have a constant cpu use of about 25%. when I use poclbm instead, it will only use about 1% of my cpu. Is this a normal behaviour of the phoenix miner? because phoenix miner is about 5% faster in mining than poclbm on my system (hd5770). so I would prefer to use the phoenix miner, but with the high cpu usuage, it will cost me more electricity and it produces more heat, what isn't good at all, and eats up the higher efficiency in mining. is there any possibility to fix the cpu usuage?
cheers iro
|
|
|
|
pandemic
|
|
July 11, 2011, 07:05:29 PM Last edit: July 11, 2011, 07:18:40 PM by pandemic |
|
hi everybody,
I have a quick question. I noticed that the phoenix miner is using one out of four cpu cores completely. so on my quadcore, I have a constant cpu use of about 25%. when I use poclbm instead, it will only use about 1% of my cpu. Is this a normal behaviour of the phoenix miner? because phoenix miner is about 5% faster in mining than poclbm on my system (hd5770). so I would prefer to use the phoenix miner, but with the high cpu usuage, it will cost me more electricity and it produces more heat, what isn't good at all, and eats up the higher efficiency in mining. is there any possibility to fix the cpu usuage?
cheers iro
I'm wondering the same thing. I've got a 5830 and a 4870 in the same machine running CCC 11.7. The 4870 is running at 84mh/s and the 5830 is going at 304mh/s. Looking at phoenix.exe, both instances of the program are running at 50% cpu usage. My CPU is a Core 2 duo overclocked to 3.2ghz. This really needs to be looked into. Strange thing is I don't think it was always this way. I don't know what changed but I think in earlier versions of phoenix my CPU usage was far lower.
|
|
|
|
|
dikidera
|
|
July 12, 2011, 08:20:24 PM |
|
Why doesnt phoenix from source dont wanna run on python 2.7? I get an error, and it appears that pyopencl requires python26.dll...meaning python 2.6
|
|
|
|
RobertRibbeck
|
|
July 12, 2011, 11:19:42 PM |
|
Just tried version 1.50
Congrats it's eating cpu cycles like crazy AGAIN
|
Please "Clear your browser cookies" then use http://bitcoinpyramid.com/r/3360 to Join BitCoin Pyramid use my referral & I'll refund a % of your first deposit back to your account Deposit .5 BTC or more and I'll give back 50% of what I receive First Deposit of 1 BTC will get 75% of what I get back
|
|
|
pandemic
|
|
July 13, 2011, 01:13:12 AM |
|
Yep, it's pretty bad. 50% cpu usage per GPU. Something is seriously wrong.
|
|
|
|
Diapolo
|
|
July 13, 2011, 05:37:17 AM |
|
Yep, it's pretty bad. 50% cpu usage per GPU. Something is seriously wrong.
Wow I checked this for my system (Phenom II X6 / Win7 x64 SP1) and Phoenix 1.5 eats one FULL CPU core per instance running (2 GPUs - 2 Cores eaten). I downclock the cores to 800 MHz each, for Mining so one could think, if I raise the core freq. it will only use 1 core for 2 or more cards. No it eats one core and it doesn't matter, if it's clocked at 800 MHz or 3200 MHz, THAT IS crazy. Jedi, is there any explanation for this, can we help to track the issue down!? Dia
|
|
|
|
jedi95 (OP)
|
|
July 13, 2011, 08:25:56 AM |
|
Yep, it's pretty bad. 50% cpu usage per GPU. Something is seriously wrong.
Wow I checked this for my system (Phenom II X6 / Win7 x64 SP1) and Phoenix 1.5 eats one FULL CPU core per instance running (2 GPUs - 2 Cores eaten). I downclock the cores to 800 MHz each, for Mining so one could think, if I raise the core freq. it will only use 1 core for 2 or more cards. No it eats one core and it doesn't matter, if it's clocked at 800 MHz or 3200 MHz, THAT IS crazy. Jedi, is there any explanation for this, can we help to track the issue down!? Dia Nothing can be done on my end. For Windows if you have more than 1 ATI GPU installed each instance will peg one CPU core at 100%. There is some stupid event loop in ATI's driver. The best way to minimize the problem is to change the process affinity so that all the instances run on the same CPU core. This doesn't reduce hashrate at all.
|
Phoenix Miner developer Donations appreciated at: 1PHoenix9j9J3M6v3VQYWeXrHPPjf7y3rU
|
|
|
dishwara
Legendary
Offline
Activity: 1855
Merit: 1016
|
|
July 13, 2011, 10:27:42 AM |
|
Yep, it's pretty bad. 50% cpu usage per GPU. Something is seriously wrong.
Wow I checked this for my system (Phenom II X6 / Win7 x64 SP1) and Phoenix 1.5 eats one FULL CPU core per instance running (2 GPUs - 2 Cores eaten). I downclock the cores to 800 MHz each, for Mining so one could think, if I raise the core freq. it will only use 1 core for 2 or more cards. No it eats one core and it doesn't matter, if it's clocked at 800 MHz or 3200 MHz, THAT IS crazy. Jedi, is there any explanation for this, can we help to track the issue down!? Dia Nothing can be done on my end. For Windows if you have more than 1 ATI GPU installed each instance will peg one CPU core at 100%. There is some stupid event loop in ATI's driver. The best way to minimize the problem is to change the process affinity so that all the instances run on the same CPU core. This doesn't reduce hashrate at all. + you can use granola software & put it in lowest speed(for some strange reason MiserWare also uses more CPU), that will put the temperature of that core under 65C & also you won't feel any lagging in windows. I have 2 * 5870 GPU's mining in Windows 7 with Aero enabled giving 434 & 442 Mhash/s
|
|
|
|
|