mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2025-09-17 23:44:27 +00:00
Updated Support for AARCH64 (markdown)
@@ -2,7 +2,8 @@ Development is begining to provide support for ARM 64 bit CPUs using the aarch64
|
|||||||
|
|
||||||
This is provided as source code only and may be built on native Linux or on Windows using MingW/MSys by following the existing procedure subject to he modifications detailed below.
|
This is provided as source code only and may be built on native Linux or on Windows using MingW/MSys by following the existing procedure subject to he modifications detailed below.
|
||||||
|
|
||||||
Community testing is requested because I have no ARM CPU at this time. I'm looking at Raspberry Pi but would prefer a PC without the Windows tax.
|
Bitcoin talk discussion thread: https://bitcointalk.org/index.php?topic=5226770.0
|
||||||
|
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
* An ARM CPU supporting AArch64
|
* An ARM CPU supporting AArch64
|
||||||
@@ -10,11 +11,9 @@ Requirements:
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
Update: I now have a Raspberry Pi 4B so I'm working through some build issues. Things are progressing but there is no point in user trying it yet. I hope to have more news soon. FYI the Pi dopesn't have AES or SHA2.
|
The miner compiles and runs on Raspberry Pi 4B but only produces rejects. It's a start but there's a lot of work to do. Stay tuned
|
||||||
|
|
||||||
* Current status: first release available, start testing
|
Status of optimizations:
|
||||||
|
|
||||||
Optimizations available in first public release:
|
|
||||||
|
|
||||||
* all variations of blake have linear and parallel vectorization
|
* all variations of blake have linear and parallel vectorization
|
||||||
* all variations of sha256 have parallel and HW accelerated optimizations
|
* all variations of sha256 have parallel and HW accelerated optimizations
|
||||||
@@ -25,59 +24,5 @@ x86_64 optimizations disabled for ARM:
|
|||||||
|
|
||||||
* aes is disabled for Groestl, Echo, and fugue.
|
* aes is disabled for Groestl, Echo, and fugue.
|
||||||
* Simd (the hash function, not the CPU feature) linear vectorization is disabled
|
* Simd (the hash function, not the CPU feature) linear vectorization is disabled
|
||||||
* Yespower, yescrypt, scrypt & argon2d optimizations are disabled
|
* Yespower, yescrypt, neoscryptscrypt & argon2d optimizations are disabled
|
||||||
|
|
||||||
## Test plan
|
|
||||||
|
|
||||||
This code is completely untested. It compiles but fails to link several libraries including curl, gmp, z, crypto & ssl, when cross compiling.
|
|
||||||
Hopefully this is only a cross compile issue.
|
|
||||||
|
|
||||||
Monitor CPU temperature and ensure adequate ventilation and cooling as should be done with any CPU nining.
|
|
||||||
|
|
||||||
Please report all results and include your CPU and OS, any custom build options, miner startup messages, any errors or relevant logs and a clear description. Adding `--debug` is also recommendded. If the miner crashes familiarity with GDB is an asset.
|
|
||||||
|
|
||||||
Problems can be reported through github issues, bitcointalk or by email. Open discussion is preferred.
|
|
||||||
|
|
||||||
|
|
||||||
https://bitcointalk.org/index.php?topic=5226770.0
|
|
||||||
|
|
||||||
Successful compilation is the first step. The recommended procedure is to folllow the standard build instructions for Linux with minor variations described below.
|
|
||||||
|
|
||||||
Download the latest source code from git:
|
|
||||||
|
|
||||||
|
|
||||||
`$ git clone https://github.com/JayDDee/cpuminer-opt.git`
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
`$ wget https://github.com/JayDDee/cpuminer-opt/archive/refs/heads/master.zip`
|
|
||||||
|
|
||||||
Unzip if necessary and compile
|
|
||||||
|
|
||||||
`$ ./autogen.sh`
|
|
||||||
|
|
||||||
`$ CFLAGS="-O2 -march=native -Wall -flax-vector-conversions" ./configure --with-curl`
|
|
||||||
|
|
||||||
`$ make -j $nproc`
|
|
||||||
|
|
||||||
It's recommended testing with different builds with and without aes or sha2 or both to test different code for algos that support those features. Features can be specified as follows:
|
|
||||||
|
|
||||||
`"-march=armv8-a+crypto+sha2+aes"`
|
|
||||||
|
|
||||||
Ater successful compile start slow with a couple of simple commands.
|
|
||||||
|
|
||||||
`$ ./cpuminer --version`
|
|
||||||
|
|
||||||
Does it run or crash? Note if CPU information is correct.
|
|
||||||
|
|
||||||
`$ ./cpuminer --benchmark`
|
|
||||||
|
|
||||||
Is CPU tempereature and clock frequency displayed correctly?
|
|
||||||
Try a few different algos. Do they all crash, some crash, of none crash? Hash rate is irrelevant at this time.
|
|
||||||
|
|
||||||
No crashes is considered the threshold for success for the first public release.
|
|
||||||
|
|
||||||
For a bonus try mining at a pool with algos that don't crash during benchmark.
|
|
||||||
|
|
||||||
Does it connect and start hashing? Does it submit any shares? Are they accepted? Expectations are very low. Much of the code is just recompiled C but much is also new NEON code. Having any accepted shares with any algo is beyond any expectations.
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user