Shallot
Shallot copied to clipboard
Allow shallot to use GPU (OpenCL and CUDA)
This program would be so much faster if we were able to use our graphics cards and CPU's at the same time to do the work!
It would be? I have my doubts. Last time I looked into acceleration (albeit, with CPU-based acceleration), the instruction set was designed to hash a lot of data once. It was not designed to hash a small amount of data many times, especially with initial states (key to shallot's CPU optimization). I may look into it, but don't be surprised if the same holds true for CUDA/DirectCompute/OpenCL.
Well, I'd be satisfied if it was looked into and not possible. It's practically a 50/50 chance it could be useful (or even possibly there's another way to do it), so as far as I am concerned it's worth it looking into it. Thanks for being willing to at least. I think I'll do a little research too.
Edit: I know that bitcoin miners use GPU's, and bitcoin mining is based on solving some type of cryptographic problem, so it could possibly be hashing many small bits of data many times. A good graphics cards can hash about 500 million times, while my processor can do only about 1000, so that's a pretty good speed improvement. Might be viable thought from that perspective.
Can this source be useful to find some ideas about this issue? https://github.com/samr7/vanitygen
Scallion does this and is released under a similar license, it claims 300x a speed up on a mid-range graphics card.
@quixotist: Thanks for letting us know! :) I suppose I don't see any point leaving this open since another project has solved this. :)
Here's the project that quixotist referenced: https://github.com/lachesis/scallion
Scallion is a .NET CLR application which requires Mono plus bindings for OpenCL, it's terribly hard to get running on Linux even if you have the hundreds of megs of runtime installed.
IMO it would be really useful to integrate this functionality into Shallot, ideally as GLSL if this is possible so we can have GPU acceleration without the overhead of all those horrible dependencies.