Bitcoin Forum

Alternate cryptocurrencies => Mining (Altcoins) => Topic started by: skeeterskeeter on October 14, 2014, 06:40:17 AM



Title: Doing a project for a parallel computing class, looking into crypto-mining
Post by: skeeterskeeter on October 14, 2014, 06:40:17 AM
For a parallel programming class at my university I need to implement some sort of parallel computation. It is a broad as that. I was thinking to do something involving crypto-coin mining. I would really like to try to optimize a current algorithm or try to implement something new in parallel. Obviously people are already trying stuff like this and I am trying to get a good understanding of where everything is currently at some I might find something I could contribute to for my project.

I was wondering if anyone might have any ideas that would be interesting and useful to the community. I will have about 6 weeks to devote to it so it can't be a massive under taking.

 


Title: Re: Doing a project for a parallel computing class, looking into crypto-mining
Post by: MaxDZ8 on October 14, 2014, 04:01:56 PM
I'd like you to take a look at my miner (https://github.com/MaxDZ8/M8M), designed to be understandable and easy to use.
First miner with GPU specific kernels, solved overspilling. Proper GPU OpenCL kernels (instead of just running CPU code on GPU). MIT license. Sort-of-C++11.

If you can add kernels for the coin of your choice that would rock!
Or, you could optimize the kernels since I speculate there's another 70% to squeeze out.


Title: Re: Doing a project for a parallel computing class, looking into crypto-mining
Post by: skeeterskeeter on October 15, 2014, 05:00:00 PM
I'd like you to take a look at my miner (https://github.com/MaxDZ8/M8M), designed to be understandable and easy to use.
First miner with GPU specific kernels, solved overspilling. Proper GPU OpenCL kernels (instead of just running CPU code on GPU). MIT license. Sort-of-C++11.

If you can add kernels for the coin of your choice that would rock!
Or, you could optimize the kernels since I speculate there's another 70% to squeeze out.

What do these kernels represent? (CubeHash_2W.cl, Echo_8W.cl, Luffa_1W.cl, SHAvite3_1W.cl, SIMD_16W.cl) I recognize SHA-3, but what are the others? SIMD, single instruction multiple data.? I'm not familiar with any of the mining algorithms yet, I know the names just not their implementations.


Title: Re: Doing a project for a parallel computing class, looking into crypto-mining
Post by: MaxDZ8 on October 18, 2014, 08:13:05 AM
This miner mangles Qubit, a form of chained hashing: Luffa, CubeHash, Shavite, SIMD, Echo. The ending _X is the amount of kernel parallelism used.

SIMD  (http://www.di.ens.fr/~leurent/simd.html)stands for "SIMD is a message digest". Silly jokes.

Legacy kernels build a big function out of all those algorithms. In my implementation instead, the phases are clearly separated. This allows me to reconfigure GPU ALU more appropriately. Most of the benefit comes from the improved SIMD and Echo implementation.

Note: same algorithms but different implementations.

To your project, the value is mostly in the new codebase which is hopefully easier to understand. I do not claim it to be complete nor efficient but it is surely more compact.


Title: Re: Doing a project for a parallel computing class, looking into crypto-mining
Post by: MaxDZ8 on October 25, 2014, 01:38:30 PM
Thank you but SIMD_16 is a huge bet and I'm not sure it's worth it at all (over 8-way)!  ::)
I'd have to work on it. Sometime in the future.


Title: Re: Doing a project for a parallel computing class, looking into crypto-mining
Post by: Epsylon3 on October 27, 2014, 08:12:46 AM
Check this : https://blake2.net/ blake2sp seems used in RARv5 (and more recently in neo-scrypt)