Updated Support for AARCH64 (markdown)

JayDDee
2023-10-15 16:25:20 -04:00
parent 81d358f310
commit 29cc383087
2 changed files with 41 additions and 28 deletions

@@ -1,28 +0,0 @@
Development is begining to provide support for ARM 64 bit CPUs using the aarch64 architecture.
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.
Bitcoin talk discussion thread: https://bitcointalk.org/index.php?topic=5226770.0
Requirements:
* An ARM CPU supporting AArch64
* Linux OS.
## Status
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
Status of optimizations:
* all variations of blake have linear and parallel vectorization
* all variations of sha256 have parallel and HW accelerated optimizations
* algorithms that use shavite have AES HW acceleration
* algorithms that use luffa or cubehash have linear vectorization
x86_64 optimizations disabled for ARM:
* aes is disabled for Groestl, Echo, and fugue.
* Simd (the hash function, not the CPU feature) linear vectorization is disabled
* Yespower, yescrypt, neoscryptscrypt & argon2d optimizations are disabled

41
Support-for-AArch64.md Normal file

@@ -0,0 +1,41 @@
Development is begining to provide support for ARM 64 bit CPUs using the aarch64 architecture.
This is provided as source code only and may be built on native Linux or following the existing procedure subject to the modifications detailed below.
Bitcoin talk discussion thread: https://bitcointalk.org/index.php?topic=5226770.0
Requirements:
* An ARM CPU supporting AArch64
* Linux OS.
## Status
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
Development environment:
Raspberry Pi-4B 8 GB
Ubuntu (Mate) 22.04 Raspberry Pi image
GCC-11.4
Follow normal Linux build procedure but add "-flax-vector-conversions" to CFLAGS.
Status of optimizations:
* all variations of blake have linear and parallel vectorization
* all variations of Sha-256 have parallel and HW accelerated optimizations, CPU permitting
* algorithms that use Shavite have AES HW acceleration, CPU permitting
* algorithms that use Luffa or Cubehash have linear vectorization
x86_64 optimizations currently disabled for ARM:
* AES is disabled for Groestl, Echo, and Fugue.
* Simd (the hash function, not the CPU feature) linear vectorization is disabled
* Yespower, Yescrypt, Neoscrypt (asm) & argon2d optimizations are disabled
Goal for next release:
* most, if not all, algos working with NEON,
* address some of the disabled optimizations,
* enable SHA2, and AES for Groestl & Echo, untested.