I previously asked if someone would be kind enough to do a test on a Ryzen 3xxx
Ryzen 5 3600 @ 4.2GHz (CPU Core Ratio - 42x, PBO is disabled) GCC 9.2.1: blake2s: znver1 231.46 MH/s znver2 238.08 MH/s avx2 236.11 MH/s avx 236.09 MH/s
sha256t: znver1 61.44 MH/s znver2 61.69 MH/s avx2 46.25 MH/s avx 46.26 MH/s
Many thanks. It's not quite the results I expected. I was hoping AVX2 would be better. SHA is clearly the winner over AVX2. That was expected given the AVX2 results. I see no need for seperate znver1 and znver2 packages, there is only a slight improvement for AVX and AVX2. I also see no need to override SHA until Intel CPUs with SHA become mainstream. with Icelake.
|
|
|
I previously asked if someone would be kind enough to do a test on a Ryzen 3xxx to compare AVX2 vs AVX performance. With Ryzen 1xxx AVX2 was often slower than AVX. The results will help me decide how to deliver Windows binaries for Ryzen and whether AVX2 should override SHA. Currently only Ryzen has SHA so it's simple, use it if it's there because AVX2 is slow. It gets more complicated when Intel releases Icelake with SHA for the desktop. AVX2 is faster than SHA on Intel CPUs. Which is faster on Ryzen 3xxx and does the new znver2 compile arch make a difference? Requirements: Any Ryzen or TR CPU from the 3xxx series. A recent Linux distro. Goal: Compare AVX2 vs AVX performance on Ryzen 3000 series CPUs using blake2s algo. Compare AVX2 vs SHA performance on Ryzen 3000 series CPUs usimg sha256t algo. Determine if the new znver2 compile arch has an effect on the results. Determine if Intel and Ryzen need to prioritize features differently.. Procedure: 1. Compile seperate builds for znver1, znver2, and avx2 and avx ./autogen.sh CFLAGS="-O3 -march=znver1 -Wall" ./configure --with-curl make -j 4 mv cpuminer cpuminer-znver1 make clean CFLAGS="-O3 -march=znver2 -Wall" ./configure --with-curl make -j 4 mv cpuminer cpuminer-znver2 make clean CFLAGS="-O3 -march=core-avx2 -maes -Wall" ./configure --with-curl make -j 4 mv cpuminer cpuminer-avx2 [make clean CFLAGS="-O3 -march=core-avx -maes -Wall" ./configure --with-curl make -j 4 mv cpuminer cpuminer-avx
2. Do a blake2s benchmark on each build. 5 minutes each should be enough to produce a stable hash rate. ./cpuminer-znver1 -a blake2s --benchmark --hash-meter ./cpuminer-znver2 -a blake2s --benchmark --hash-meter ./cpuminer-avx2 -a blake2s --benchmark --hash-meter ./cpuminer-avx -a blake2s --benchmark --hash-meter
3. Repeat the tests with sha256t. 4. Post your results including CPU model, GCC version and the stable total hash rate for each test. Thanks in advance, the results will help ensure optimum performance on Ryzen CPUs.
|
|
|
Hi, i want to mine Monero wothz a Raspberry Pi. A tutorial i found works with your CPUMiner-Multi. But when i insert this code: sudo ./configure CFLAGS="-Ofast -mtune=cortex-a53 -mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8 -mneon-for-64bits" CXXFLAGS="-Ofast -mtune=cortex-a53 -mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8 -mneon-for-64bits" --with-crypto --with-curl
It gives me an error: C Compiler cannot create executables Can you please help me? I'm working with a Raspberry Pi 4 Modell B Two things: 1. Monero just forked to a new algo called RandomX, the old miners won't work anymore. 2. The compile error is probably your configure command. It's usually best to start with the defaults: ./build.sh and only mess with tuning options if that fails or you know what you're doing.
|
|
|
Multi CPU "rigs" don't exist. Multi CPU motherboards and the CPUs that support them are very expensive and support only a few CPUs.
Intel Phi compute modules can be installed like GPUs but are also very expensive.
The closest you can get to a CPU mining rig is a Ryzen R9 or Threadripper with 16 to 32 cores and double the threads. There could even be a 64 core TR in the near future.
As far as cost goes the more systems you build the more the overhead in motherboard, RAM, PSU, SSD etc. Fewer systems with bigger CPUs would be more cost effective but near the high end the CPU prices rise quicker negating the overhead savings of fewer systems.
You'll have to find the sweet spot.
|
|
|
After many delays, AVX-512 was supposed to be generally available 3 years ago with Intel Cannon Lake, cpuminer-opt now supports AVX-512. AVX-512 is currently available on Intel Skylake-X and the newly released Cascadelake-X CPUs from Intel. It is also available on Icelake but only for mobile CPUs. It looks like AVX512 will finally be released for mainstream desktops in 2020. I'm not aware of plans to add AVX512 to AMD Ryzen CPUs. Algos will be optimized gradually over the next few releases. First up are argon2d, blake2s, keccak, keccakc, skein and skein2. https://github.com/JayDDee/cpuminer-opt/releases/tag/v3.10.0
|
|
|
Some notes about pecuriarities using GCC 9 that affect cpuminer-opt and may be of interest to developpers.
1. It produces more warnings about array bounds, found some violations in cpuminer-opt that will be fixed in the next release.
2. It no longer includes AES in "-march=core-avx2", need to add aes manually: "-march=core-avx2 -maes".
3. It doesn't rebuild Makefile.in after removing a source file from Makefile.am. The compiler still looked for the deleted file. It was necessary to edit Makefile.in manually to remove all references to the deleted file. Will follow up.
Edit: I was missing automake, didn't need it until I changed Makefile,am
For the time being I will continue to use GCC 7 for devepolment and production of the Windows binaries.
|
|
|
AVX512 is coming soon.
I've been waiting over a year for a reasonably priced CPU with AVX512. With the price drops for Cascade Lake X I was thinking of getting one. Instead I got an Ice Lake laptop for less than the cheapest Cascade Lake X CPU. But I won't be using it to mine, just develop.
Ice Lake also has VAES which will can also speed up algos that use AES.
I'm setting it up now, had a problem with the NVME SSD being recognized by Ubuntu. Got an external SSD and all was fine. I would have liked to use he built in SSD but I have a feeling the BIOS is preventing it. Some tips suggest changing it to AHCI but there are no BIOS options for the SSD. Another possibility is a lack of SATA support. I may revisit that issue later, the external SSD works fine and it leaves the system otherwise untouched. If anyone has some ideas I'll check them out.
AVX512 wil be rolled out gradually over the next several releases with single function algos optimized first and the longer chained algos later. VAES will come much later.
Stay tuned.
|
|
|
To anyone interested in sorting out our claims around the displayed hash rates by closed source AMD ethash miners
OK I'm truly impressed. We both feel passionately about the issue of hashrate accuracy and I had also recently taken steps to improve transparency. My initial misunderstanding of who you were closed my mind to the fact you knew exactly what you were doing all along, and in the end I agree with your approach 100%. You've factored in the fee, you have control of the pool side, you have a high share rate to reduce variability (as well as a form of stress test on the miner, nice touch), everything is covered except the math in the miner. Your tool indeed isolates the problem as I was hoping it would. I'm sorry for crapping in your thread, I'll be cleaning up my mess now.
|
|
|
While testing some blake2s code for x25x in v3.9.11 I noticed some peculiar results. I made some changes to the AVX code whcih inproves performance on my Skylake but the same changes slowed my Ryzen 1700.
Ryzen ver1 is known to have poor AVX2 performance but I have no idea about ver2.
If anyone has done some comparison testing of Ryzen AVX vs AVX2, or would like to do some testing please post your results. It will help me decide how to proceed particularly with the Windows binaries package.
I wouild like to know whether AMD has improved AVX2 in zen2 and whether the compiler makes a difference. znver2 is supported starting in GCC 9.
Blake2s is a good test algo for AVX and AVX2. There's no profit to be made mining blake2s with a CPU but a benchmark test will do.
./cpuminer -a blake2s --benchmark --hash-meter
TIA.
|
|
|
It always amazes me that some people would run the CPU/GPU hot rather than run the fans hard. Fans are cheaper to replace, but I haven't had one fail yet in 5 years, Just clean them regularly.
as long as you dont go higher than manufacture's maximum rpm then is okay, A GPU a fan failure under warantee should be covered regardless. A failure of a 3rd party CPU cooler could be blamed on the mobo for overdriving it. I have my fan curves set for 80% @ 70C rising to 100% @ 80C. The cooler algos (and cooler weather) don't run the fans as hard.
|
|
|
It always amazes me that some people would run the CPU/GPU hot rather than run the fans hard. Fans are cheaper to replace, but I haven't had one fail yet in 5 years, Just clean them regularly.
|
|
|
@pinpins, While testing new code for x25x I encountered an interesting problem that isn't related to the new code and hasn't occurred on other algos. While mining in pool mode I submitted a share with diff > netdiff and cpuminer reported it as a solved block. However, it never showed up anywhere in the pool stats. Regular shares appear to be reported correctly. Do you have logs that might explain what happened to that block? Time zone is UTC-5. [2019-11-25 13:24:01] New block x25x.mine.zergpool.com:3225 x25x block 292718 Diff: net 18.9854, stratum 0.008, target 0.008 TTF @ 205.98 kh/s: block 4d13h, share 2m46s [2019-11-25 13:26:00] Share 2 submitted by thread 15, lane 3 [2019-11-25 13:26:00] BLOCK SOLVED, 398.642 secs (176ms), A/R/B: 2/0/1 Share diff 66.2 (348.631468%), block 292718
|
|
|
I think it's time to reflect on the cpuminer-opt project.
TLDR:
Not going to compete with already optimized new CPU algos like RandomX. Next big phase is AVX512. I know I'm flogging a dead horse. Everything depends on my motivation.
The long version:
Mining is in the dumps in general, exchange rates way down. Competition from ASICs & FPGAs is making it worse for GPUs and even worse for CPUs.
One exception is the CPU-friendly algos like yespower and randomx, and Ryzen CPUs.
I started this project in better times with the purpose of importing existing X11 functions that were optimized for AES & SSE2. That was mostly cut & paste.
Some of those functions were easilly promoted to AVX2 like cubehash and lyra2.
I then started to optimize other functions to hash in parallel similar to how GPUs hash. SIMD has some limitations so not all functions can be parallelized efficiently.
I also attempted to optimize CPU algos in various ways with very limited success. Many CPU algos can't be vectorized at all or can't be vectorized using SIMD. Most ot of those than can have already been optimized.
So that brings things up to date. I don't anticipate there is much more performance I can squeeze out of the code. cpuminer-opt 3.9.10 is probably as fast as it will get with AVX2.
The next big phase is AVX512. All of the parallel AVX2 can be promoted and some of the linear AVX2 can also be promoted to AVX512. A rough estimate is a 1.5x improvement in algos with a significant portion of AVX2.
There are a few factor that limit the gains: only the portions of algos that currently use AVX2 will see improvement, memory usage is doubled possibly creating bottlenecks, AVX512 code runs at a lower clock speed than AVX2, and AVX512 has extra overhead for some operations.
Starting serious AVX512 development requires a CPU with AVX512. With the release of Intel's Cascade Lake X CPUs and the big price reductions, combined with the failure of my core2-quad system, it may be time to buy a new Cascade Lake X.
The loss of my core2 means I don't have a CPU to test SSE2 natively. I don't expect that to cause any problems. SSE2 code will be very stable going forward and I can still test the SSE2 build.
Why am I still doing this when these algos are even dead from a GPU perspective?
One reason is no one else is doing it. For many algos the existing CPU miners are not optimized and for others CPU miners don't exist.
Another reason is for fun. I'm retired and this is a hobby. I have a lot of experience in development and support but not on Intel CPUs and not using C and not using Linux. So this has been a big learning experience. I've made a lot of mistakes, fixed those I've discovered but there are probably many more.
In addition to getting used to the environment I also learned about SIMD programming (linear and parallel) using intrinsic functions and, more recently, using ASM.
The learning aspect is very important because it's exercise for my aging brain. Doing hex arithmetic and permuting bytes in my head is quite a workout.
As usual I make no promisses. Development of AVX512 will depend on my level of motivation which is influenced by many factors.
|
|
|
It will also be easier to create a miner for it to run in FPGA because of the compatibility with CPU mining.
At best you can create emulation of CPU which will be less efficient than regular CPU (of course). A point that is missed by many. Emulating a CPU is a lot more complex than emulating a hashing algorithm. There is always FUD leading up to a big fork, most of it self serving.
|
|
|
Sorry for a bit off topic. For the same price would it be better to buy (2x Ryzen 5 3600) or a single Ryzen 9 3900x?
well 2 R5 3600 should be around 200 euro less, then ofc mobo ram etc... also you will need a good motherboard for 3900x, decent cpu cooler etc.... from my point of view the 3600 is the winner. At this time I would agree because AMD now owns the 8+ core consumer market with no price pressure from Intel........yet. When Intel launches a price war with Cascade Lake X AMD may respond by lowering the price of the bigger R7s to keep their price advantage. Then there's the upcoming TR3000 which could also be disruptive. In other news, Tom has a story about the new Intel Ponte Vecchio GPUs to be released in 2020 possibly creating more competition in the GPU market. With all these exciting developments it's too bad mining is in the dumps generally.
|
|
|
Maintenance has been completed
Lyra2z330 appears to be fixed, no more stale shares. I haven't found any other problems since I reported lyra2z330 but I haven't tested all algos. Network latency is still around 150ms, but that's probably a geography issue, I'm in NA. Thanks.
|
|
|
You're taking a big risk installing closed source software from a newbie with his first post.
One big red flag (several flags actually) on the website is the icons for Windows, Linux, Apple and Android, but only Windows is avaiable for download.
I wouldn't touch it wearing a condom.
|
|
|
install latest cuda: it should use gcc 7 gcc 6 did the trick. It's the simpler choice as the package is available in the repo, cuda 10 is not. Thanks.
|
|
|
I haven't found a xmrig discussion thread so I'll post here. Has anyone gotten cuda-plugin to compile on Ubuntu 18.04? It compiles on 19.04 but 18.04 fails: -- Found CUDA: /usr (found suitable version "9.1", minimum required is "8.0") -- Configuring done -- Generating done -- Build files have been written to: /home/coin/miners/xmrig/xmrig-cuda-2.0.0-beta/build coin@sys24:~/miners/xmrig/xmrig-cuda-2.0.0-beta/build$ make [ 8%] Building NVCC (Device) object CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/xmrig-cu_generated_randomx_wownero.cu.o In file included from /usr/include/host_config.h:50:0, from /usr/include/cuda_runtime.h:78, from <command-line>:0: /usr/include/crt/host_config.h:121:2: error: #error -- unsupported GNU version! gcc versions later than 6 are not supported! #error -- unsupported GNU version! gcc versions later than 6 are not supported! ^~~~~ cc1plus: warning: unrecognized command line option ‘-Wno-class-memaccess’ CMake Error at xmrig-cu_generated_randomx_wownero.cu.o.Release.cmake:219 (message): Error generating /home/coin/miners/xmrig/xmrig-cuda-2.0.0-beta/build/CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/./xmrig-cu_generated_randomx_wownero.cu.o
CMakeFiles/xmrig-cu.dir/build.make:105: recipe for target 'CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/xmrig-cu_generated_randomx_wownero.cu.o' failed make[2]: *** [CMakeFiles/xmrig-cu.dir/src/RandomX/wownero/xmrig-cu_generated_randomx_wownero.cu.o] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/xmrig-cu.dir/all' failed make[1]: *** [CMakeFiles/xmrig-cu.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2
|
|
|
|