Casting uint to uint16 compiles on your system? Guess something is awfully wrong with it, then, it is against OpenCL spec (and common sense
). Anyway, it would be great if you manage to optimize sha256, I have only quickly thrown together something that worked for me and feel somewhat embarrassed now that it is public.
Yeah, compiles, even tried fresh checkout:D
if(sha256_res(sha256_res(as_uint16(state))) & 0xf0ffffff)
return;
Agree, that's really weird casting
And no worries about the code, you kernel works, and thank you very much for developing and publishing it!!!
I've already moved W[62] and all it usages to kernel's search method, declared it as local, but haven't got any significant speedup. Tried to rid off all vectors, but made even much worse
Now will try to use original poclbm sha256D search with reduced rounds (without 2nd call).
Is skeincoin's SHA256 hash function the same as the one used in normal SHA256 coins? Or is it a variation?
It's the same, but not double sha256 as in Bitcoin and other coins, so we can't just reuse well optimized bitcoin's kernel.