When setting a clock value in MPBM above roughly ~62MHz MPBM reports "Setting clock speed failed!", and from that point on reports a wildy inaccurate hashrate under "Current Hashrate" and "Average Hashrate". More sane values are shown under "Effective Hashrate" though. However, the device continues to operate and submit valid shares. The more I increase the clock past 62, the higher the effective hashrate becomes.
OK, the MPBM code is doing this
def _set_speed(self, speed):
speed = min(max(speed, 4), self.parent.settings.maximumspeed)
if self.stats.speed == speed: return
if speed == self.parent.settings.maximumspeed: self.initialramp = False
self.core.log(self, "%s: Setting clock speed to %.2f MHz...\n" % ("Warmup" if self.initialramp else "Tracking", speed), 500, "B")
self.parent.set_speed(self.fpga, speed)
self.stats.speed = self.parent.get_speed(self.fpga)
self.stats.mhps = self.stats.speed
self._update_job_interval()
if self.stats.speed != speed:
self.core.log(self, "Setting clock speed failed!\n", 100, "rB")
So after a failure to set the speed, we have self.stats.speed != speed, so self.stats.speed is probably garbage which may be the reason for the bad stats. It would be useful to know what the actual value of self.stats.speed is as I still don't understand how this can fail (I'm gazing at the verilog, and it just seems impossible to not read back the same value as it wrote).
Anyway, its the actual pool speed that matters (for valid shares). At some frequency the device is going to start to giving invalid shares. I expect its going to be around the 500MHash/sec range (for the variable clock speed bitstream).
Thank you for your work on these devices kramble. I am in no rush for faster bitstreams, I was happy at ~400MHs.
No problem. This is quite a difficult one to get working blind, so it will be good to make some progress. It was rather left in limbo back at the end of October as I moved on to do the ztex and CM1 ports, which is why the hash rate is so slow compared to those ports (it should be able to get 800MHash/sec from each board). If you're happy to test, then I'm happy to supply bitstreams. It will be quite a slow process though (probably be a couple of days). I'll PM you when I've got something.