Updated Support for AArch64 (markdown)

JayDDee
2023-11-28 02:48:55 -05:00
parent 0de43ba6bd
commit b1eb2ede60

@@ -12,8 +12,9 @@ Requirements:
## Status ## Status
**cpuminer-opt-23.13 is released** **cpuminer-opt-23.14 is released**
Hihjlights of this release: Groestl AES is working and enabled for x16*, minotaurx, hmq1725, allium and others.
Development environment: Development environment:
* Orange Pi 5 Plus 16 GB, Rockchip 8 core CPU with AES & SHA2 * Orange Pi 5 Plus 16 GB, Rockchip 8 core CPU with AES & SHA2
* Ubuntu Mate 22.04 * Ubuntu Mate 22.04
@@ -35,31 +36,23 @@ Specific achitectures and features can be compiled using examples in armbuild-al
The miner has been tested on Raspberry Pi 4B, Orange Pi 5 Plus, and Mac Mini from a Linux VM. The miner has been tested on Raspberry Pi 4B, Orange Pi 5 Plus, and Mac Mini from a Linux VM.
It compiles for all minor versions of armv8.x with or without AES, or SHA2, or both. It compiles for all minor versions of armv8.x with or without AES, or SHA2, or both.
What works:
* Most algorithms are working with Neon optimizations, 2-way parallel when applicable.
* AES is working for Shavite and Echo.
* SHA is working for all algos.
* stratum+ssl and stratum+tcp are working, GBT is untested but expected to work.
* all configurations options work as usual.
Known problems: Known problems:
* Verthash algo is not working. * Verthash algo is not working.
* MacOS is not working natively, workaround with linux VM. * MacOS is not working natively, workaround with linux VM.
* CPU and feature detection and reporting is incomplete. * CPU and feature detection and reporting is incomplete.
* Groestl: AES mostly working but slower that unoptimized.
* Fugue: multiple issues not AES related, using unoptimized. * Fugue: multiple issues not AES related, using unoptimized.
* Some algorithms too difficult to test with a CPU are not optimized for NEON. * Some algorithms too difficult to test with a CPU are not optimized for NEON.
Short term plan: Short term plan:
* Figure out what's going on with verthash. * Figure out what's going on with verthash.
* Fugue AES.
* Migrate NEON to more algos.
Medium term: Medium term:
* Detection of ARM CPU model and architecture minor version. * Detection of ARM CPU model and architecture minor version.
* Fugue & Groestl AES performance, needs a breakthrough for slow shuffles.
* Find NEON optimization opportunities that exploit it's architecture and instruction set. * Find NEON optimization opportunities that exploit it's architecture and instruction set.
* Apply lessons learned to x86_64. * Apply lessons learned to x86_64.
* SHA512, x86_64 & AArch64. * SHA512, x86_64 & AArch64.