Skip to content
f9ae3f2
Compare
Choose a tag to compare

Full list of changes:

  • __cpuidex: explicit MSVC check, fix MinGW GCC 5.3 cross-compilation #192
  • MacOS JIT privs are not ARM-specific #217
  • cmake: set nonancient minimum version #220
  • Fix absolute address references #222
  • Fix native code generator using the wrong hash function #224
  • Fixed a crash in MSVC Debug and RelWithDebInfo builds #225
fe4324e
Compare
Choose a tag to compare

This release brings support for the new ARM-based Apple silicon and a small speed-up for all CPUs.

Full list of changes:

  • Apple silicon: force W^X, enable hardware AES #198
  • Remove unnecessary first-load initialization code #201
  • Fix illegal instruction crash on some ARM systems #202
  • Optimized dataset read #211
  • Faster W^X policy for apple silicon macs #212
  • Fix typo for M1 Mac build #213
Compare
Choose a tag to compare

Changes:

  • Add a missing function to calculate a batch of hashes #179
  • Preserve floating point state when calling randomx_calculate_hash #182
  • Fix windows-target cross-compilation #185
  • Fix compilation and JIT support on NetBSD #187
  • replace hardcoded literal with its appropriate symbol #188
  • Fix potential use-after-free when reallocating cache #189
  • Benchmark: new --noBatch option
RandomX benchmark v1.1.8
Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)
  --ssse3       use optimized Argon2 for SSSE3 CPUs
  --avx2        use optimized Argon2 for AVX2 CPUs
  --auto        select the best options for the current CPU
  --noBatch     calculate hashes one by one (default: batch)

Check the GPG signature of the archive using tevador's public key (fingerprint 3285A32D513076632CE825105A28C86AE7BD73A6).

Compare
Choose a tag to compare

Changes:

  • Fixed mmap on OpenBSD #139
  • Fix CMakeLists.txt for xcode #140
  • Fix alignment for ARMv8 code #141
  • Fixed tests on OpenBSD #142
Compare
Choose a tag to compare

When running the benchmark, it is recommended to use the new --auto option, for example:

./randomx-benchmark --mine --auto --largePages --threads 16 --nonces 100000

Changes:

  • Optimized Argon2 (SSSE3/AVX2) #134
  • Automatic detection of CPU capabilities #136
  • Fix a possible out-of-bounds access in superscalar generator #137
Compare
Choose a tag to compare
RandomX benchmark v1.1.3
Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • CMake install target for randomx library (#131)
  • Remember cache input data (#133)
Compare
Choose a tag to compare
Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • Set scratchpad pointer to null by default (#127)
  • Workaround for a bug in binutils-2.32-1 on ARM (#128)
  • Fix for win32 build with gcc (#130)
Compare
Choose a tag to compare

Usage:

Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • fix MSYS thread handle cast #121
  • Optimized loading from scratchpad #124
  • JIT compiler for ARMv8 #125
Compare
Choose a tag to compare

Performance may be slightly lower than v1.0.4 on some CPUs due to #118.

Using the new --secure option may decrease mining performance by up to 30%, but provides slightly more secure memory permission management.

Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • Fix undefined behavior in rotr/rotl (#86)
  • Fix: possible overflow when using non-standard Dataset size (#87)
  • Sanity checks (#88)
  • Use cmake for building (#90)
  • Vector intrinsics for ARMv8 (#93)
  • Refactoring (#95)
  • benchmark: affinity cast for mingw (#96)
  • Do not attempt to allocate >= 4 GiB on 32-bit systems (#99)
  • Fix: hardcoded JIT code buffer size (#98)
  • Fix a compiler error on Apple OSX (#110)
  • Fix use-after-free in benchmark (debug build)
  • Changes recommended by Quarkslab (#111)
  • Optional W^X policy for JIT pages (#112)
  • Increase the frequency of CBRANCH (#118)