-
Notifications
You must be signed in to change notification settings - Fork 372
Try to upstream the Genoil CUDA ethminer changes #315
Comments
Hey @Genoil - see above! Not sure if any of the C++ development team has ever been in contact with you before? They should have been. Anyway - I've added this to the backlog. As you may have already seen, I've been focusing on architecture for a while, first at http://doublethink.co and now at the Foundation, so we're looking like this for Homestead: http://doublethinkco.github.io/webthree-umbrella-cross/images/dependency_graph.svg Aiming for something like this in the near future as we re-consolidate the repos: http://doublethinkco.github.io/webthree-umbrella-cross/images/target_dependency_graph.svg See #251). I am already working to rationalize the names for Homestead (#250). I think the re-org might be a good time to look at ethminer, and getting that decoupled from the rest of the code, so that forked code isn't required. So maybe we pull ethminer out into its own http://github.com/ethereum/ethminer repo, and then look at upstreaming all of your changes into that version, if that is easy enough? If you aware of other forks which have "good stuff" in them, and which we should look at, please let me know. It looks as though nothing of any real note has happened in the "official ethminer" since last Sep/Oct: Good stuff on your CUDA miner! |
Yes I was in touch with @gavofyork and @LefterisJP during the last year. I did try to get CUDA support merged into the official miner, but it was pushed back to Homestead. At that point, which was just before the change to webthree-umbrella I decided to stop spending time trying to keep up with the many drastic changes the codebase underwent at the time. The reason most miners use some build or fork of 0.9.41 is because that's still on the cpp-ethereum repo (the last version, maybe?) and people who knew how to build binaries just didn't bother moving over to the umbrella structure. And you're right, sine there are no performance improvements, miners don't care :) Personally I'm not interested in merging the CUDA miner into webthree-umbrella. Professionally, perhaps. But of course you are welcome to pick anything you need from it. |
yeah we wanted to do that back then ... no time from our side either. If you have any time to work on it @bobsummerwill feel free :) |
Thanks for the info, Genoil. Well, the plan is to re-merge the repos, so it might "fit" again after that :-) I will look at this again after the re-org. If nothing else, I think we should be able get you a nicer cpp-ethereum to build on top of. Then you could have a separate repo for your ethminer, and not have to carry all the other forked junk around with you, @Genoil :-) |
Miner suppose to be a standalone project. I even suggest move the opencl miner our of the kernel. Integrate the miner into web-three umbrella just make these repo too heavy and make the miner have too many dependencies which is unnecessary. |
Hey, @smartbitcoin! We would end up with: So the ethminer could be developed/released independently of cpp-ethereum. Right now the CUDA miner is dragging around a corpse with it :-) That hasn't been a practical issue because there hasn't been any relevant movement in the "official" ethminer, or in the parts of cpp-ethereum which it depends on in the last few months. But it's a bit silly. |
Hey, @Genoil! So I just looked at the diffs between your fork point and your HEAD, and they really aren't so scary, so I think that I am very likely to attempt to upstream them :-) |
You're welcome! Can you also improve stability of the stratum client while you're at it? ;) |
Hmmm ... seems your magic wand is defective. Nothing happened. ;) .. anyway.. just wondering if the CUDA support is going to be undertaken or not at all . I am trying to decide if I need to wait .. or take the machine to Windows so I can run Genoil's miner - would give me an excellent excuse to by some Oculusesses .. ;) (and get them sometime before the Sun goes SuperNova ;) ) .. Thanks all for all the great work on this project. EDIT: undertaken = upstreamed |
Either as a sidenote .. or a diversion of efforts .. or whatever you want to call it .. I have been fiddling with hashcat too .. ( the primary stated purpose of my gear ) .. in case you have not been following along, v3.0 is now being actively developed and he is dropping CUDA in favor of going with Kronos .. Here is an extract of his build process : git clone https://github.com/hashcat/oclHashcat From the discussions I have seen, the performance without CUDA is not as good, but the belief is that it can be done thus making the need for CUDA defunct. I also gathered that the intent was to support a wider variety of HW while simplifying the code requirements. ( I am not pitching .. just digesting what I understood from the threads I read ). |
@int03h you can run my fork on Linux too. Runs even better on many cards |
@Genoil @bobsummerwill Yessir ! I do and i am a fan ! A few things to note though - in no particular order and not assigning blame or trying to be a dick, I want to keep this constructive, please take my comments as positive encouragement rather than criticisms:
|
Re 3/4). I totally agree something is not right with it because I get many feedback on the exact same issue. But it does compile fine on Ubuntu 14.04 (AWS GPU instance with CUDA 6.5), which I use as my reference platform for checking Linux builds. There are plenty of miners using my fork with CUDA on Linux. Check this guy 6 * GTX1080, 135MH @ 540W https://ip.bitcointalk.org/?u=http%3A%2F%2Fi.imgur.com%2FvR4DuPO.jpg&t=565&c=Z_-NqGltas92pQ (he actually had to move to Linux because the Windows driver completely destroyed performance, which I have found to be a common issue with Nvidia cards) |
@int03h as for making the OpenCL code as fast; it can certainly be done, but you'll have to do the warp shuffles in PTX assembly. May even be easier than merging the CUDA miner in. |
HI .. Likewise - I moved to Linux because the performance on windows 10 was TERRIBLE with CUDA. I did have it running on Windows 7 for a little while and it works great, but I HATE using Teamview to manage it .. I know my hardware is good and I have a baseline performance # with CUDA (on my NVIDIA Miner). Linux is losing me about 10% using open CL - but I refuse to go back to windows 7/8. ;) ( Stratum is also ANOTHER PITA I just don't want to deal with). Either way .. what I am saying is that I have decided to stick with Genminer and Linux and I want to try and get to the point where I can have CUDA+STRATUM+LINUX. ;) Sorry if that is going to make me a pain in your ass, no good deed goes unpunished. Looking at that screenshot - I honestly don't know what vodo he used to make it work on 14.04 .. I tried compiling it a bunch of times - specifically on 14.04 !! . It throws the exact same error on 14.04 as it does on 15.10 and on Debian Jessie/Wily/Strectch/Testing and SID. BTW from my research - I saw that NVCC can be very bitchy about how it is invoked.. Like it will break if duplicate arg's are passed it will just fail with random unexplained errors. I saw this by accident looking for the nvcc error I wanted to reference to show what a POS NVCC is .. anyway : https://github.com/kokkos/nvcc_wrapper - maybe this will help ? Haha .. that dude with the 1080s is going to cry into his coffee when he sees this : EDIT: OK his power numbers look pretty nice .. ( but he paid at least $600 a card - and I paid $300 ) - that's a lot of juice to make up in ROI. |
I always test my builds on this AWS AMI: ami-86fef9ec (us east 1) with a G2.2 instance. It's based off an ami I found with nvidia drivers and cuda 6.5 pre-installed, because I generally suck at Linux system administration. You will have to cmake -DCOMPUTE=30 -DBUNDLE=cudaminer. And git pull + switch the 110 branch to make it start much faster. No comments on that dude with the 1080's. It's not me btw ;-) |
OHOK ! Funnily enough, I tried to get AWS to give me a G2 instance and they told me to politely go “f$@#@ myself” .. ;) I have getting my limit lifted on my list ... anyway .. I hear your predicament. As a matter of interest .. is their pricing competitive/compelling? I want to actually owning the stuff at the end (since I want the GPU’s for hashcat and Oculus), but I do like the idea of warming up their datacenter instead of my house and not paying for electricity. Just interested in your experience – if you care to share. After our last exchange you gave me an idea to manually hack the make file .. It is definitely the x11 flag that is throwing the error (where is that coming from ?? and how we suppress it by default ?? ANYWAY!!! While I was at it – I manually dropped all the other stuff on that line and kept compute_52 (since I know we need that ) .. The line ends up looking like this : IT WORKS! yay yay yay!!! For reference eth@eth:~$ uname -r eth@eth:~$ dpkg -l | grep cuda eth@eth:~$ dpkg -l | grep nvidia eth@eth:~/bin$ ./genminer --list-devices -U Genoil's ethminer 0.9.41-genoil-1.1.3Forked from github.com/ethereum/cpp-ethereum Please consider a donation to: [CUDA]: |
Concerning "The Genoil miner does not compile CUDA on Linux" Looks like you have it working, but here are some my notes. I last compiled about a week or so ago. changes Note, I'm sure if both were needed on the last round as I've build multiple versions over the last few months.. That computer is in pieces as I'm playing with windows at the moment, but I can write up from a clean state if helps. branch 110 builds supports Compute 2.0 which I can confirm works on Linux and enables M2090s in CUDA mode. (hash rates improve to around 10MHs verse 6-7MHs on OpenCL). |
The last few days, I was actually trying to upstream the stratum support into the webthree repo .. ( well a version that Bob is workon at the moment ... see: https://github.com/int03h/cpp-ethereum/tree/merge_repos .. ) I am super stuck and WAAAYY out of my depth. .. instead .. I was thinking of doing what Genoil did by cloning the current webthree, and then running the "recreate-c++" script. Hopefully that will be easier to work with so I can then put back the stratum, realtime dag creation and CUDA support. |
This fix doesn't just revert to the previous code, which was causing warnings on FreeBSD. Instead, it removes the unused 'i' variable, as Enrique's changes did, and also clarifies the semantics for 'completed'.
This issue was moved to ethereum/aleth#3125 |
From https://github.com/Genoil/cpp-ethereum/, which appears to be a fork from 0.9.41, and to be what many of the miners use.
If our version of the code has essentially stood still since 0.9.41 then this might be as simple as "accept theirs" conceptually. Slightly messier details perhaps, but maybe not a horror to merge.
We should be collaborating with miners, not ignoring them. Even with Proof of Stake upcoming, no doubt many of the same individuals will want to be engaged for years to come. We'll have to transition people from PoW to PoS, so having them in the "big tent" rather than outside would be beneficial.
The text was updated successfully, but these errors were encountered: