Main Menu

OpenCL GPU miner opensource (for AMD cards)

Started by iruu, January 10, 2014, 03:46:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

earthbound

For anyone who stumbles onto this thread looking for a GPU ProtoShares miner, iruu's code now enables GPU mining on all OpenCL cards on all platforms:

https://bitsharestalk.org/index.php?topic=2460.0

iruu, what's your donation address?
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

upcpu

24k cpm could earn more than 10 PTS in upcpu.com pool per day.

Quote from: AizenSou on January 12, 2014, 03:49:31 PM
Quote from: Riverhead on January 12, 2014, 03:18:50 PM
Quote from: r05 on January 12, 2014, 02:30:27 PM


+1. In my opinion you need at least a week on a pool to decide whether to stay or not.




Agreed.  I'll let it run for a week or two and see where it's at then.  It seems there is some rapid development going on with GPU mining PTS as well so the mining landscape may change a bit even by then.

I can tell you about my experience. The first pool I tried is beeer pool. I have around 24k cpm so I expected to get 9-10PTS per day. So I mined with beeer pool around 12 hours and they found nothing. I got upset and checked another pool. I don't like ypool or ptspool.com so I try 54.238.185.113 pool since they are in the same level with beeer pool (50% more workers but 30% less shares) and at the time I checked they found round 3 blocks in 6 hours. Ok I sent my 24k cpm machines there and hoped :D.  Fortuna doesn't smile this time with me too and 54.238.185.113 pool won't found any block in 10 hours I mined with them. In that time beeer pool found 2 blocks and I got around 2PTS from my last shares. What did I should do? Well I pissed of with the checking pool routines and decided to stick with beeer pool since I like how the admin answers. Although beeer pool only found 3 or 4 blocks per day for 2 days but I don't care any more. Fortuna plays with me enough so it maybe get better. Since the time I sticked with beeer pool they found block every 2 hour. lol

But you can still have a rough calculation for pool luck if you have time to study their found blocks log. Then decide yourself and stick with it at least a few days before making any decision.

PS: 54.238.185.113 pool found 2 blocks and pays me around 1PTS for 10hours mining. I won't say it is worse, it is just too difficult to measure exactly if luck plays a big role.

relm9

Quote from: Aber on January 12, 2014, 07:40:39 PM
There is any comparsion off cpm on diff miners? (Dga, 1gh).

Dont have ant nvidia so i canot test it, with 280x i got 1060-1090 cpm.
Next nice thing is power draw :) (two 280x take abt 400w from wall... with 3770k on board)

I have a GTX 780 and get about 1650 cpm with cudapts.

Avant

PTS: PvhU2D9ViKygoBQTgh9zeKuFTqi8j3TRjy
BTS: avanty

Aalesund

I got error "0xc000007b".
The miner doesn't work on my AMD card, only 1GH miner works correctly with all amd cards.

r05

Quote from: earthbound on January 12, 2014, 07:49:51 PM
Gronk make dirty hack visual studio windows port compile and run. Gronk post compile and source code here.

Gronk not sure miner actually doing any pool work when run. GPU gears spin-spin, but no output to screen maybe? How make write on screen? Is doing any work? Maybe it work? Please test, advise. Gronk tax disabled for test. Mines at Gronk drink beeeeer mine. Want make mine anywhere. Not do that for now.

Thank!

https://www.dropbox.com/s/q9u4r8sy0zsgf7j/cudaPTSwin.7z
That's a very odd sense of humor you have there..
If I have helped you, please consider buying me a beer:
PTS: PZ6ZED8q1i7nQqnZiwFHdgLMELi3sgpnzL
BTC: 1CPF64k1AraWAUiDSh2QthRhbtJJznzRtw

Aber

There is any comparsion off cpm on diff miners? (Dga, 1gh).

Dont have ant nvidia so i canot test it, with 280x i got 1060-1090 cpm.
Next nice thing is power draw :) (two 280x take abt 400w from wall... with 3770k on board)

AizenSou

Quote from: r05 on January 12, 2014, 06:50:33 PM
I would really like to see a working, platform-independent OpenCL miner hosted on github. The 1gh miner is all well and good but if you run anything other than Ubuntu, you can't work with it. I can't get it to compile on Deb 7 for love nor money because the version of glibc I'm running is newer than the one you're supposed to compile it on!

I can run 1gh miner in Gentoo without any problem. But I don't have any AMD card and I like beeer pool more so I stick with dga's Cudaminer.

r05

I would really like to see a working, platform-independent OpenCL miner hosted on github. The 1gh miner is all well and good but if you run anything other than Ubuntu, you can't work with it. I can't get it to compile on Deb 7 for love nor money because the version of glibc I'm running is newer than the one you're supposed to compile it on!
If I have helped you, please consider buying me a beer:
PTS: PZ6ZED8q1i7nQqnZiwFHdgLMELi3sgpnzL
BTC: 1CPF64k1AraWAUiDSh2QthRhbtJJznzRtw


AizenSou

Quote from: Riverhead on January 12, 2014, 03:18:50 PM
Quote from: r05 on January 12, 2014, 02:30:27 PM


+1. In my opinion you need at least a week on a pool to decide whether to stay or not.




Agreed.  I'll let it run for a week or two and see where it's at then.  It seems there is some rapid development going on with GPU mining PTS as well so the mining landscape may change a bit even by then.

I can tell you about my experience. The first pool I tried is beeer pool. I have around 24k cpm so I expected to get 9-10PTS per day. So I mined with beeer pool around 12 hours and they found nothing. I got upset and checked another pool. I don't like ypool or ptspool.com so I try 54.238.185.113 pool since they are in the same level with beeer pool (50% more workers but 30% less shares) and at the time I checked they found round 3 blocks in 6 hours. Ok I sent my 24k cpm machines there and hoped :D.  Fortuna doesn't smile this time with me too and 54.238.185.113 pool won't found any block in 10 hours I mined with them. In that time beeer pool found 2 blocks and I got around 2PTS from my last shares. What did I should do? Well I pissed of with the checking pool routines and decided to stick with beeer pool since I like how the admin answers. Although beeer pool only found 3 or 4 blocks per day for 2 days but I don't care any more. Fortuna plays with me enough so it maybe get better. Since the time I sticked with beeer pool they found block every 2 hour. lol

But you can still have a rough calculation for pool luck if you have time to study their found blocks log. Then decide yourself and stick with it at least a few days before making any decision.

PS: 54.238.185.113 pool found 2 blocks and pays me around 1PTS for 10hours mining. I won't say it is worse, it is just too difficult to measure exactly if luck plays a big role.

Riverhead

Quote from: r05 on January 12, 2014, 02:30:27 PM


+1. In my opinion you need at least a week on a pool to decide whether to stay or not.




Agreed.  I'll let it run for a week or two and see where it's at then.  It seems there is some rapid development going on with GPU mining PTS as well so the mining landscape may change a bit even by then.

r05

Quote from: AizenSou on January 12, 2014, 02:12:41 PM
Quote from: Riverhead on January 12, 2014, 01:09:36 PM
Quote from: Avant on January 12, 2014, 12:44:10 PM
Quote from: Aber on January 11, 2014, 04:57:13 PM
I saw that 1gh got pool with miner for amd and nvidia :) (pts.1gh.com)

It seems that the 1gh pool get less block by now.


If they can stay ahead of the GPU arms race people will slowly migrate over and then they'll be the block king for a while.  I haven't been following this super close but I suspect either a generic miner (not one hard coded to pts.1gh.com) or a ypoo/beeeeer.orgl gpu miner, will be released eventually and then the tide will swing back.


Currently I'm earning more GPU mining pts.1gh.com even with few blocks found that I was cpu mining pts.beeeeer.org.  By a lot.


Edit: I'm still not sure this is worth it though; at least not yet.  In my VERY brief (10 hours) time GPU mining PTS I can extrapolate an income of approximately 14PTS/m at 1800cpm.  I know it's a very very small sample set and cpm is hard to predict income...however bear with me.  14PTS can currently be bought on the open market for about $14/PTS or $192.  With the same hardware I get about 1.5MHs mining LTC which yields about 11.6 LTC/m.  At $25/LTC that's about $290, or 20PTS...a 42% improvement.  So unless the PTS.1gh.com luck improves in the next couple days (I'll leave it running for a larger sample set) I'd still be better off mining LTC and buying PTS.

You state the fact yourself. It is very difficult to judge with only 10 hours mining with one pool, because it depends greatly on pool luck. You can mine with one pool for the whole day but they found only 2 blocks but another day they found block every hour (with the same difficulty). It is my experience. So test your pool for at least a few days before making any decision.
+1. In my opinion you need at least a week on a pool to decide whether to stay or not.
If I have helped you, please consider buying me a beer:
PTS: PZ6ZED8q1i7nQqnZiwFHdgLMELi3sgpnzL
BTC: 1CPF64k1AraWAUiDSh2QthRhbtJJznzRtw

AizenSou

Quote from: Riverhead on January 12, 2014, 01:09:36 PM
Quote from: Avant on January 12, 2014, 12:44:10 PM
Quote from: Aber on January 11, 2014, 04:57:13 PM
I saw that 1gh got pool with miner for amd and nvidia :) (pts.1gh.com)

It seems that the 1gh pool get less block by now.


If they can stay ahead of the GPU arms race people will slowly migrate over and then they'll be the block king for a while.  I haven't been following this super close but I suspect either a generic miner (not one hard coded to pts.1gh.com) or a ypoo/beeeeer.orgl gpu miner, will be released eventually and then the tide will swing back.


Currently I'm earning more GPU mining pts.1gh.com even with few blocks found that I was cpu mining pts.beeeeer.org.  By a lot.


Edit: I'm still not sure this is worth it though; at least not yet.  In my VERY brief (10 hours) time GPU mining PTS I can extrapolate an income of approximately 14PTS/m at 1800cpm.  I know it's a very very small sample set and cpm is hard to predict income...however bear with me.  14PTS can currently be bought on the open market for about $14/PTS or $192.  With the same hardware I get about 1.5MHs mining LTC which yields about 11.6 LTC/m.  At $25/LTC that's about $290, or 20PTS...a 42% improvement.  So unless the PTS.1gh.com luck improves in the next couple days (I'll leave it running for a larger sample set) I'd still be better off mining LTC and buying PTS.

You state the fact yourself. It is very difficult to judge with only 10 hours mining with one pool, because it depends greatly on pool luck. You can mine with one pool for the whole day but they found only 2 blocks but another day they found block every hour (with the same difficulty). It is my experience. So test your pool for at least a few days before making any decision.

Riverhead

#42
Quote from: Avant on January 12, 2014, 12:44:10 PM
Quote from: Aber on January 11, 2014, 04:57:13 PM
I saw that 1gh got pool with miner for amd and nvidia :) (pts.1gh.com)

It seems that the 1gh pool get less block by now.


If they can stay ahead of the GPU arms race people will slowly migrate over and then they'll be the block king for a while.  I haven't been following this super close but I suspect either a generic miner (not one hard coded to pts.1gh.com) or a ypoo/beeeeer.orgl gpu miner, will be released eventually and then the tide will swing back.


Currently I'm earning more GPU mining pts.1gh.com even with few blocks found that I was cpu mining pts.beeeeer.org.  By a lot.


Edit: I'm still not sure this is worth it though; at least not yet.  In my VERY brief (10 hours) time GPU mining PTS I can extrapolate an income of approximately 14PTS/m at 1800cpm.  I know it's a very very small sample set and cpm is hard to predict income...however bear with me.  14PTS can currently be bought on the open market for about $14/PTS or $192.  With the same hardware I get about 1.5MHs mining LTC which yields about 11.6 LTC/m.  At $25/LTC that's about $290, or 20PTS...a 42% improvement.  So unless the PTS.1gh.com luck improves in the next couple days (I'll leave it running for a larger sample set) I'd still be better off mining LTC and buying PTS.

Riverhead




Getting about 1800 cpm on 2x7970.  Nice work, thank you.  I may try and build this on Linux 32b so that I can switch a couple more bamt rigs over.

Avant

Quote from: Aber on January 11, 2014, 04:57:13 PM
I saw that 1gh got pool with miner for amd and nvidia :) (pts.1gh.com)

It seems that the 1gh pool get less block by now.
PTS: PvhU2D9ViKygoBQTgh9zeKuFTqi8j3TRjy
BTS: avanty

Cr@zy

Quote from: Primecoindude on January 12, 2014, 01:05:03 AM
Did download miner and setup a run.bat, the miner starts, skips the CPU, then
QuotePTShasher:0-0 intialized on platform AMD Accelerated Paralell Processing Device Cape Verde, vendor Advanced Micro Device Inc.     ,  mem:2147483648
and nothing happend, what am i missing?
My run.bat:
Quotepts-miner.exe ptspool.1gh.com:8083 -u PaZyFwt6ECTGUV2sHMz447NMNbPpUkisJp
Your run.bat should be
Quotepts-miner.exe PaZyFwt6ECTGUV2sHMz447NMNbPpUkisJp

Primecoindude

Did download miner and setup a run.bat, the miner starts, skips the CPU, then
QuotePTShasher:0-0 intialized on platform AMD Accelerated Paralell Processing Device Cape Verde, vendor Advanced Micro Device Inc.     ,  mem:2147483648
and nothing happend, what am i missing?
My run.bat:
Quotepts-miner.exe ptspool.1gh.com:8083 -u PaZyFwt6ECTGUV2sHMz447NMNbPpUkisJp

bustever

Hello,

Thank you !  :)  Result benchmark : 972.447 col/m  (for one 5870 ! )


This miner have enormous potential  :D. if I understand correctly, it is not yet compiled ?


Best Regards,

earthbound

Quote from: archit on January 11, 2014, 12:22:20 PM
I will implement this in arCUDAminer and rename it to arGPUminer if there's enough demand for it

Please donate to me
PTS:Pn9b5y2FRpAn4V94gTLjxJ9eSQkeuuU6GP

I'm sending you a donation.

If possible I strongly suggest pushing/merging your modifications to dga's open source archive, and using his model of volunteering the option to not mine for the developer, but asking to. If you do that and I can get it to compile, I'll set a higher donation amount for your address (so mark your address in the source).

I will want it to include the option to mine on multiple cards.

I looked into iruu's proposed dirty hack, and I just don't think I have the stomach for it. I'm also out of my depth trying to port in the network etc. code of other miners (to iruu's AMD/OpenCL prototype) :(

(I cancelled that bounty I had up, btw, but I will giver further as I say here, if you additionally follow my suggestion.)
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

mudshark79

To be more precise it seems like they are responsible for almost EVERY block now found on that chain (is there a second?  ;))

phrozenspite

Quote from: mudshark79 on January 11, 2014, 06:02:35 PM
But not a single block found yet (or maybe this is teh primary donation for the pool-operator  8)
i think they just started a few hours ago and don't have much hash yet.  The memorycoin pool they run is responsible for most of the blocks being found now on that chain. 
supporting Newmine for a fair Memorycoin
[url="https://bitcointalk.org/index.php?topic=389386.0"]https://bitcointalk.org/index.php?topic=389386.0[/url]

mudshark79

But not a single block found yet (or maybe this is teh primary donation for the pool-operator  8) )

phrozenspite

yep. if anyone doesn't feel like waiting 1gh has it up, i'm getting a little over 1100 CPM on a 7970 ghz edition, extremely low power consumption too
supporting Newmine for a fair Memorycoin
[url="https://bitcointalk.org/index.php?topic=389386.0"]https://bitcointalk.org/index.php?topic=389386.0[/url]

Aber

I saw that 1gh got pool with miner for amd and nvidia :) (pts.1gh.com)

archit



archit

Need your help on one thing, what's noncesBuf if I were to say implement it in the newest version of beeeeer


archit


userhl


defi

Quote from: archit on January 11, 2014, 12:22:20 PM
I will implement this in arCUDAminer and rename it to arGPUminer if there's enough demand for it

Please donate to me
PTS:Pn9b5y2FRpAn4V94gTLjxJ9eSQkeuuU6GP

Would also love to see your arGPUminer !

userhl

Quote from: iruu on January 10, 2014, 03:46:53 PM
Hi. This is an opencl miner. More specifically, it's a miner without network code. 
To compile, you'll need: Visual Studio 2010, AMD APP SDK, Boost, OpenSSL (or an alternative implementation of SHA512). The actual collision pair are computed to a vector on line 120 in momentum_gpu.cpp, if you know c++ you can take it from there. 
I was mining on this code by a dll hack - I compiled a dll with "mine" function and added LoadLibrary/GetProcAddr to first beer's miner. I'm not releasing that code though because it's an ugly hack.

https://github.com/iruu/protoshares_momentum_opencl

Licensed under GPL 2.0. It's the same code that was in the benchmark I gave to some people on irc.

I get it compiled. But the compiler remind me "can't open boost/program_options.hpp"
Is that because i don't have BOOST?
how to install BOOST?

Initially (in November) I was planning and creating a pool for this, but something completely unrelated came up and I wasn't able to finish this. Sorry if you were waiting, especially if you helped me benchmark the code. 

There's an exe in Release folder, you can use to benchmark. 

Why release now? Because someone released CUDA miner. A closed, proprietary language! CUDA should die.

-

If you find it useful (or derived miner, which is very easy to do and probably will appear fast), need to exchange btc or like to trade btc on margin and you don't already have an account on bitfinex (cheapest btc exchange), during registration use my bitfinex referral code IiDoeUOa3i. A sort of a tip which doesn't cost you anything.

plane501


mudshark79


archit

I will implement this in arCUDAminer and rename it to arGPUminer if there's enough demand for it

Please donate to me
PTS:Pn9b5y2FRpAn4V94gTLjxJ9eSQkeuuU6GP

sircotra

Quote from: earthbound on January 10, 2014, 09:06:25 PM
Dunno. Maybe you need to install the AMD App SDK and/or the newest driver for your card?

Yes I've installed AMD App SDK and Catalyst's driver from HP because the original Catalyst doesn't work correctly.

iruu

#18
The simplest option (code wise) would be the original client and/or beer's older miners, because they are based on that. Just substitute the original momentum_search call with the one from this code. However, this solution is both ugly and hard to maintain. On Windows, compiling bitcoind is a major pain in the ass.

main.cpp (Protoshares')

uint256 CBlockHeader::CalculateBestBirthdayHash(CBlockIndex* pindexPrev, bool &outdated) {

uint256 midHash = GetMidHash();
//std::vector< std::pair<uint32_t,uint32_t> > results =bts::momentum_search( midHash, pindexPrev, &pindexBest);
std::vector< std::pair<uint32_t,uint32_t> > results;
OpenCLMiner::momentum_search((unsigned int*)&midHash, results);

(this is named momentum_search3 in momentum_gpu.cpp)

For Linux, the rest was implemented in 
https://github.com/iruu/protoshares_momentum_opencl/blob/bitcoind_hack/opencl_hack.cpp
(repeated midhash check is because beer would sometimes resend the same work) 

Also, initializeOpenClMiner has to be called before using this. 

Unfortunately, I deleted the immediately compilable Linux version along with the last ec2 gpu linux instance. I was editing the code in the shell to get it working as fast as possible (it was a fun time, earning $500/hour mining :) ), then it turned out Nvidia's OpenCL is so much slower on Linux that the whole thing was useless.

earthbound

I have this compiling and executing. (Reassembling tool-chains is a pain.)

What reference miner functionality might it be easiest to port into this (so that I can do something with these collisions/m)? Minerd? jhprotominer? I'd like to have -o -u -p etc. command-line options as well . . .

OR, I'd be happy to collaborate with anyone to tell them how to reassemble the toolchain.

But it must be released open-source, day one.
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

ripplexiaoshan

Quote from: iruu on January 10, 2014, 03:46:53 PM
Hi. This is an opencl miner. More specifically, it's a miner without network code. 
To compile, you'll need: Visual Studio 2010, AMD APP SDK, Boost, OpenSSL. The actual collision pair are computed to a vector on line 120 in momentum_gpu.cpp, if you know c++ you can take it from there. 
I was mining on this code by a dll hack - I compiled a dll with "mine" function and added LoadLibrary/GetProcAddr to first beer's miner. I'm not releasing that code though because it's an ugly hack.

https://mega.co.nz/#!iFtkFKhA!ORrkCQ-CCUrLAqglu3cOUFH9mDQcr2n-7sRfeuRZMC8

Licensed under GPL 2.0. It's the same code that was in the benchmark I gave to some people on irc.

Initially (in November) I was planning and creating a pool for this, but something completely unrelated came up and I wasn't able to finish this. Sorry if you were waiting, especially if you helped me benchmark the code. 

There's an exe in Release folder, you can use to benchmark. 

Why release now? Because someone released CUDA miner. A closed, proprietary language! CUDA should die.

-

If you find it useful (or derived miner, which is very easy to do and probably will appear fast), need to exchange btc or like to trade btc on margin and you don't already have an account on bitfinex (cheapest btc exchange), during registration use my bitfinex referral code IiDoeUOa3i. A sort of a tip which doesn't cost you anything.


I am not good at all these things, cause I am not a vc developer... so I would highly appreciate it if you can provide an executive file, that we don't need to compile and build it.
BTS committee member:jademont

jefflee

Does anyone port it to Linux? That would be great :)

unclewind


iruu

#13
Don't use less than 100 iterations for a benchmark, results from 3 iterations are not reliable.
On 7970 without OC you should get about 500col/m. 
Generally the more memory the better should be the result. 

Apparently the RX series cards support buffers bigger than 512MB. That makes the two buffer hack obsolete (ie. one buffer 1GB, or even 2GB version should be a few percents faster). 

scp_1982

#12
momentum_gpu.exe -m 288 -d 1 -b 2
AMD HD7950, col/m=946
AMD HD7970, col/m=1060

earthbound

#11
Quote from: voffka05 on January 10, 2014, 09:14:53 PM
What setting need type to poolmining?

This does not mine (it does not connect to any pools). It is a prototype (benchmark) compile with source code. The freely available code is begging to be integrated into a full-blown miner. (Please see the thread I link to in my second post in this thread.)
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

voffka05


earthbound

Dunno. Maybe you need to install the AMD App SDK and/or the newest driver for your card?
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

sircotra

Hi, i'm trying to execute "momentum_gpu.exe" in "Release" folder but i got an error: "The procedure entry point clRetainDevice could not be located in the dynamic library OpenCL.dll".

My pc has Core i7 Cpu and Ati Radeon HD6490M GPU

Thank you

earthbound

#7
After I installed both of the following, I was able to run a benchmark:

http://www.microsoft.com/en-us/download/confirmation.aspx?id=29
http://slproweb.com/download/Win32OpenSSL_Light-1_0_1f.exe re http://slproweb.com/products/Win32OpenSSL.html
re: http://www.openssl.org/related/binaries.html

This seems to run really great collision rates on AMD hardware, with the following initialization strings/resulting rates:

For an ATI Radeon HD 580 as device 1:
momentum_gpu.exe -m 288 -d 1 -b 2
Result:
2 repeats, average 507.5ms, 865.645 col/m

For an AMD Radeon HD 78 as device 0:
momentum_gpu.exe -m 288 -d 0 -b 1
Result:
1 repeats, average 906ms, 377.754 col/m

Am I smoking weed? This would be a combined average 1243.399 col/m on commonly available GPU cards. Those are great figures, aren't they?
I think I'm not alone when I say I'd like to see more and more planets fall under the ruthless dominion of our solar system. -Jack Handey

abc123

OpenCL is open, but I think it needs more time to develop a good OpenCL program.


iruu


Amazon

Forum Donation: PforumPLfVQXTi4QpQqKwoChXHkoHcxGuA

nikmal


iruu

#1
Hi. This is an opencl miner. More specifically, it's a miner without network code. 
To compile, you'll need: Visual Studio 2010, AMD APP SDK, Boost, OpenSSL (or an alternative implementation of SHA512). The actual collision pair are computed to a vector on line 120 in momentum_gpu.cpp, if you know c++ you can take it from there. 
I was mining on this code by a dll hack - I compiled a dll with "mine" function and added LoadLibrary/GetProcAddr to first beer's miner. I'm not releasing that code though because it's an ugly hack.

https://github.com/iruu/protoshares_momentum_opencl

Licensed under GPL 2.0. It's the same code that was in the benchmark I gave to some people on irc.

Initially (in November) I was planning and creating a pool for this, but something completely unrelated came up and I wasn't able to finish this. Sorry if you were waiting, especially if you helped me benchmark the code. 

There's an exe in Release folder, you can use to benchmark. 

Why release now? Because someone released CUDA miner. A closed, proprietary language! CUDA should die.

EDIT: When benchmarking use at least 100 iterations for reliable results.

-

If you find it useful (or derived miner, which is very easy to do and probably will appear fast), need to exchange btc or like to trade btc on margin and you don't already have an account on bitfinex (cheapest btc exchange), during registration use my bitfinex referral code IiDoeUOa3i. A sort of a tip which doesn't cost you anything.