Updated Support for AArch64 (markdown)

JayDDee
2023-10-25 20:16:22 -04:00
parent a55d6a67e0
commit 29a0bd007a

@@ -1,5 +1,6 @@
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.
**Don't download yet, watch for the release announcement**
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. 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 Bitcoin talk discussion thread: https://bitcointalk.org/index.php?topic=5226770.0
@@ -25,13 +26,15 @@ Uncommited changes:
The miner compiles and runs on Raspberry Pi 4B, and compiles for all version of armv8 with our without AES or SHA2 or both. The miner compiles and runs on Raspberry Pi 4B, and compiles for all version of armv8 with our without AES or SHA2 or both.
What works: What works:
* All algorithms ecept Verthash should be working, Hodl is untested and unknown. * All algorithms ecept Verthash and Hodl should be working.
* Allium ,Lyra2z & Lyraz330, Argon2d are fully optimzed for NEON, Allium also for AES. * Allium, Lyra2z, Lyraz330, Argon2d are fully optimzed for NEON, Allium also for AES.
* Unoptimized: Sha256dt, sha256t, Blake2s.
* Yespower, Yescrypt, Scrypt are working for with slow sha256. * Yespower, Yescrypt, Scrypt are working for with slow sha256.
* Argon2d is fully oprimized. * Argon2d is fully oprimized.
* X17 is thhe only X* to be optimized in this realease. * X17 is the only X* to be optimized in this realease.
* Unoptimized: Sha256dt, sha256t, Blake2s. * MinotaurX is partially optimized.
* Other algos not optimized for ARM. * AES & SHA2 are enabled but untested.
* Other algos are not optimized for ARM and not tested.
* stratum+ssl and stratum+tcp are working, GBT is untested. * stratum+ssl and stratum+tcp are working, GBT is untested.
* CPU and SW feature detection and reporting is working, algo features in progress, CPU brand not yet implemented. * CPU and SW feature detection and reporting is working, algo features in progress, CPU brand not yet implemented.
* CPU temperature and clock frequency is working. * CPU temperature and clock frequency is working.
@@ -39,25 +42,17 @@ What works:
Known problems: Known problems:
* No detection of CPU model, default info displayed. * No detection of CPU model, default info displayed.
* No detection of ARM minor version number. * No detection of ARM architecture minor version number.
* NEON may not be displayed in algo features for some algos that may support it. * NEON may not be displayed in algo features for some algos that may support it.
* Algos may show support for NEON even if it's disabled or not yet implemented. * Algos may show support for NEON even if it's disabled or not yet implemented.
* AES & SHA2 are enabled but untested. * AES & SHA2 are enabled but untested.* Sha256 & Sha512 Parallel N-way are disabled. They work on X86_64.
* There is no working version of Verthash on ARM, even pure compiled C code. The same code compiled for x86_64 works.
* Sha256 & Sha512 Parallel N-way are disabled. They work on X86_64.
* Sha256dt, Sha256t, Sha256d unoptimized. * Sha256dt, Sha256t, Sha256d unoptimized.
* Scryptn2 optimzations disabled due to Sha256 issues. * Scryptn2 optimzations disabled due to Sha256 issues.
* X17, MinotaurX are partially optimized. * X17, MinotaurX are partially optimized.
* Blake256, Blake512, Blake2s, Blake2b N-way parallel hash not working, using liner when possible, unoptimzed otherwise. * Blake256, Blake512, Blake2s, Blake2b N-way parallel hash not working, using linear when possible, unoptimzed otherwise.
* Simd: Multiple issues with NEON, using unoptimized. * Simd: Multiple issues with NEON, using unoptimized.
* Luffa: NEON not working, using unoptimized * Luffa: NEON not working, using unoptimized
* Fugue: Multiple issues with NEON & AES, using unoptimized. * Fugue: Multiple issues with NEON & AES, using unoptimized.
* SWIFFTX: Multiple issues with NEON,using unoptimized. * SWIFFTX: Multiple issues with NEON,using unoptimized.
* Remaining algos are not yet optimized for NEON but should work unoptimized. * Remaining algos are not yet optimized for NEON but should work unoptimized.
Goal for next release:
* get as many algos as practical working even if optimizations need to be disabled,
* address some of the disabled optimizations,
* enable SHA2, and AES for Groestl & Echo, untested.