I tested on a i7-6700K with 8 threads and saw no difference between multi with or without -flto.
One thing to keep in mind is that you are using a desktop cpu, I am using a server cpu. Those xeons are not multiple times more expensive for no reason (sure partly it's just branding, more reliability etc. etc., but there are also some functional differences). Or it (the fact that -flto doesn't do anything to you) could simply be the compiler. Yours is 2 years old, mine 2 months. But the crucial information is that you can actually compile with -flto. Could you please give me the exact flags that work for you? I will take the effort and find out what's the problem on my end, I just need the starting (compilable) point. I have no idea whether he improved the performance after you took the code from him. The very last commit is 3 days old but which one is the last one that could have had any real impact on Lyra2RE speed, or the overall speed, I am not going to investigate. But if you could remember, at least roughly, when did you take his code I can revert his tree to that date and try that version. I considered things like larger cache and fatser memory interface as likely advantages of a server grade CPU but I can't figure out how that would produce inconsistent results. I'm still leaning toward the compiler. My dusty memories seem to also have LTO in them, I may have to dig back in the thread to refresh. Your compile errors might also jog some memories. I don't think the problem was in code imported from multi, more likely one of the ugly SSE2 optimized macros. When I compiled i used the flags from build.sh + -flto -pg. It is an issue worth pursuing, I can't stay on the old compiler forever. One way to determine if it's a compiler issue or CPU issue is with a VM. I don't know if you start up a VM or boot an older version of Ubuntu but a direct comparison of different compilers on the same HW would help understanding what's going on. I'm a little busy right now testing the latest AVX2 optimisations to get them released, but after that I'll look into it more. Edit: I found the post from Wolf0 about his experience compiling cpuminer-opt with gcc 6.1.1. Look similar to yours? https://bitcointalk.org/index.php?topic=1326803.msg15140799#msg15140799
|
|
|
I support very much your optimizing effort and whenever you need I will gladly do tests for you on various machines.
I appeciate the detailed report and the humour. It will take some time to digest it all but I have a couple of comments. You clearly have all the optimization features in your CPU and the miner was running the optimized code, so that is eliminated. I tested on a i7-6700K with 8 threads and saw no difference between multi with or without -flto. Specifically I get: multi: 920-922 kH/s opt v3.3.9: 995 opt v3.3.8: 930 opt dev: 1025 Furthermore I can compile opt with both -flto and -pg, again with no performance difference. I took the Lyra2RE code, and a lot more, directly from multi and I don't think he has made any changes to it. I've been tickering with Lyra2RE for a while and only recently made any significant progress. C++11 is required to support an algo not included in multi. I can only speculate your compiler version may be the issue. I am using 4.8.4 and you 5.4.0. I seem to recall someone else, Wolf maybe, having compile problems using a more recent version of gcc. I'm too lazy to look back in the thread to find it. If you can find it you could compare notes. I'll read through your report in more detail, If any ideas come to mind I'll post an update.
|
|
|
I've found more AVX2 optimizations, converted cubehash SSE2 to AVX2, improved lyra2v2 19% and X algos 3-5%. Cubehash will probbaly be the biggest single AVX2 optimization next to Hodl. I don't know how much more I can find. Optiminer's code was an inspiration from which I learned a lot.
A lot more work to do before release.
|
|
|
Things are looking up. I solved the alignment problem and made progress with performance. I've added 3% to Lyra2 so far and I have a few functions left to convert. So far I've only implemented AVX2, I still have to do AVX implementations of al functions. The improvements are to the lyra2 core so they should also help lyra2v2.
You are talking about Lyra2RE, right? So it will get sped up? Because so far tpruvot-cpuminer-multi's Lyra2RE is faster than yours by some 3.8% on my servers. I guess it might be because of -flto that I use with his but can't use with yours (doesn't compile) ![Sad](https://bitcointalk.org/Smileys/default/sad.gif) I think you are doing something wrong, lyra2RE in cpuminer-opt v3.3.7 was improved 7% faster than cpuminer-multi. In the next release it will another 3% faster. If you have very old CPUs (ie core2) you won't get the benefits of my optimisations.
|
|
|
I did some playing around with AVX, trying to use it to xor arrays 256 bits at a time. My results were not encouraging. I got code working but with occasional segfaults, likely due to alignmnet issues. That should be fixable. The discouraging part is there was no performance improvement. I tried it looping and inline but it didn't seem to make a difference. I'll poke around some more but it doesn't look good.
Edit: There are a coule of reasons why I may not have seen any performance increase. It is possible, likely, the process was memory bound in which case optimizing CPU performance wouldn't help. The other possibility is the compiler may be auto-vectorising which occurs with the -O3 flag. The code I vectorised was almost identical to the example of auto-vectorising.
The coding is also quite strange with load and store functions like assembly language instructions. I would expect the compiler to do that transparently.
Edit2:
Things are looking up. I solved the alignment problem and made progress with performance. I've added 3% to Lyra2 so far and I have a few functions left to convert. So far I've only implemented AVX2, I still have to do AVX implementations of al functions. The improvements are to the lyra2 core so they should also help lyra2v2.
|
|
|
Hello Sorry for keep hammering this but I can't make CUDA work with the GTX 1070.
I was able to mine using OpenCL with ethminer (-G (opencl)) but with (-U (cuda)) no luck, with ccminer i have the exact same error.
Driver is 367.35, CUDA 8 installed. nvidia --version reports cuda 8 $LD_LIBRARY_PATH points to cuda 8
The driver is working otherwise it would be impossible to mine with OpenCL which i am doing now.
the error still is the same: CUDA driver version is insufficient for CUDA runtime version
any idea what can cause this?, anyone has found this issue? running xubuntu 14.04 x64. thanks! indkt
A few of your previous comments come to mind: Hi The driver IS working properly, I also had parts of older drivers 349 and 352, that i had to weed out Grin i can see the card specific status, i can set power target limit. i installed using repositories (ppa:graphics-drivers) so far it seems to be the only way to install from repo, since the driver is in beta. also to get cuda 8 i had to register as a developer in nvidia Shocked it seems that this driver requires CUDA 8, I thought that maybe i can test first with cuda 7.5 and then install cuda 8 and see the difference, but no, this driver requires cuda 8 to work, so right now i'm installing it (it takes like an hour or so install it on a flash drive) I'll post results later
It seems very unusual that a new driver would break compatibility with all currently released cuda versions. The error message contradicts this stating the driver doesn't yet support cuda 8. This combined with your comment about parts of old drivers being present suggests some of those old parts are still present and still in use. An "insufficnet driver for cuda version" is likely caused by an old driver with a new cuda. I don't know how you got multiple driver versions installed but that may provide a clue how to fix it
|
|
|
it works for me, but i had a similar problem when i pointed multiple miners to nicehash, asked support, they block your address if more then a dozen ip's connect to their service for this address if thats the case, use multiple addresses for each location
Seems a little harsh, they should only block multiple IPs using the same BTC addr simultaneously. If all miners have the same IP it's a farm not a botnet.
|
|
|
@joblo just ran the test for windows: - i5-3330 from ~60-70 to ~210 - A6-6400K from ~40 to ~60 amd overall not that impressive ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) Did you compile yourself? I haven't seen CMB post their bins yet. The A6 is not a real CPU, kinda like Celerons. Since they are new you would think they have all the technology but they don't. They have some new tech, but not all so it's difficult to find an optimum pre-compiled build. Some AMD users that have compiled their own have found better performance by specifying the -march directly instead of -march=native. On a tangent I'm curious about the mining performance of the A6's IGPU. The CPU alone is weak but CPU+IGPU might make up for it.
|
|
|
Maybe it's the new Vertcoin classic and the monacoin classic? (Old fork's brought back to life?)
Interesting speculation but I find no evidence of it.
|
|
|
there always is VertCoin (VTC) using Lyra2re, might be that?
VTC and all the others converted to Lyra2REv2. CTO seems to still use Lyra2RE but appears to have been abandoned by its devs. I wonder what all those orders at Nicehash are about.
|
|
|
of course, and anyway anyone, not naive enough, will tell you that it is impossible to have that hashrate with just oc, i'm not believing that, he is running a private miner, optimized with pascal, i can believe this easily
also there are no insult, you guys see insult everywhere, something wrong...
Believing something doesn't make it true. You just assumed Wotan's results were faked and have berated him since he posted them. That's unfair and insulting whether you believe it or not. It's not a matter of naivete, it's a matter of respect.
|
|
|
Do you think is possible to make Lyra2RE to mine on AVX2? That will compete with the newest Nvidia cards.
Anything is possible but it would take a complete redesign of the miner engine and every algorithm to be able to process multiple streams per thread to achieve parallelism. Each CPU thread would process multiple streams in parallel instead of just one. Hodl was unique in that it lends itself to parallel processing within a single thread so it didn't require a major design change. The effort required would outweigh any benefits. BTW, do you know which coin uses Lyra2RE?
|
|
|
Hell, i give up. I started this thread to inform others about the 1070. I didnt post anything about how much Hashrate a 1070 is capable of, and what the max is. And i wont give more info at this time.
well no one is doing that hash with epsylon last release, so there is something added here for sure this is not about oc i'm sure, your core is at 2050(i doubt it can go higher than 2100 and even then this is not the reaosn for doing 400MH) and mem even at default, but regardless mem are useless here with the same setting all i can get is 260, so you must have some private miner for sure @ Amph, How about posting some of your own data instead of making unfounded accusations at someone who has. Do you have a 1070? How fast does it hash? It is ridiculous to think that someone would conceal their use of a privately optimized miner in order to make the card look better than anyone else would be able to achieve. Wotan deserves an apology. @Wotan, I am interested in your data as I am considering buying a 1070. If you can get over the insults I would appreciate if you could post a comparison with stock settings and your settings.
|
|
|
Hi pallas For some reason ccminer (all versions) does not seems to detect the new driver i get:
Can you confirm you are actually using the new proprietary nvidia driver and not the open source nouveau? Did you install from the repository or use the run file? I have Linux Mint based on Ubuntu 14.4 so I'm very interested in this issue. In mint there is a driver manager with one click switching to the proprietary driver. It still shows the old 352 version as recommended and I haven't found 367 packaged for Ubuntu 14.4 yet.
|
|
|
@joblo hodl improvements on amd:
- A10-6800K from ~60-70 to ~105 - FX-8320E from ~90-100 to ~195
intel:
- Xeon E3-1265Lv2 from ~120 to ~250
to come (Windows):
- A6-6400K - i5-3330
br
Thanks for testing. It's good to have confirmation it works on other architectures.
|
|
|
cpuminer-opt v3.3.9 released with hodl optimizations from optiminer. source: https://drive.google.com/file/d/0B0lVSGQYLJIZVjBTbkNSU0d6X0k/view?usp=sharingWindows binaries courtesy cryptomining Blog: TBD New in v3.3.9: - Hodl algo AVX2 optimized 218%, AVX2 is available on Haswell and newer CPUs - minor bug fixes and enhancements Hodl algo has seperate optimizations for CPUs with AES, AES + AVX, AES + AVX + AVX2 and without AES. Each CPU should compile the appropriate hodl optimizations for its architecture, however, this release has not been tested on all architectures. Due to code changes affecting each one differently there is a greater chance of undiscovered bugs. Please report any problems and include your CPU model, compile options, ie -march=, compile errors if any, and CPU capabilities check when cpuminer starts. In spite of the fact hodlcoin appears to be dying hodl algo can be mined at Nicehash and EuropeCoin can be mined an Suprnova. All credit for these hodl optimizations go to optiminer: https://bitcointalk.org/index.php?topic=1317918.msg15768475#msg15768475Edit: I'm also interested in performance of hodl on different CPU architectures. AVX2 should provide the best improvement on Haswell and newer CPUs, AVX should improve Sandybridge and Ivybridge, and older CPUs will likely see no improvement. AMD is as mystery to me.
|
|
|
I pushed the source to github: https://github.com/Optiminer/hodlminer-wolfIt contains SHA512 for both AVX and AVX2 but chooses one or the other at compile time. Ideally, it would detect at runtime which is supported and use the corresponding one. I get about 370 hash/s on my core i7-4770S. Very impressive! I will be releasing an updated version of cpuminer-opt shortly with your improvements.
|
|
|
TROUBLE COMPILING CPU-OPT IN LINUX--
My mining rigs are 64-bit Linux, Lubuntu 14.04.4, and they are popoulated with both nVidia and AMD cards. I compile ccminer, cpuminer-multi, and Genoil's miner on them, depending on the rig. I have not been able to compile CPU-OPT on them, however. If you have any general tips for Linux, please let me know, other wise I'll have to detail the errors and such.
I hope that you have the time to discuss this. My CPU miners are earning over a dollar a day mining Lyra2re while my mining rigs mine with GPUs. --scryptr
No compile problems reported for a long time so I need more info. Have you ever compiled cpiminer-opt anywhere? On that CPU? With That OS? If so what version and how? What is your CPU? And, of course commands and compile errors. JUST COMPILED CPUMINER-MULTI-- On several Linux rigs, I just compiled CPUminer-Multi, by TPruvot. My Genoil rigs needed autoconf and libjansson installed. I had to download your CPUminer-OPT and use a thumb drive to get it on my machines. Do you have a GitHub site yet? Anyway, the following is a paste from the compile log when I tried to compile your code: ====cut==== no file included from algo/echo/aes_ni/hash.c:19:0: algo/echo/aes_ni/hash.c: At top level: ./miner.h:525:20: warning: ‘algo_names’ defined but not used [-Wunused-variable] static const char *algo_names[] = { ^mv -f algo/groestl/sse2/.deps/cpuminer-grso.Tpo algo/groestl/sse2/.deps/cpuminer-grso.Po make[2]: *** [algo/echo/aes_ni/cpuminer-hash.o] Error 1 make[2]: *** Waiting for unfinished jobs.... mv -f algo/groestl/sse2/.deps/cpuminer-grso-asm.Tpo algo/groestl/sse2/.deps/cpuminer-grso-asm.Po mv -f algo/groestl/.deps/cpuminer-myr-groestl.Tpo algo/groestl/.deps/cpuminer-myr-groestl.Po make[2]: Leaving directory `/home/rig1/cpuminer338' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/rig1/cpuminer338' make: *** [all] Error 2 strip: 'cpuminer': No such file =====end cut==== I hope it clues you in. When I compiled CPUminer-Multi, several of the files already had "run" permission. With your download, I had to give permission to several files to execute under Linux. Thanks for the help. --scryptr You cut too much. Please answer the questions in my previous post. AES problems are usually because your CPU does not have AES but the compiler is compiling for AES. Please answer the questions in my previous post.
|
|
|
TROUBLE COMPILING CPU-OPT IN LINUX--
My mining rigs are 64-bit Linux, Lubuntu 14.04.4, and they are popoulated with both nVidia and AMD cards. I compile ccminer, cpuminer-multi, and Genoil's miner on them, depending on the rig. I have not been able to compile CPU-OPT on them, however. If you have any general tips for Linux, please let me know, other wise I'll have to detail the errors and such.
I hope that you have the time to discuss this. My CPU miners are earning over a dollar a day mining Lyra2re while my mining rigs mine with GPUs. --scryptr
No compile problems reported for a long time so I need more info. Have you ever compiled cpiminer-opt anywhere? On that CPU? With That OS? If so what version and how? What is your CPU? And, of course commands and compile errors.
|
|
|
Hashrate of x = payout of y.
Not quite. Hash x = payout y Like electricity it's paid by the total (kWh) not the rate (kW).
|
|
|
|