indio007
|
|
July 09, 2011, 06:09:16 PM |
|
Vince i editted the code like you said and I got errors.
Diapola what you did works fine. I have 2 5830's testing with now. Expect some Bit.love is all goes well.
|
|
|
|
Vince
Newbie
Offline
Activity: 38
Merit: 0
|
|
July 09, 2011, 07:34:44 PM Last edit: July 09, 2011, 08:13:28 PM by Vince |
|
Vince i editted the code like you said and I got errors.
Which one of the changes did you try, both? Tell me about the error you got, just "does not work" helps nobody!
|
|
|
|
indio007
|
|
July 09, 2011, 09:07:32 PM |
|
Vince i editted the code like you said and I got errors.
Which one of the changes did you try, both? Tell me about the error you got, just "does not work" helps nobody! In Kernel.cl I changed this: if(Vals[7].x == -H[7]) to this if(Vals[7].x == -H[7]-K[60]) and changed this Vals[7] += K[60] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124); to this Vals[7] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124); Then i changed this Vals[7] = (Vals[3] = (u)0xb956c25b + D1 + s1(4) + ch(4)) + H1; to this Vals[7] = (Vals[3] = D1 + s1(4) + ch(4)) + H1; as instructed here and yes i added the line to init.py Add
self.state2[3] = np.uint32(self.state2[3] + 0xb956c25b);
to __init__.py, line 77 for me, right behind:
self.calculateF(data)
And remove (u)0xb956c25b from kernel.cl
The error is opencl is having unusual behavior or something. it shows MH etc... just when it seems to want to accept a share it spits that out
|
|
|
|
1bitc0inplz
Member
Offline
Activity: 112
Merit: 10
|
|
July 10, 2011, 03:20:39 AM |
|
This most recent update is everything you said it would be!
My 5830 went from 295 MH/s to 305 MH/s with just this update!
Thanks for the great work.
|
|
|
|
gominoa
Newbie
Offline
Activity: 17
Merit: 0
|
|
July 10, 2011, 07:19:09 AM |
|
In Kernel.cl I changed this: if(Vals[7].x == -H[7])
to this if(Vals[7].x == -H[7]-K[60])
Try also changing: if(Vals[7].y == -H[7]) ... to ... if(Vals[7].y == -H[7]-K[60]) notice Y instead of X. Will be just below the X line
|
|
|
|
indio007
|
|
July 10, 2011, 09:44:34 AM |
|
In Kernel.cl I changed this: if(Vals[7].x == -H[7])
to this if(Vals[7].x == -H[7]-K[60])
Try also changing: if(Vals[7].y == -H[7]) ... to ... if(Vals[7].y == -H[7]-K[60]) notice Y instead of X. Will be just below the X line Same error
|
|
|
|
Diapolo (OP)
|
|
July 10, 2011, 11:38:08 AM |
|
Next kernel version will, once more, be faster for 69XX and 58XX cards . Stay tuned! Dia
|
|
|
|
Vince
Newbie
Offline
Activity: 38
Merit: 0
|
|
July 10, 2011, 01:12:49 PM Last edit: July 10, 2011, 01:32:52 PM by Vince |
|
Vals[7] += K[60] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
to this Vals[7] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
is this a typo or did you leave out the "="?
should be:
Vals[7] += Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
|
|
|
|
indio007
|
|
July 10, 2011, 04:55:33 PM |
|
That Worked , i managed to go from 306-308MH to 308-310MH on 5830. donations forth coming if it remains stable. Thx...
|
|
|
|
BOARBEAR
Member
Offline
Activity: 77
Merit: 10
|
|
July 10, 2011, 06:07:41 PM |
|
Vals[7] += K[60] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
to this Vals[7] + Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
is this a typo or did you leave out the "="?
should be:
Vals[7] += Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
do i need to change if(Vals[7].y == -H[7])? and if(Vals[7] == -H[7])?
|
|
|
|
BOARBEAR
Member
Offline
Activity: 77
Merit: 10
|
|
July 10, 2011, 06:13:45 PM |
|
Hi Diapolo!
Great to see you're making progress! There's one thing that pops into my eye:
you already do: if(Vals[7].x == -H[7])
why not add the K[60] right into it and remove from upper instruction? Saves a whole instruction and will work 100% ;-)
if(Vals[7].x == -H[7]-K[60])
Lets see if I can find more ..
how would this save an instruction? did you just move -K[60]?
|
|
|
|
Vince
Newbie
Offline
Activity: 38
Merit: 0
|
|
July 10, 2011, 06:30:33 PM |
|
how would this save an instruction? did you just move -K[60]?
Yes, just moved it. Now the compiler optimizes it away, before it didn't.
|
|
|
|
BOARBEAR
Member
Offline
Activity: 77
Merit: 10
|
|
July 10, 2011, 06:50:32 PM |
|
how would this save an instruction? did you just move -K[60]?
Yes, just moved it. Now the compiler optimizes it away, before it didn't. Mind explaining more? I don't get it
|
|
|
|
Vince
Newbie
Offline
Activity: 38
Merit: 0
|
|
July 10, 2011, 07:02:44 PM |
|
Mind explaining more? I don't get it
Its a constant. If I add it together with the other stuff in round 124 to Vals[7], it takes an addition to do so, cause its the only constant. If moved to the comparison at the end, the two constants H[7] and K[60] are merged together into one by the compiler, same execution time here.
|
|
|
|
BOARBEAR
Member
Offline
Activity: 77
Merit: 10
|
|
July 10, 2011, 07:09:28 PM |
|
So i changed the whole thing to
Vals[7] += Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124); #ifdef VECTORS if(Vals[7].x == -H[7]-K[60]) output[OUTPUT_SIZE] = output[(W[3].x >> 2) & OUTPUT_MASK] = W[3].x; if(Vals[7].y == -H[7]-K[60]) output[OUTPUT_SIZE] = output[(W[3].y >> 2) & OUTPUT_MASK] = W[3].y; #else if(Vals[7] == -H[7]-K[60]) output[OUTPUT_SIZE] = output[(W[3] >> 2) & OUTPUT_MASK] = W[3]; #endif
does not notice any speed difference, hope that helps
Ps: Does the compiler really do the optimization? If not you introduced one more step cause K[60] appear twice now
|
|
|
|
Vince
Newbie
Offline
Activity: 38
Merit: 0
|
|
July 10, 2011, 07:18:48 PM |
|
I'm pretty sure the compiler will catch this Note that the speed increase is minimal, ~0.1-0.2% maybe.
|
|
|
|
Diapolo (OP)
|
|
July 11, 2011, 02:10:13 PM |
|
Download version 2011-07-11: http://www.mediafire.com/?k404b6lqn8vu6z6This could be the last version, because there seems no more room for big jumps. I thought I could remove some more additions, but the OpenCL compiler does a better job than I . This version is faster than all previous kernels (uses the least ALU OPs for 69XX and 58XX). Should also work with SDK 2.1. If it throws an error with 2.1, please post here and include the error message! Thanks to all donators and your feedback! Dia
|
|
|
|
Turix
|
|
July 11, 2011, 02:31:01 PM |
|
Gained about 1 Mhash (431->432) from the 7th version to todays new version on my 5870 (950/315).
|
|
|
|
Bobnova
|
|
July 11, 2011, 03:08:38 PM |
|
I also gained about 1Mh/s from todays update compared to the previous update, this is on a 5830 at 875/900 in linux. The previous update made a big difference over what ships with phoenix 1.50. I sent a small donation, as you've helped me make more money
|
BTC: 1AURXf66t7pw65NwRiKukwPq1hLSiYLqbP
|
|
|
OCedHrt
Member
Offline
Activity: 111
Merit: 10
|
|
July 11, 2011, 04:29:14 PM |
|
Download version 2011-07-11: http://www.mediafire.com/?k404b6lqn8vu6z6This could be the last version, because there seems no more room for big jumps. I thought I could remove some more additions, but the OpenCL compiler does a better job than I . This version is faster than all previous kernels (uses the least ALU OPs for 69XX and 58XX). Should also work with SDK 2.1. If it throws an error with 2.1, please post here and include the error message! Thanks to all donators and your feedback! Dia Awesome work. Btw, could you explain why Vals[2] = C1; is needed in the beginning when it is reassigned in round 5? I know removing this line breaks the hashing but I'm not seeing why since it isn't used prior to round 5.
|
|
|
|
|