mirror of
https://github.com/JayDDee/cpuminer-opt.git
synced 2026-02-24 17:33:13 +00:00
Updated Support for AARCH64 (markdown)
@@ -1,13 +1,56 @@
|
|||||||
Development is begining to provide support for ARM 64 bit CPUs using the aarch64 architecture.
|
Development is begining to provide support for ARM 64 bit CPUs using the aarch64 architecture.
|
||||||
|
|
||||||
* Current status: nothing publicly released.
|
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.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
* Current status: nothing publicly released yet.
|
||||||
|
|
||||||
* ARM support will be source code only, no binaries are planned.
|
* ARM support will be source code only, no binaries are planned.
|
||||||
* Coding is progressing with many issues translating SSE to NEON. Some things are done very differently and some things may not be possible.
|
* Coding is progressing with many issues translating SSE to NEON. Some things are done very differently and some things may not be possible.
|
||||||
* The lack of flexible lane shuffling is a major problem. Some shuffles may have to be done by inserting one lane at a time.
|
* The lack of flexible lane shuffling is a major problem. Some shuffles may have to be done by inserting one lane at a time.
|
||||||
* Current expectations are best performance will be with sha256 based algos and some algos that use AES. Current issues exist with AES for echo & fugue.
|
* Current expectations are best performance will be with sha256 based algos. AES is only supported for shavite.
|
||||||
* Parallel 4 way hashing will not be provided initially but will be added later.
|
* Parallel 4 way hashing will not be provided initially but will be added later.
|
||||||
* Current problem algos include anything with Echo or Fugue, there are problems with the AES implementation.
|
* Current problem algos include anything with Groestl, Echo & Fugue due to problems with the AES implementation.
|
||||||
* Simd has a problem with multiplication that I haven't resolved.
|
* Simd has a problem with multiplication that I haven't resolved.
|
||||||
* Scrypt has issues with the lack of a blend instruction in NEON that requires a workaround. The lack of mask creating doesn't make it any easier.
|
* Scrypt has issues with the lack of a blend instruction in NEON that requires a workaround. The lack of mask creating doesn't make it any easier.
|
||||||
* Yespower/yescrypt also have issues that aren't fully understood due to the complexity of the current code.
|
* Yespower/yescrypt also have issues that aren't fully understood due to the complexity of the current code.
|
||||||
* Unresolved issues will result in using completely unoptimized "reference" code.
|
* Unresolved issues will result in using completely unoptimized "reference" code.
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
Successful compilation is the first step. The recommended procedure is to folllow thw Linux build instructions for installing dependencies.
|
||||||
|
|
||||||
|
`./autogen.sh`
|
||||||
|
`CFLAGS="-O2 -march=armv8-a+crypto+sha2+aes -Wall -flax-vector-conversions" ./configure --with-curl`
|
||||||
|
`make -j $nproc`
|
||||||
|
|
||||||
|
"native" can be substituted for -march=.
|
||||||
|
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.
|
||||||
|
|
||||||
|
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