Impressive. Certainly puts CPU-based solutions using "off-the-shelf" crypto libraries into their place.
I hope whoever ends up winning (and/or doing well) posts details and code of their solution, this has been an interesting contest to follow and learn from.
I've been working with CUDA now for about a year now. Last summer I went out and bought a relatively cheap 8800 GT card, which even as an older card is capable of something like 500 GFlops if fully utilized. My Core 2 Duo can do about 20, and that's assuming you can code your programs with SIMD instructions.
Its not easy to utilise the full 500 GFlops, and this is for single FP precision, double FP precision only exists on the newer 200 series and throughput is much lower.
Actually, I think that number may be for integer instructions, which are the fastest (then single-precision, then double-precision). Which makes it even better for this scenario, since the hashing algorithm only uses integer ops.
How feasible would it be to load all your CPU cores and the GPU at the same time? Could you just fork off a thread for each core with some SIMD instructions?
With 2-8 cores combined, they should be able to give you at least a 10% increase in aggregate processing power.
And yet: the human and CPU effort expended will exceed the prize value by many multiples, which is why I consider this the Swoopo of computing contests.
And for those concerned with such things: think of the carbon footprint! <:gazes down at the co2stats insert at the bottom of every HN page>
Despite it being far slower than GPU-magic, this contest was a great opportunity for me to brush up on my C and finally learn MPI. Thanks, Engineyard :)
A good way to learn CUDA is to stop by the forums every once in a while and see what other people are doing with it. Lots of people post their code for little projects like this, which can be quite helpful for beginners.
I hope whoever ends up winning (and/or doing well) posts details and code of their solution, this has been an interesting contest to follow and learn from.