Pages:
Author

Topic: [ANN] cpuminer-opt v3.14.2, open source optimized multi-algo CPU miner (Read 9676 times)

full member
Activity: 1372
Merit: 216

ANSWERING MY OWN POST
=================

The Rpi 5 supposedly has the crypto instructions. See below:

(QUOTE  from Reddit)


"@hyc
 
Amazing that they finally quit being cheapskates and decided to pay for the crypto instruction extension that every other ARM producer in the world has included for the past 8 years already. I wonder what changed their minds.

So it’s another Broadcom chip quadcore with only 2MB L3 cache. I.e., only enough cache to run a single RandomX thread. The other cores will be wasted.

These have always been and continue to be worthless junk. For practical use these days you need closer to 4GB RAM per core, and of course 2MB cache per core. This thing only has enough resources to utilize 1 (core."

(END QUOTE)
 
Although I have been able to compile Xmrig on my Rpi 4, none of your recent crypto builds worked.  I finally was able to purchase an Rpi 5 from Adafruit and will try again.

I have several Orange Pi 5 boards mining Verus coin.  I'll be able to check the Rpi 5 hashrate in comparison.

Apologies to the quoted Reddit user.  The post is 5 months old, and from a MoneroMiniing thread.  I have not done a thorough search to verify its validity.

--scryptr

Thanks for the follow up. It's nice to know RPi5 has crypto. I've done testing on RPi4B, definitely no crypto, OPi5 with crypto, and Apple M2 from a VM.
I can't get it to compile on native MacOS. Crypto doesn't work in the VM but that could be a VM issue. I would be surprised if M2 didn't support crypto.
legendary
Activity: 1792
Merit: 1028
R-PI MAY BE CRIPPLED--

This is an old post from "oink70", who optimized Monkins' Verushash CCminer:

        "Oink70 (2 yr. ago on Reddit)

Mining Verus is impossible on any Raspberry device. The Raspberry company did not license all CPU instructions, so the required functions are not available on Raspberry branded devices.  As far as I know Raspberry is the only brand that crippled the CPU, so any other ARM device should work."

I picked up your recent interest in coding for ARM processors after reading the CryptoMining-Blog post on VerusCoin (VRSC) mining.  I have been able to compile XMrig and tpruvot's CPUminer-Multi on my R-pi.  The above CCminer packages (Monkins & Oink70) will not compile.

I am currently mining VerusCoin on a new Orange Pi 5.  Verushash and MinotaurX look like good targets for coding, if you are able to find the right functions.

Raspberry Pi 5 is scheduled to hit the market this month, I believe.  The CPU runs at 2.4 GHZ.

Hope to see some fresh code to match!       --scryptr

Hold off on testing, it won't compile.

I have now have a Raspberry Pi so I have to work through the build issues. More news soon.

Looking for miners with ARM CPUs.

cpuminer-opt-3.23.4, source code only, has initial support for 64 bit AArch64 CPUs with NEON, SHA2 & AES.
It's experimental and untested. It needs testers. See Wiki for details...

https://github.com/JayDDee/cpuminer-opt/wiki/Support-for-AARCH64

ANSWERING MY OWN POST
=================

The Rpi 5 supposedly has the crypto instructions. See below:

(QUOTE  from Reddit)


"@hyc
 
Amazing that they finally quit being cheapskates and decided to pay for the crypto instruction extension that every other ARM producer in the world has included for the past 8 years already. I wonder what changed their minds.

So it’s another Broadcom chip quadcore with only 2MB L3 cache. I.e., only enough cache to run a single RandomX thread. The other cores will be wasted.

These have always been and continue to be worthless junk. For practical use these days you need closer to 4GB RAM per core, and of course 2MB cache per core. This thing only has enough resources to utilize 1 (core."

(END QUOTE)
 
Although I have been able to compile Xmrig on my Rpi 4, none of your recent crypto builds worked.  I finally was able to purchase an Rpi 5 from Adafruit and will try again.

I have several Orange Pi 5 boards mining Verus coin.  I'll be able to check the Rpi 5 hashrate in comparison.

Apologies to the quoted Reddit user.  The post is 5 months old, and from a MoneroMiniing thread.  I have not done a thorough search to verify its validity.

--scryptr
newbie
Activity: 3
Merit: 0
Got it, thanks for the answer. I will sort this out.
full member
Activity: 1372
Merit: 216
I don't see anything wrong with the parameters and the reject reason indicates a different problem.
It's a difficulty targetting error. This is either a miner bug or a pool bug. Since yespower has been working for years
a pool bug is likely.

If you let the miner run for a while you should see some accepted shares. You can also use -m as a workaround to increase
the target diff and filter out the lower diff shares that would be rejected.
newbie
Activity: 3
Merit: 0

 Data from src/primitives/block.cpp
 
 
Code:
  uint256 CBlockHeaderUncached::GetWorkHash() const
{
    static const yespower_params_t yespower_1_0_config = {
        .version = YESPOWER_1_0,
        .N = 2048,
        .r = 32,
        .pers = (const uint8_t *)"The gods had gone away, and the ritual of the religion continued senselessly, uselessly.",
        .perslen = 88
    };

    uint256 hash;
    CDataStream ss(SER_NETWORK, PROTOCOL_VERSION);
    ss << *this;
    if (yespower_tls((const uint8_t *)&ss[0], ss.size(), &yespower_1_0_config, (yespower_binary_t *)&hash)) {
        fprintf(stderr, "Error: CBlockHeaderUncached::GetPoWHash(): failed to compute PoW hash (out of memory?)\n");
        exit(1);
    }

    return hash;
}

 ./cpuminer -a yespower -o stratum+tcp://xxx.xxx.xxx.xxx:xxxx -u wallet -p c=coin --param-n 2048 --param-r 32 --param-key "The gods had gone away, and the ritual of the religion continued senselessly, uselessly." --cpu-affinity=0x1555555 -t 10 -D
   
 
Code:
    **********  cpuminer-opt 23.15  ***********
     A CPU miner with multi algo support and optimized for CPUs
     with AVX512, SHA and VAES extensions by JayDDee.
     BTC donation address: 12tdvfF7KmAsihBXQXynT6E6th2c2pByTT

[2024-02-25 13:05:04] Yespower parameters: N= 2048, R= 32
[2024-02-25 13:05:04] Key= "The gods had gone away, and the ritual of the religion continued senselessly, uselessly."

CPU: AMD Ryzen 9 5900X 12-Core Processor           
SW built on Feb 24 2024 with GCC-8.4.0 Linux
CPU features:  x86_64 AVX2   VAES SHA256
SW features:   x86_64 AVX2   VAES SHA256
Algo features:        SSE2   NEON   SHA256
[2024-02-25 13:05:04] Enabled optimizations: SSE2 SHA256
[2024-02-25 13:05:04] CPU affinity [!.!.!.!.!.!.!.!.!.!.!.!.]
[2024-02-25 13:05:04] Creating stratum thread
[2024-02-25 13:05:04] Stratum connect stratum+tcp://89.189.177.43:6234
[2024-02-25 13:05:04] Threads restarted for new work.
[2024-02-25 13:05:04] Default miner thread priority 0 (nice 19)
[2024-02-25 13:05:04] Binding thread 0 to cpu 0
[2024-02-25 13:05:04] Thread 0 waiting for first job
[2024-02-25 13:05:04] Binding thread 1 to cpu 2
[2024-02-25 13:05:04] Binding thread 2 to cpu 4
[2024-02-25 13:05:04] Thread 2 waiting for first job
[2024-02-25 13:05:04] Binding thread 3 to cpu 6
[2024-02-25 13:05:04] Thread 3 waiting for first job
[2024-02-25 13:05:04] Thread 1 waiting for first job
[2024-02-25 13:05:04] Binding thread 4 to cpu 8
[2024-02-25 13:05:04] Thread 4 waiting for first job
[2024-02-25 13:05:04] Binding thread 5 to cpu 10
[2024-02-25 13:05:04] Thread 5 waiting for first job
[2024-02-25 13:05:04] Binding thread 6 to cpu 12
[2024-02-25 13:05:04] Thread 6 waiting for first job
[2024-02-25 13:05:04] Binding thread 7 to cpu 14
[2024-02-25 13:05:04] Thread 7 waiting for first job
[2024-02-25 13:05:04] Binding thread 8 to cpu 16
[2024-02-25 13:05:04] Thread 8 waiting for first job
[2024-02-25 13:05:04] 10 of 24 miner threads started using 'yespower' algorithm
[2024-02-25 13:05:04] Binding thread 9 to cpu 18
[2024-02-25 13:05:04] Thread 9 waiting for first job
[2024-02-25 13:05:04] Stratum session id: 7928e08258c0dfeb645c7cf62eb8ad29
[2024-02-25 13:05:04] Stratum extranonce1 0x8100005b, extranonce2 size 4
[2024-02-25 13:05:04] Stratum connection established
[2024-02-25 13:05:05] CPU temp: curr 75 C max 0, Freq: 2.197/3.571 GHz
[2024-02-25 13:05:05] nbits d7d9001e: shift 30(1), bits 00d9d7, diff 0.00459046
[2024-02-25 13:05:05] Threads restarted for new work.
[2024-02-25 13:05:05] New Stratum Diff 1, Block 1321009, Tx 0, Job a1
                      Diff: Net 0.0045905, Stratum 1, Target 1.5259e-05
[2024-02-25 13:05:15] CPU temp: curr 80 C max 75, Freq: 3.468/4.485 GHz
[2024-02-25 13:05:15] nbits 67db001e: shift 30(1), bits 00db67, diff 0.00455777
[2024-02-25 13:05:15] Threads restarted for new work.
[2024-02-25 13:05:15] New Block 1321010, Tx 0, Netdiff 0.0045578, Job a2
                      Diff: Net 0.0045578, Stratum 1, Target 1.5259e-05
                      TTF @ 1721.76 h/s: Block 3h09m, Share 0m38s
                      Net hash rate (est) 1957.55 kh/s
[2024-02-25 13:05:20] 1 Submitted Diff 2.3702e-05, Block 1321010, Job a2
[2024-02-25 13:05:20] Xnonce2 00000000
[2024-02-25 13:05:20] Data[ 0: 9]: 00000020 0dd29f0d 80fc9c4c 43a51beb 719f8dc1 2d814a97 a51743a1 77e6c14e 3a692087 55688517
[2024-02-25 13:05:20] Data[10:19]: de376395 4c4d0394 4bd0d82d 112f5cb8 c91c7905 aa1cccbe 43133a52 9ad8da65 67db001e 139d9999
[2024-02-25 13:05:20] Hash[ 7: 0]: 0000a4ce a30597d4 4fa1fea8 2067f7dc f88eb09b e8ade4db 73fee27c ef9e97a4
[2024-02-25 13:05:20] Targ[ 7: 0]: 00010000 00000000 00000000 00000000 ffffffff ffffffff ffffffff ffffffff
[2024-02-25 13:05:21] 1 A0 S0 Rejected 1 B0, 16.300 sec (20ms)
                      Reject reason: Low difficulty share
                      Share diff: 2.3702e-05, Target: 1.5259e-05
[2024-02-25 13:05:21] CPU temp: curr 81 C max 80, Freq: 3.573/4.478 GHz
[2024-02-25 13:06:16] CPU temp: curr 81 C max 81, Freq: 3.567/4.466 GHz
[2024-02-25 13:06:16] nbits 67db001e: shift 30(1), bits 00db67, diff 0.00455777
[2024-02-25 13:06:16] Threads restarted for new work.
[2024-02-25 13:06:16] New Work: Block 1321010, Tx 0, Netdiff 0.0045578, Job a3
                      Diff: Net 0.0045578, Stratum 1, Target 1.5259e-05
                      TTF @ 1670.84 h/s: Block 3h15m, Share 0m39s
                      Net hash rate (est) 275.71 kh/s
[2024-02-25 13:06:27] nbits 93dc001e: shift 30(1), bits 00dc93, diff 0.00453355
[2024-02-25 13:06:27] Threads restarted for new work.
[2024-02-25 13:06:27] New Block 1321011, Tx 0, Netdiff 0.0045336, Job a4
                      Diff: Net 0.0045336, Stratum 1, Target 1.5259e-05
                      TTF @ 1679.02 h/s: Block 3h13m, Share 0m39s
                      Net hash rate (est) 474.91 kh/s
[2024-02-25 13:07:16] 2 Submitted Diff 4.3612e-05, Block 1321011, Job a4
[2024-02-25 13:07:16] Xnonce2 00000000
[2024-02-25 13:07:16] Data[ 0: 9]: 00000020 f63a4c93 021a6851 37f8e3dc 4d0c5c46 271034fa 0909e11d 3528610e 25d12c42 7c560046
[2024-02-25 13:07:16] Data[10:19]: c4e1b1c2 654b7e63 27c71d9a eb4ce63e 9d1f254e 4a88186c f87e3515 e3d8da65 93dc001e 85eecc4c
[2024-02-25 13:07:16] Hash[ 7: 0]: 00005991 b81bb592 60046084 787aea9a 8d2eacc4 98eaa398 46aa60a6 976079ed
[2024-02-25 13:07:16] Targ[ 7: 0]: 00010000 00000000 00000000 00000000 ffffffff ffffffff ffffffff ffffffff
[2024-02-25 13:07:16] 2 A0 S0 Rejected 2 B0, 115.246 sec (26ms)
                      Reject reason: Low difficulty share
                      Share diff: 4.3612e-05, Target: 1.5259e-05
[2024-02-25 13:07:16] CPU temp: curr 82 C max 81, Freq: 3.551/4.466 GHz
[2024-02-25 13:07:19] CPU temp: curr 83 C max 82, Freq: 3.559/4.466 GHz
[2024-02-25 13:07:19] nbits 93dc001e: shift 30(1), bits 00dc93, diff 0.00453355
[2024-02-25 13:07:19] Threads restarted for new work.
[2024-02-25 13:07:19] New Work: Block 1321011, Tx 0, Netdiff 0.0045336, Job a5
                      Diff: Net 0.0045336, Stratum 1, Target 1.5259e-05
                      TTF @ 1618.89 h/s: Block 3h20m, Share 0m40s
                      Net hash rate (est) 290.62 kh/s
[2024-02-25 13:07:33] 3 Submitted Diff 0.00057476, Block 1321011, Job a5
[2024-02-25 13:07:33] Xnonce2 00000000
[2024-02-25 13:07:33] Data[ 0: 9]: 00000020 f63a4c93 021a6851 37f8e3dc 4d0c5c46 271034fa 0909e11d 3528610e 25d12c42 d90628a6
[2024-02-25 13:07:33] Data[10:19]: 966eb828 6b563a02 4bfb42e5 f981737f 32fd8624 a73634e9 6b0e2113 16d9da65 93dc001e a9a19999
[2024-02-25 13:07:33] Hash[ 7: 0]: 000006cb deaa1c81 86b9b6ec b92ac119 de385dad fe036c1e fde94d18 feee6f4a
[2024-02-25 13:07:33] Targ[ 7: 0]: 00010000 00000000 00000000 00000000 ffffffff ffffffff ffffffff ffffffff
[2024-02-25 13:07:33] 3 A0 S0 Rejected 3 B0, 17.451 sec (28ms)
                      Reject reason: Low difficulty share
                      Share diff: 0.00057476, Target: 1.5259e-05
[2024-02-25 13:07:38] 4 Submitted Diff 6.5757e-05, Block 1321011, Job a5
[2024-02-25 13:07:38] Xnonce2 00000000
[2024-02-25 13:07:38] Data[ 0: 9]: 00000020 f63a4c93 021a6851 37f8e3dc 4d0c5c46 271034fa 0909e11d 3528610e 25d12c42 d90628a6
[2024-02-25 13:07:38] Data[10:19]: 966eb828 6b563a02 4bfb42e5 f981737f 32fd8624 a73634e9 6b0e2113 16d9da65 93dc001e 963d3333
[2024-02-25 13:07:38] Hash[ 7: 0]: 00003b67 72ffa2e4 065db32e 0995bc43 371267d0 77fbf7ab 90e8ccd6 2ba09cb5
[2024-02-25 13:07:38] Targ[ 7: 0]: 00010000 00000000 00000000 00000000 ffffffff ffffffff ffffffff ffffffff
[2024-02-25 13:07:38] 4 A0 S0 Rejected 4 B0, 4.416 sec (20ms)
                      Reject reason: Low difficulty share
                      Share diff: 6.5757e-05, Target: 1.5259e-05
^C[2024-02-25 13:07:53] SIGINT received, exiting
[2024-02-25 13:07:53] Program exit
full member
Activity: 1372
Merit: 216
Hello JayDDee.
Tell me how to specify the value for yespower_params.perslen = strlen(opt_param_key) in the miner;
What if perslen value is not zero? and, for example, equals 80
When specifying only three parameters, .N . r. pers there is always a rejection of the solution in the miner
When mining with the yespower algorithm.

The perslen is derived from the length of the param-key arg. If the coin spec has the length wrong (at least one instance I know of)
if effectively changes the pers string (param-key). Check out the yespower section here... https://github.com/JayDDee/cpuminer-opt/wiki/Supported--Algorithms

If you still have problems post full problem description including command line and miner output.
newbie
Activity: 3
Merit: 0
Hello JayDDee.
Tell me how to specify the value for yespower_params.perslen = strlen(opt_param_key) in the miner;
What if perslen value is not zero? and, for example, equals 80
When specifying only three parameters, .N . r. pers there is always a rejection of the solution in the miner
When mining with the yespower algorithm.
full member
Activity: 1372
Merit: 216
for one cpu mask 0x1515151515151515, how repeat for second cpu?

I answered twice, I don't what else to say.
jr. member
Activity: 51
Merit: 5
dual cpu with 64 cores. now I disable auto-affinity and use taskset in Ubuntu, but I haven’t figured out how to do it in Hive OS yet
how repeat for example 0x1111111111111111 for second cpu?

As I stated the mask is repeated over each group of 64 CPUs. What are you trying to do with the mask?
I'd like all the details of your setup including miner console logs, I have no experience with multiple CPUs.

Edit: avoid taskset, it doesn't appear to assign individual threads.
for one cpu mask 0x1515151515151515, how repeat for second cpu?
full member
Activity: 1372
Merit: 216
dual cpu with 64 cores. now I disable auto-affinity and use taskset in Ubuntu, but I haven’t figured out how to do it in Hive OS yet
how repeat for example 0x1111111111111111 for second cpu?

As I stated the mask is repeated over each group of 64 CPUs. What are you trying to do with the mask?
I'd like all the details of your setup including miner console logs, I have no experience with multiple CPUs.

Edit: avoid taskset, it doesn't appear to assign individual threads.

jr. member
Activity: 51
Merit: 5
miner does not support affinity mask of more than 64 cores?

Correct. The CLI is limited to 64 bit integers. The 64 bit mask is repeated for CPUs 64 to 127, 128 to 191, etc.
On windows the mask used is the size of a CPU group (CPU groups not supported with prebuilt binaries) and is
repeated accordingly for each group if the group size is less than 64.

I can't think of a practical case where affinity would not be repeating pattern and require all unique bits.

If you have a CPU with more than 64 threads I would be interested in your experience.
dual cpu with 64 cores. now I disable auto-affinity and use taskset in Ubuntu, but I haven’t figured out how to do it in Hive OS yet
how repeat for example 0x1111111111111111 for second cpu?
full member
Activity: 1372
Merit: 216
miner does not support affinity mask of more than 64 cores?

Correct. The CLI is limited to 64 bit integers. The 64 bit mask is repeated for CPUs 64 to 127, 128 to 191, etc.
On windows the mask used is the size of a CPU group (CPU groups not supported with prebuilt binaries) and is
repeated accordingly for each group if the group size is less than 64.

I can't think of a practical case where affinity would not be repeating pattern and require all unique bits.

If you have a CPU with more than 64 threads I would be interested in your experience.
jr. member
Activity: 51
Merit: 5
miner does not support affinity mask of more than 64 cores?
full member
Activity: 1372
Merit: 216
cpuminer-opt-23.15 released

- Fixed x11gost (sib) algo for all architectures, broken in v3.23.4.
- ARM: Fugue AES optimizations enabled.
- ARM: quark, qubit, x11gost algos optimized with NEON & AES.

This is a major milestone in ARM support bringing NEON up to parity with SSE4.2. The focus now changes to tying up loose ends,
and fixing any bugs. The pace of new releases should return to normal levels after the frequent updates of the past 2 months.
full member
Activity: 1372
Merit: 216
cpuminer-opt23.12

Several bugs fixes and speed improvements for x16r family for all CPU architectures.

----

cpuminer-opt-23.11

This is a release candidate for full AArch64 support, marking the end of the Beta phase.
Fixed hmq1725 & x25x algos, SSE2 & NEON, broken in v3.23.4.
Most CPU-mineable SHA3 algos (X*) upgraded to 2-way SSE2 & NEON.
full member
Activity: 1372
Merit: 216
cpuminer-opt-23.10 released

Includes important fixes, all users should upgrade.

-x86_64: Fixed scrypt, scryptn2 algos SSE2.
-Fixed sha512256d algo AVX2, SSE2, NEON.
-Fixed a bug in Skein N-way that reduced performance.
-ARM: Skein algo optimized for NEON, SHA2 & SSE2.
-Skein2 algo 2-way optimized for NEON & SSE2.
full member
Activity: 1372
Merit: 216
cpuminer-opt-23.9 released

x86_64: fixed minotaurx crash, broken in 23.7.
ARM: #407 fix compile error due to incorrect type casting for vrev instruction argument.

Previous release:

cpuminer-opt-23.8 released

Errata: Minotaurx crashes on x86_64 since v23.7, it will be fixed in the next release.

The big news is cpuminer-opt is completely divorced from OpenSSL. It's no longer necessary to install it on Linux
and it's no longer necessary to include the libcrypto DLL file in the Windows package.

Hodl algo has been removed as well as ASM code that is no longer used. There are some improvements to AArch64
AES as well. Details and download links are available in the OP.

Update for MacOS ARM: I can't get cpuminer-opt to work on MacOS natively but it works from a Linux VM using UTM.
Performance is excellent, Mac Mini is 4x Orange Pi 5.
full member
Activity: 1372
Merit: 216
cpuminer-opt-23.6 released

Problems with sha256 are fixed. SHA extension are enabled on ARM but has not been tested,
All users should upgrade from v23.5. See OP for details and links.

Also a reminder that Hodl algo will be removed soon.

ARM YOURSELVES!

cpuminer-opt-23.5 is released with support for ARM CPUs.
Consult the Wiki for details, all links are in the first post of this thread.

As  Beta software problems are expected with ARM CPUs. Please report them but be patient.
Priority will be given to x86_64 regressions, if any.

Crank those ARMs and start your engines.
full member
Activity: 1372
Merit: 216
Notice of intent to delete Hodl algorithm from cpuminer-opt.

Argon2a is already deleted and I intend to do the same with Hodl. The code is just dead weight and isn't used by any other algo.
I'd like to control bloat considering the inevitable growth resulting from the addition of ARM support.
member
Activity: 1557
Merit: 69
ARM YOURSELVES!

cpuminer-opt-23.5 is released with support for ARM CPUs.
Consult the Wiki for details, all links are in the first post of this thread.

As  Beta software problems are expected with ARM CPUs. Please report them but be patient.
Priority will be given to x86_64 regressions, if any.

Crank those ARMs and start your engines.

Oh GG JayDDee, i must order an Pi now and start playing around with it  Grin
Pages:
Jump to: