Bitcoin Forum
November 19, 2024, 01:16:17 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: AntMiner S1 Underclocking, a thorough discussion  (Read 8384 times)
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 15, 2014, 02:24:36 AM
Last edit: November 15, 2014, 06:21:35 PM by sidehack
 #1

Having recently acquired some AntMiner S1 that another miner in my acquaintance was disposing of for the cost of shipping, I decided to see just how efficiently these little guys could run. With that in mind I set up a test to measure the board-level DC power draw of the mining hardware at various parameter setpoints of core voltage and clock speed.

I connected a controller to a single hashing board with three VRMs disabled. The fourth VRM was wired for precise manual output voltage adjustments in the range of 1.20-0.60V. The controller and fan were powered separately, so only the power required by the single enabled VRM and its bank of 8 ASICs was measured (the idle current from the controller-powering 3.3V buck is  considered negligible).

I used a 12V server PSU as the power source, delivered through a 0.1ohm 1% shunt resistor across which I measured the voltage drop, for input current calculations. I used an oscilloscope for the DC power input (measured at the board's connector, below the shunt) and the VRM output voltage (measured at the output capacitors). It was observed that the fan would pull 12V 1A at maximum speed, and the controller (managing 64 ASICs at 250MHz) consumed 0.34A at 3.3VDC; the maximum additional power draw past board draw, then, is expected to be around 13W. At lower board power consumption, the fan requires much less power; assuming half power for the fan, additional power draw would be around 7W.

I included stable voltage ranges for every 25MHz from 400MHz down to 150MHz, and included the stock setpoint (350MHz@1.12Vcore) and the AntMiner S2 stock setpoint (196MHz@0.77Vcore) for references. The durations of tests varied, most being between 8 and 20 minutes before sample data was recorded. I tried to run up at least a DiffA of 3000, but sometimes I got distracted and ran more; other times, I got impatient (especially during slow-clock tests) and cut it off at less (typically the 20-minute point). For the first batch of samples (400MHz) I reset the voltage after each dataset was recorded, but did not reboot the device. The calculated error data for each sample at 400MHz is based off the DiffA and HW deltas from the previous sample. For all other samples, the machine was rebooted after setting Vcore.

All measurements were taken on an AntMiner S1 with a build date of 2013/11/18, with a VRM feedback resistor pair R3/R12 of 8200 ohms and 9760 ohms, respectively. All resistor modification calculations are based on this pairing.

GH Expected: Expected gigahashrate for a bank of 8 chips at the setpoint frequency
GH Total: The total expected hashrate for a 64-chip S1 at the setpoint frequency
GH Measured: Reported average hashrate during the measurement period
DiffA: Reported DiffA by the end of the measurement period
HW: Reported HW (hardware errors) by the end of the measurement period
Volts in: DC line voltage into the hashboard, measured at the board terminals
Current in: DC line current into the hashboard, measured across the input shunt (see above)
Power in: DC line power into the hashboard ( Vin*Iin )
Vcore: Measured average VRM output voltage during the sample time
W/GH: The power per measured gigahash-per-second ( Pin/GHM )
HWE Percent: Percentage of hardware errors for the sample period ( HW/[DiffA + HW] )
W/GHE: Watts per expected gigahash-per-second ( Pin/GHE )
Vset: The VRM desired-setpoint voltage, to 0.01V
Replacement R: The resistor value required to replace the VRM feedback resistor (R3, R66, R38, R52), to achieve Vset
Parallel R: The resistor value required in parallel with the VRM feedback resistor, to achieve Vset

Setpoint MHzGH ExpectedGH TotalGH MeasuredDiffAHWVolts inCurrent inPower inVcoreW/GHHWE PercentW/GH ExpectedVsetReplacement RParallel R
40025.6204.825.44351011.603.9145.361.1251.790.00%1.771.130
25.56783111.613.8144.231.1121.730.04%1.731.1108052446124
25.695992111.633.7143.151.1001.690.71%1.691.1007889208238
25.31292720811.643.6041.901.0831.665.32%1.641.080756497523
24.91663958111.653.5140.891.0681.649.13%1.601.070740175990
37524.0192.023.83014011.653.4940.661.1101.710.00%1.691.1108052446124
24.33711011.663.4139.761.0881.640.00%1.661.0907727133856
24.03089011.673.3639.211.0791.630.00%1.631.080756497523
24.23327011.673.2938.391.0691.590.00%1.601.070740175990
26.63199011.683.2337.731.0601.420.00%1.571.060723961745
24.133272911.683.1837.141.0491.540.86%1.551.050707651622
23.530716511.693.1236.471.0401.552.07%1.521.040691344059
22.9371121211.703.0435.571.0291.555.40%1.481.030675138194
35022.4179.224.43839011.712.9734.781.0491.430.00%1.551.050707651622
22.93327011.712.9234.191.0401.490.00%1.531.040691344059
22.43199011.722.8533.401.0291.490.00%1.491.030675138194
22.13327011.732.8032.841.0191.490.00%1.471.020658833512
23.85119011.732.7532.261.0091.360.00%1.441.010642529689
22.43071611.732.6931.550.9991.410.19%1.411.000626326508
22.030716911.742.6430.990.9901.412.20%1.380.990610023819
21.5406722911.752.5830.320.9791.415.33%1.350.980593721517
22.04735011.663.4139.761.1201.800.00%1.781.1208215
32520.8166.420.63583011.752.5630.081.0101.460.00%1.451.010642529689
21.23071011.762.5229.641.0001.400.00%1.421.000626326508
20.83071011.762.4628.930.9891.390.00%1.390.990610023819
21.03071011.772.4228.480.9801.360.00%1.370.980593721517
21.43071011.772.3627.780.9681.300.00%1.340.970577519524
21.23455011.782.3227.330.9601.290.00%1.310.960561217781
20.83071211.782.2726.740.9501.290.07%1.290.950544916245
21.548634511.792.2226.170.9391.220.92%1.260.940528714880
19.8435117211.792.1725.580.9281.293.80%1.230.930512413660
30019.2153.619.015743011.802.1124.900.9511.310.00%1.300.950544916245
18.73199011.812.0524.210.9381.290.00%1.260.940528714880
19.13071011.812.0223.860.9311.250.00%1.240.930512413660
19.02687011.821.9723.290.9201.230.00%1.210.920496112562
19.22431011.821.9222.690.9091.180.00%1.180.910479911569
18.72687211.831.8922.360.9011.200.07%1.160.900463610666
18.726873211.831.8521.890.8901.171.18%1.140.89044739843
18.2255912111.841.8121.430.8811.184.51%1.120.88043119088
27517.6140.817.43199011.861.6719.810.8801.140.00%1.130.88043119088
17.74351011.861.6319.330.8701.090.00%1.100.87041488394
17.84479011.861.5918.860.8601.060.00%1.070.86039857754
18.434552111.871.5518.400.8501.000.60%1.050.85038237161
17.0358311011.871.5218.040.8411.062.98%1.030.84036606611
25016.0128.016.23583011.891.3916.530.8401.020.00%1.030.84036606611
16.42559011.891.3616.170.8300.990.00%1.010.83034976098
16.13327011.891.3315.810.8200.980.00%0.990.82033355620
16.03071411.901.2915.350.8100.960.13%0.960.81031725173
15.233274611.901.2614.990.8020.991.36%0.940.80030094754
15.2383924011.901.2314.640.7910.965.88%0.910.79028474360
22514.4115.214.33199011.911.1213.340.7890.930.00%0.930.79028474360
15.02815011.911.0912.980.7800.870.00%0.900.78026843990
15.33071011.911.0612.620.7700.830.00%0.880.77025213641
14.331995611.921.0312.280.7590.861.72%0.850.76023593311
15.1307112111.921.0112.040.7500.803.79%0.840.75021962999
20012.8102.412.63199011.930.9511.330.7680.900.00%0.890.77025213641
12.74351011.930.9311.090.7590.870.00%0.870.76023593311
13.13967011.940.9110.870.7490.830.00%0.850.75021962999
12.54479011.940.8810.510.7390.840.00%0.820.74020332704
14.03583011.940.8610.270.7290.730.00%0.800.73018712424
12.73583811.940.8510.150.7210.800.22%0.790.72017082157
19612.5100.012.83199011.930.9411.210.7700.880.00%0.900.77025213641
13.13199211.950.829.800.7200.750.06%0.780.72017082157
17511.289.611.63071011.960.748.850.7190.760.00%0.790.72017082157
11.22559011.970.728.620.7090.770.00%0.770.71015451904
12.13327111.970.708.380.6970.690.03%0.750.70013831663
9.73199211.970.627.420.6910.770.06%0.660.69012201433
1509.676.89.63199111.980.607.190.6900.750.03%0.750.69012201433

Noteworthy data points:
- 350MHz @ 1.12Vcore, stock S1 setpoint
- 196MHz @ 0.77Vcore, stock S2 setpoint
- 225MHz @ 0.77Vcore, maximum S2 stability point at stock Vcore
- 200MHz @ 0.72Vcore, minimum stability point at 200MHz - some ASICs were unstable below this voltage, causing resets
- 175MHz @ 0.69Vcore, hashrate reports low due to one chip dropping out entirely; remaining 7 hashed well (average 1.39GH, expected 1.20)
- 150MHz @ 0.69Vcore, minimum stable at 150MHz. At 0.68Vcore all chips dropped out and reported 'X' in ASIC status

I currently have a full machine modified for operation at 250MHz@0.82V (using a 5k6 5% parallel resistor), for which the expected output is 128.0GH at a total power draw (including half-power 6W fan and 1W controller) of about 133W. I measured the power draw at 11.34V 11.52A (using a 1% 0.05ohm shunt; the PSU interface board's 5% shunt measurement reported 11.43A), for 130.6W DC power consumption. The current stats, at 0h 31m 53s operation, are 128.61GH, 59HW, 56191DiffA
This equates to a DC efficiency of 1.02W/GH with a hardware error rate of 0.1%
The fan is reporting 1020RPM, temps 41/43C in a ~65F ambient environment

A note on the maximum S2 stability point at stock Vcore: the S2 uses the same VRM hardware ( 53355DQP monolithic synchronous buck driver ) as in the S1 (and also ASICMiner Cubes and Tubes). Because the S2 is clocked and volt-set to a lower operating point, each ASIC draws far less current than the ASICs in a stock-set S1. The S1 allocates 8 ASICs per VRM; the S2 allocates 16. Therefore, at any particular setpoint on the S1, the power draw per VRM for the same setpoint on the S2 is doubled. If an S1 is stable at 0.77Vcore 225MHz, it is logical to think the S2 would be also. However, the power draw from the S2's VRMs would be twice the 12.62W seen by the S1, at 25.24W. Assuming a 90% efficient regulator (which efficiency typically drops as current increases, due to parasitic resistances in the inductor and drive FETs), that's an estimated output power of 22.72W; as we're outputting 0.77V the current draw is then 29.5A. The 53355DQP is rated for 30A, which means that you're stressing it to 98% capacity continuously. With a best-case efficiency of 95% (and a few other assumptions, to make the comparison easier), the output power is 23.98W, with an output current of 31.1A, a good 3% past rating. With this in mind, it is probably a terrible idea to try and clock an S2 up to 225MHz even if ASIC cooling was adequate.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
klondike_bar
Legendary
*
Offline Offline

Activity: 2128
Merit: 1005

ASIC Wannabe


View Profile
November 15, 2014, 11:09:23 AM
 #2

very nice overview! Im picking up some s1 units this weekend to undervolt a little bit and now i think i know where to aim for if i want 1w/GH Smiley

24" PCI-E cables with 16AWG wires and stripped ends - great for server PSU mods, best prices https://bitcointalk.org/index.php?topic=563461
No longer a wannabe - now an ASIC owner!
Trends
Member
**
Offline Offline

Activity: 119
Merit: 10


View Profile
November 15, 2014, 01:34:30 PM
 #3

sidehack

how would the T/O settings affect the HW error rate?

Quadriga CX BTC/CAD Coin Exchange     www.quadrigacx.com/?ref=umvq5t3i2r6im243v94vucbo
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 15, 2014, 03:58:27 PM
 #4

I'm not entirely sure. The only problem I had with timeout settings was at the 200MHz neighborhood (200, 196, 193). At timeout 70, the draw current would bounce between about 0.8A and 0.2A (idle) as chips would start to hash, and then all drop out. I'm assuming something in the communication between controller and ASICs was hosing it; once I set timeout to 80 everything worked wonderfully.

The only thing I really saw affecting the HW rate was a Vcore too low at a particular frequency. It makes sense, as in CMOS ICs all the switching is done by charge displacements; higher voltages are required to push a given charge through a given impedance faster, and higher gate charges are required to meet source-drain impedance thresholds for switching. Setting the voltages too low will keep the weakest transistors in the IC from switching effectively, introducing bit errors in the pipeline and returning bad data.

Someone with more software knowledge of Bitmain hardware can probably tell you more about what the timeout setting actually does. I've focused so far on the hardware.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
Trends
Member
**
Offline Offline

Activity: 119
Merit: 10


View Profile
November 15, 2014, 04:09:12 PM
 #5


So just to be clear
 "Parallel R: The resistor value required in parallel with the VRM feedback resistor, to achieve Vset" is the value of the resistor (calculated?) to add to R3, R66, R38 or R52 if R3, R66, R38, R52 are left in place.

Correct

Quadriga CX BTC/CAD Coin Exchange     www.quadrigacx.com/?ref=umvq5t3i2r6im243v94vucbo
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 15, 2014, 04:19:39 PM
 #6

That is correct. The divider pair on mine was 8200/9760. As an example, on mine I used a 5K6 resistor across the 8200 which (for ease of installation and because I had a through-hole resistor) I tied between the junction of the two adjacent resistors and the high side of a nearby output cap. That requires much less precision than attaching leads directly to the pads of a 0603 SMD component. I measured between 0.815 and 0.825 in a quick check of VRMs on the board after modification, variance mostly due to the 5% tolerance of the 5K6 resistor.
On one VRM I did replace the 8200 with a 3K3 5% and got the same results. I can post pictures of some things later on if desired. It probably wouldn't hurt to put up information about changing clock speeds as well, as that requires SSH and config file editing. I'll also include info on calculating the hex values for various frequency setpoints and the expected hashrate calculations.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
Trends
Member
**
Offline Offline

Activity: 119
Merit: 10


View Profile
November 15, 2014, 05:17:07 PM
 #7

No I'm fine with the info sidehack.
I've done several resistor change outs on the S1's I just thought you had done something a little different.
thanks

Trends

Quadriga CX BTC/CAD Coin Exchange     www.quadrigacx.com/?ref=umvq5t3i2r6im243v94vucbo
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 15, 2014, 05:33:09 PM
 #8

Others might like the info. I like to be thorough, after all. Really I should have done this a couple months ago, but I didn't worry a lot about messing with S1 because I've only had two since about June and, here at the shop, power is cheap enough that they're still slightly profitable at stock settings (about a nickel a day, but still).

Maybe in the next few weeks I'll do the same for a Tube. Novak's already posted instructions on hacking a USB BE into a USB serial adapter for them, after all.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
Trends
Member
**
Offline Offline

Activity: 119
Merit: 10


View Profile
November 15, 2014, 06:17:39 PM
 #9

I honestly think that the way you have detailed your results and posted them will entice others to mod their gear and
Keep them S1's running.

Great job sidehack, truly appreciated

Trends

Quadriga CX BTC/CAD Coin Exchange     www.quadrigacx.com/?ref=umvq5t3i2r6im243v94vucbo
7queue
Full Member
***
Offline Offline

Activity: 177
Merit: 100


View Profile
November 17, 2014, 06:52:57 AM
 #10

Oh I like that chart!

Thanks sidehack!

8 )

8 )
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 17, 2014, 10:14:16 PM
Last edit: November 18, 2014, 12:43:18 AM by sidehack
 #11

If anyone doesn't know how to change clocks, it's pretty straightforward if you know SSH.

If you're on linux, just SSH into the miner's IP address. Windows users, I recommend a program called puTTy

The default user and password are the same as the config page - root/root

You'll be looking for the file '/etc/config/asic-freq', which is a text file used as a config for setting the ASIC frequency. Pretty easy to follow that nomenclature. The fun part of editing the text file is, as far as I know, the only available editor is 'vi' - which was written back in the day when terminal connections ran on morse-code speeds and keystrokes were precious commodities. To edit text in the file, first press 'i' (or 'I", whatever - I don't think it's case-sensetive) to drop into "insert" mode. Add your values, comment out unused lines, whatever needs to be done.
Hitting ESC will take you back out of "insert" mode. The ":" character is used for commands in vi; entering ':wq!' will save and force a quit. 'reboot' will restart your miner with the new frequency settings applied.

'freq_value' - the hex number used to calculate the frequency
'chip_freq' - the frequency displayed by cgminer
'timeout' - used by cgminer for ASIC communication timing

Calculating the hex value for a given frequency is kind of a pain. Basically, the hex value needs to be backtraced to binary, and then divided into about five pieces. Starting from the MSB (most significant bit, usually the leftmost):

15 - 0
14 - BS
13:7 - M
6:2 - N
1:0 - OD

To calculate the frequency, the above-mentioned variables are tossed into an equation:

f = 25(M+1) / (N+1)(2^OD)

There are, of course, constraints to this. For one, N is a 5-bit value but can only equal 0 or 1. Additionally, the following must be true:

For BS=1, 62.5<= f <= 1000
                 500 <= f(2^OD) <= 1000
For BS=0, 37.5<= f <= 600
                 300 <= f(2^OD) <= 600

This limits the effective precision, because your denominator can now range only within {1,2,4,8} and your OD is limited based on BS and f. It usually doesn't have much effect on the end result, and frequencies can generaly be calculated within 1%.

hexdecbin
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
A101010
B111011
C121100
D131101
E141110
F151111

Binary is fairly easy to parse once you get the hang of it. At the rightmost bit (the Least Significant Bit, or LSB) you assign a value of 1. Moving left, the values double - to 2, 4, 8 and so on. It's the same as the tens places in decimal counting, except instead of increasing powers of ten (1, 10, 100) you have increasing powers of 2. If there's a '1' at any place, its associated 'place value' is added to the total. So the hex value D, or in decimal 13, is in binary '1101' - which means 1x1 + 0x2 + 1x4 + 1x8, so 1+4+8 = 13. Simple as that. Hex is just a single-digit way of expressing values between 0 and 15. Hex actually is short for "hexadecimal", in which you can see "hex" 6 and "deci" 10, so 16 total. Just as decimal runs on tens, with values being 0-9, and binary runs on twos, with values being 0-1, hexadecimal runs on 16s with values 0-15 (represented as 0-F).

For an example, say f=300. The stock config file tells us the hex for this is 0b81, so the binary version is 0000 1011 1000 0001
If we break that down into our frequency formula, we get:

0|0|0010111|00000|01

15 - 0 - 0 - 0
14 - BS - 0 - 0
13:7 - M - 0010111 - 23
6:2 - N - 00000 - 0
1:0 - OD - 01 - 1

So now we have f = 25(23+1) / (0+1)(2^1) = (25)(24)/(1)(2) = (600)/(2) = 300
f(2^OD) = (300)(2^1) = (300)(2)=600, so BS=0 applies.


I'm not entirely sure how timeouts should best be calculated, but after a bit of statistics on some working values, I figure timeout=13800/frequency - rounded to the nearest 5 - works pretty well.

I wrote up some quick code that, given a clock speed, generates the best BS, M, N, OD, and timeout and prints the data. The code is at www.gekkoscience.com/misc/set_freq.cpp if anyone's interested. Sample output for f=300:

#./set_freq
desired setpoint frequency? 300
BS: 0 M: 23 N: 0 OD: 1
Hex value: 0b81
 Resulting actual clock: 300.000000
 Error from desired clock: 0.000000 %
 Expected hashrate output: 153.600000 GH/s
 Best estimate timeout: 45

option 'freq_value'   '0b81'
option 'chip_freq'    '300'
option 'timeout'      '45'



You should be able to copy-paste the config outputs at the end directly into /etc/config/asic-freq and let it rip.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
November 18, 2014, 05:34:00 PM
 #12

Regarding hashrates for a given frequency.

It appears that each chip is capable of 8MH per 1MHz clock rate. What this means is, per chip, the gigahashrate is f*.008

Each bank of an S1 board has 8 chips, so the per-bank gigahashrate is f*.008*8 or f*.064
A full S1 has 8 banks of 8 chips, so 64 chips; the gigahashrate per frequency for the whole machine is f*0.512

Individual VRMs output voltage to only their 8 ASICs. I have observed no problems from setting adjacent VRMs to different voltages. This may come in handy if one bank has a weak chip that can't run at the same point as the rest of the banks; the voltage for that bank can be turned up slightly without any issue.

To disable a VRM, tie a 1K resistor between GND and the end of R5/R68/R40/R54 closest to the inductor. The respective resistor for each given bank ties the buck controller's EN pin high by connecting it to the tap of a 3:1 voltage divider (200K+100K) on the 12V input. A 1K will pull this low and disable the VRM. I haven't tested extensively but it appears that disabling a VRM will cut communications with all downstream banks (comms, clock, something is down), meaning that you can't disable a VRM in the middle and leave the ones on the end functional. I can do some more testing sometime and see if there's a way around this, or if I'm mistaken.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
CHAOSiTEC
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002


View Profile
December 05, 2014, 06:44:13 PM
 #13

seems like there is an error in your program :-p

Code:
desired setpoint frequency? 368
BS: 0 M: 4198495 N: 0 OD: 0
Hex value: 20082f80
 Resulting actual clock: 104962400.000000
 Error from desired clock: 28522290.000000 %
 Expected hashrate output: 53740748.800000 GH/s
 Best estimate timeout: 0

option 'freq_value'   '20082f80'
option 'chip_freq'    '368'
option 'timeout'      '0'

node-vps.com - Tron / Masternode hosting services
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
December 05, 2014, 07:02:50 PM
 #14

Yep, looks like I forgot to specify initial min=1 for the case initial i=1, which wasn't a problem with any of the test cases I gave it. Should be working now.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
CHAOSiTEC
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002


View Profile
December 05, 2014, 07:23:49 PM
 #15

Yep, looks like I forgot to specify initial min=1 for the case initial i=1, which wasn't a problem with any of the test cases I gave it. Should be working now.

the hex value is also off :-p

tried with your new code:
Code:
desired setpoint frequency? 385
BS: 4198398 M: 122 N: 1 OD: 2
Hex value: 3ffbd06
 Resulting actual clock: 384.375000
 Error from desired clock: -0.162339 %
 Expected hashrate output: 196.800000 GH/s
 Best estimate timeout: 35

option 'freq_value'   '3ffbd06'
option 'chip_freq'    '385'
option 'timeout'      '35'


node-vps.com - Tron / Masternode hosting services
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
December 05, 2014, 07:31:06 PM
 #16

Well dangit, quit finding test cases that break the code! You know I gotta solve problems when they're put in front of me.

Also, that's funny... just ran it three times, and I get:

desired setpoint frequency? 385
BS: 0 M: 122 N: 1 OD: 2
Hex value: 3d06
 Resulting actual clock: 384.375000
 Error from desired clock: -0.162339 %
 Expected hashrate output: 196.800000 GH/s
 Best estimate timeout: 35

option 'freq_value'   '3d06'
option 'chip_freq'    '385'
option 'timeout'      '35'


Looks like it might be an issue with the BS; I'll see if there's an initialization thing that my system doesn't mind.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
CHAOSiTEC
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002


View Profile
December 05, 2014, 07:38:33 PM
 #17

Well dangit, quit finding test cases that break the code! You know I gotta solve problems when they're put in front of me.

Also, that's funny... just ran it three times, and I get:

desired setpoint frequency? 385
BS: 0 M: 122 N: 1 OD: 2
Hex value: 3d06
 Resulting actual clock: 384.375000
 Error from desired clock: -0.162339 %
 Expected hashrate output: 196.800000 GH/s
 Best estimate timeout: 35

option 'freq_value'   '3d06'
option 'chip_freq'    '385'
option 'timeout'      '35'


Looks like it might be an issue with the BS; I'll see if there's an initialization thing that my system doesn't mind.

hmm interresting, might be my g++... what version are you running?

hmm:
Code:
desired setpoint frequency? 406
BS: 4198398 M: 64 N: 0 OD: 2
Hex value: 3ffa002
 Resulting actual clock: 406.250000
 Error from desired clock: 0.061572 %
 Expected hashrate output: 208.000000 GH/s
 Best estimate timeout: 35

option 'freq_value'   '3ffa002'
option 'chip_freq'    '406'
option 'timeout'      '35'


seems like its adding ffa to edge cases

node-vps.com - Tron / Masternode hosting services
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
December 05, 2014, 07:52:42 PM
 #18

I think you're right though, that the hex value isn't right. 3d06 comes out to 768.75 which is 384.375 * 2

It's somehow giving an OD of 2, which would actually make 3d07 I think, and actually get you 384.375MHz. But that violates BS constraints, because (2^2)*385 is not between 300 and 1000. I'll have to check over the parts that narrow the criteria.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
CHAOSiTEC
Legendary
*
Offline Offline

Activity: 1358
Merit: 1002


View Profile
December 05, 2014, 07:58:43 PM
 #19

I think you're right though, that the hex value isn't right. 3d06 comes out to 768.75 which is 384.375 * 2

It's somehow giving an OD of 2, which would actually make 3d07 I think, and actually get you 384.375MHz. But that violates BS constraints, because (2^2)*385 is not between 300 and 1000. I'll have to check over the parts that narrow the criteria.

the "funny" thing is, if you but in values that are divideable with 25 you do get the correct value in hex


node-vps.com - Tron / Masternode hosting services
sidehack (OP)
Legendary
*
Offline Offline

Activity: 3402
Merit: 1865

Curmudgeonly hardware guy


View Profile
December 05, 2014, 09:16:32 PM
 #20

I'm thinking it's something with values over 300, because I've put in an aslo of numbers between 200 and 275 and it gave good data on all them.

Additionally, ignore that thing I said about 768.75MHz. I had transcribed the binary wrong; it does actually come out to the correct frequency. But an OD of 2 is impossible for frequencies above 250MHz. I reckon that's where the issues lies; I need to put in an extra check for that condition.

Cool, quiet and up to 1TH pod miner, on sale now!
Currently in development - 200+GH USB stick; 6TH volt-adjustable S1/3/5 upgrade kit
Server PSU interface boards and cables. USB and small-scale miners. Hardware hosting, advice and odd-jobs. Supporting the home miner community since 2013 - http://www.gekkoscience.com
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!